mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-22 19:07:54 +01:00
fix: fix tracking of menu bar for no search results (#8326)
Previously it sending plausible event before the query had loaded and making false positives.
This commit is contained in:
parent
f08a5571ed
commit
c58d4830eb
@ -21,7 +21,10 @@ import { CommandPageSuggestions } from './CommandPageSuggestions';
|
|||||||
import { useRoutes } from 'component/layout/MainLayout/NavigationSidebar/useRoutes';
|
import { useRoutes } from 'component/layout/MainLayout/NavigationSidebar/useRoutes';
|
||||||
import { useAsyncDebounce } from 'react-table';
|
import { useAsyncDebounce } from 'react-table';
|
||||||
import useProjects from 'hooks/api/getters/useProjects/useProjects';
|
import useProjects from 'hooks/api/getters/useProjects/useProjects';
|
||||||
import { CommandSearchFeatures } from './CommandSearchFeatures';
|
import {
|
||||||
|
type CommandQueryCounter,
|
||||||
|
CommandSearchFeatures,
|
||||||
|
} from './CommandSearchFeatures';
|
||||||
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
|
||||||
import { CommandQuickSuggestions } from './CommandQuickSuggestions';
|
import { CommandQuickSuggestions } from './CommandQuickSuggestions';
|
||||||
import { CommandSearchPages } from './CommandSearchPages';
|
import { CommandSearchPages } from './CommandSearchPages';
|
||||||
@ -105,7 +108,8 @@ export const CommandBar = () => {
|
|||||||
const [searchedPages, setSearchedPages] = useState<
|
const [searchedPages, setSearchedPages] = useState<
|
||||||
CommandResultGroupItem[]
|
CommandResultGroupItem[]
|
||||||
>([]);
|
>([]);
|
||||||
const [searchedFlagCount, setSearchedFlagCount] = useState(0);
|
const [searchedFlagCount, setSearchedFlagCount] =
|
||||||
|
useState<CommandQueryCounter>({ query: '', count: 0 });
|
||||||
const [hasNoResults, setHasNoResults] = useState(false);
|
const [hasNoResults, setHasNoResults] = useState(false);
|
||||||
const [value, setValue] = useState<string>('');
|
const [value, setValue] = useState<string>('');
|
||||||
const { routes } = useRoutes();
|
const { routes } = useRoutes();
|
||||||
@ -155,7 +159,8 @@ export const CommandBar = () => {
|
|||||||
query.length !== 0 &&
|
query.length !== 0 &&
|
||||||
mappedProjects.length === 0 &&
|
mappedProjects.length === 0 &&
|
||||||
mappedPages.length === 0 &&
|
mappedPages.length === 0 &&
|
||||||
searchedFlagCount === 0;
|
searchedFlagCount.count === 0 &&
|
||||||
|
searchedFlagCount.query === query;
|
||||||
if (noResultsFound) {
|
if (noResultsFound) {
|
||||||
trackEvent('command-bar', {
|
trackEvent('command-bar', {
|
||||||
props: {
|
props: {
|
||||||
@ -169,7 +174,7 @@ export const CommandBar = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
debouncedSetSearchState(value);
|
debouncedSetSearchState(value);
|
||||||
}, [searchedFlagCount]);
|
}, [JSON.stringify(searchedFlagCount)]);
|
||||||
|
|
||||||
const onSearchChange = (value: string) => {
|
const onSearchChange = (value: string) => {
|
||||||
debouncedSetSearchState(value);
|
debouncedSetSearchState(value);
|
||||||
|
@ -6,9 +6,14 @@ import { useFeatureSearch } from 'hooks/api/getters/useFeatureSearch/useFeatureS
|
|||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||||
|
|
||||||
|
export type CommandQueryCounter = {
|
||||||
|
query: string;
|
||||||
|
count: number;
|
||||||
|
};
|
||||||
|
|
||||||
interface ICommandBar {
|
interface ICommandBar {
|
||||||
searchString: string;
|
searchString: string;
|
||||||
setSearchedFlagCount: (count: number) => void;
|
setSearchedFlagCount: (count: CommandQueryCounter) => void;
|
||||||
onClick: () => void;
|
onClick: () => void;
|
||||||
setSearchLoading: (loading: boolean) => void;
|
setSearchLoading: (loading: boolean) => void;
|
||||||
}
|
}
|
||||||
@ -36,8 +41,8 @@ export const CommandSearchFeatures = ({
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setSearchedFlagCount(flags.length);
|
setSearchedFlagCount({ count: flags.length, query: searchString });
|
||||||
}, [JSON.stringify(flags)]);
|
}, [loading]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setSearchLoading(loading);
|
setSearchLoading(loading);
|
||||||
|
Loading…
Reference in New Issue
Block a user