openreplay/frontend/app/hooks/useSessionSearchQueryHandler.ts
2023-03-31 17:31:40 +02:00

35 lines
851 B
TypeScript

import { useEffect } from 'react';
import { useHistory } from 'react-router';
import { createUrlQuery, getFiltersFromQuery } from 'App/utils/search';
interface Props {
appliedFilter: any;
applyFilter: any;
}
const useSessionSearchQueryHandler = (props: Props) => {
const { appliedFilter, applyFilter } = props;
const history = useHistory();
useEffect(() => {
const applyFilterFromQuery = () => {
const filter = getFiltersFromQuery(history.location.search, appliedFilter);
applyFilter(filter, true, false);
};
applyFilterFromQuery();
}, []);
useEffect(() => {
const generateUrlQuery = () => {
const search: any = createUrlQuery(appliedFilter);
history.replace({ search });
};
generateUrlQuery();
}, [appliedFilter]);
return null;
};
export default useSessionSearchQueryHandler;