fix(ui): multiple search calls on load
This commit is contained in:
parent
152720eeef
commit
2a7cb78b8b
3 changed files with 14 additions and 4 deletions
|
|
@ -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]);
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue