diff --git a/bun.lockb b/bun.lockb index be93a5ff0..f1294b59e 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/internal/view/assets/js/component/eventBus.js b/internal/view/assets/js/component/eventBus.js new file mode 100644 index 000000000..91d0b9344 --- /dev/null +++ b/internal/view/assets/js/component/eventBus.js @@ -0,0 +1,4 @@ +// Create a new Vue instance as the EventBus +const EventBus = new Vue(); + +export default EventBus; diff --git a/internal/view/assets/js/page/home.js b/internal/view/assets/js/page/home.js index 1a4755b14..da26d6afc 100644 --- a/internal/view/assets/js/page/home.js +++ b/internal/view/assets/js/page/home.js @@ -90,6 +90,9 @@ import paginationBox from "../component/pagination.js"; import bookmarkItem from "../component/bookmark.js"; import customDialog from "../component/dialog.js"; import basePage from "./base.js"; +import EventBus from "../component/eventBus.js"; + +Vue.prototype.$bus = EventBus; export default { template: template, @@ -153,6 +156,10 @@ export default { }, }, methods: { + clearHomePage() { + this.search = ""; + this.searchBookmarks(); + }, reloadData() { if (this.loading) return; this.page = 1; @@ -999,6 +1006,9 @@ export default { }, }, mounted() { + this.$bus.$on("clearHomePage", () => { + this.clearHomePage(); + }); // Prepare history state watcher var stateWatcher = (e) => { var state = e.state || {}, diff --git a/internal/view/index.html b/internal/view/index.html index 0f120d794..387d634ab 100644 --- a/internal/view/index.html +++ b/internal/view/index.html @@ -42,6 +42,8 @@ import pageHome from "./assets/js/page/home.js"; import pageSetting from "./assets/js/page/setting.js"; import customDialog from "./assets/js/component/dialog.js"; + import EventBus from "../assets/js/component/eventBus.js"; + Vue.prototype.$bus = EventBus; var app = new Vue({ el: '#main-scene', @@ -69,6 +71,9 @@ state = { activePage: page }, url = new Url; + if (page === 'page-home' && this.activePage === 'page-home') { + Vue.prototype.$bus.$emit('clearHomePage', {}); + } url.hash = pageName; this.activePage = page; history.pushState(state, page, url);