diff --git a/frontend/app/components/shared/SessionsTabOverview/components/SessionList/SessionList.tsx b/frontend/app/components/shared/SessionsTabOverview/components/SessionList/SessionList.tsx index de62c044a..8f8cd14aa 100644 --- a/frontend/app/components/shared/SessionsTabOverview/components/SessionList/SessionList.tsx +++ b/frontend/app/components/shared/SessionsTabOverview/components/SessionList/SessionList.tsx @@ -27,7 +27,7 @@ function SessionList() { const isSessionsRoute = location.pathname.includes('/sessions'); const isBookmark = location.pathname.includes('/bookmarks'); - const { projectsStore, sessionStore, customFieldStore, userStore } = useStore(); + const { projectsStore, sessionStore, customFieldStore, userStore, searchStore } = useStore(); const isEnterprise = userStore.isEnterprise; const isLoggedIn = userStore.isLoggedIn; const list = sessionStore.list; @@ -37,7 +37,6 @@ function SessionList() { const onToggleFavorite = sessionStore.toggleFavorite; const siteId = projectsStore.siteId; const updateProjectRecordingStatus = projectsStore.updateProjectRecordingStatus; - const { searchStore } = useStore(); const { currentPage, activeTab, pageSize } = searchStore; const { filters } = searchStore.instance; const _filterKeys = filters.map((i: any) => i.key); @@ -50,6 +49,7 @@ function SessionList() { const metaList = customFieldStore.list; useEffect(() => { + if (!searchStore.urlParsed) return; void searchStore.fetchSessions(true, isBookmark); }, [location.pathname]); diff --git a/frontend/app/hooks/useSessionSearchQueryHandler.ts b/frontend/app/hooks/useSessionSearchQueryHandler.ts index c32537722..bbd26a26c 100644 --- a/frontend/app/hooks/useSessionSearchQueryHandler.ts +++ b/frontend/app/hooks/useSessionSearchQueryHandler.ts @@ -19,7 +19,7 @@ const useSessionSearchQueryHandler = (props: Props) => { useEffect(() => { const applyFilterFromQuery = async () => { - if (!loading) { + if (!loading && !searchStore.urlParsed) { if (props.onBeforeLoad) { await props.onBeforeLoad(); setBeforeHookLoaded(true); @@ -29,6 +29,7 @@ const useSessionSearchQueryHandler = (props: Props) => { const json: any = getFilterFromJson(converter.toJSON()); const filter = new Search(json); searchStore.applyFilter(filter, true); + searchStore.setUrlParsed() } }; diff --git a/frontend/app/mstore/searchStore.ts b/frontend/app/mstore/searchStore.ts index 5a149634d..e24ca6f70 100644 --- a/frontend/app/mstore/searchStore.ts +++ b/frontend/app/mstore/searchStore.ts @@ -75,23 +75,32 @@ class SearchStore { loadingFilterSearch = false; isSaving: boolean = false; activeTags: any[] = []; + urlParsed: boolean = false; constructor() { makeAutoObservable(this); } + setUrlParsed() { + this.urlParsed = true; + } + get filterList() { return generateFilterOptions(filtersMap); } + get filterListMobile() { return generateFilterOptions(filtersMap, true); } + get filterListLive() { return generateFilterOptions(liveFiltersMap); } + get filterListConditional() { return generateFilterOptions(conditionalFiltersMap); } + get filterListMobileConditional() { return generateFilterOptions(mobileConditionalFiltersMap); } @@ -153,7 +162,7 @@ class SearchStore { runInAction(() => { this.activeTab = TAB_MAP[tab]; this.currentPage = 1; - }) + }); } toggleTag(tag?: iTag) {