Skip to content

Commit

Permalink
Merge pull request #34489 from callstack-internal/chore/add-searchpag…
Browse files Browse the repository at this point in the history
…e-metrics

[No QA] chore: add metrics for SearchPage
  • Loading branch information
mountiny authored Jan 24, 2024
2 parents 30aa432 + ff3da84 commit 4db7b09
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 1 deletion.
2 changes: 2 additions & 0 deletions src/CONST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -724,6 +724,8 @@ const CONST = {
REPORT_INITIAL_RENDER: 'report_initial_render',
SWITCH_REPORT: 'switch_report',
SIDEBAR_LOADED: 'sidebar_loaded',
OPEN_SEARCH: 'open_search',
LOAD_SEARCH_OPTIONS: 'load_search_options',
COLD: 'cold',
WARM: 'warm',
REPORT_ACTION_ITEM_LAYOUT_DEBOUNCE_TIME: 1500,
Expand Down
12 changes: 12 additions & 0 deletions src/components/OptionsList/BaseOptionsList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import SectionList from '@components/SectionList';
import Text from '@components/Text';
import usePrevious from '@hooks/usePrevious';
import useThemeStyles from '@hooks/useThemeStyles';
import Timing from '@libs/actions/Timing';
import Performance from '@libs/Performance';
import type {OptionData} from '@libs/ReportUtils';
import StringUtils from '@libs/StringUtils';
import variables from '@styles/variables';
Expand Down Expand Up @@ -108,6 +110,16 @@ function BaseOptionsList(
flattenedData.current = buildFlatSectionArray();
});

useEffect(() => {
if (isLoading) {
return;
}

// Mark the end of the search page load time. This data is collected only for Search page.
Timing.end(CONST.TIMING.OPEN_SEARCH);
Performance.markEnd(CONST.TIMING.OPEN_SEARCH);
}, [isLoading]);

const onViewableItemsChanged = () => {
if (didLayout.current || !onLayout) {
return;
Expand Down
10 changes: 9 additions & 1 deletion src/libs/OptionsListUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ import Onyx from 'react-native-onyx';
import _ from 'underscore';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import Timing from './actions/Timing';
import * as CollectionUtils from './CollectionUtils';
import * as ErrorUtils from './ErrorUtils';
import * as LocalePhoneNumber from './LocalePhoneNumber';
import * as Localize from './Localize';
import * as LoginUtils from './LoginUtils';
import ModifiedExpenseMessage from './ModifiedExpenseMessage';
import Navigation from './Navigation/Navigation';
import Performance from './Performance';
import Permissions from './Permissions';
import * as PersonalDetailsUtils from './PersonalDetailsUtils';
import * as PhoneNumber from './PhoneNumber';
Expand Down Expand Up @@ -1651,7 +1653,9 @@ function getOptions(
* @returns {Object}
*/
function getSearchOptions(reports, personalDetails, searchValue = '', betas) {
return getOptions(reports, personalDetails, {
Timing.start(CONST.TIMING.LOAD_SEARCH_OPTIONS);
Performance.markStart(CONST.TIMING.LOAD_SEARCH_OPTIONS);
const options = getOptions(reports, personalDetails, {
betas,
searchInputValue: searchValue.trim(),
includeRecentReports: true,
Expand All @@ -1666,6 +1670,10 @@ function getSearchOptions(reports, personalDetails, searchValue = '', betas) {
includeMoneyRequests: true,
includeTasks: true,
});
Timing.end(CONST.TIMING.LOAD_SEARCH_OPTIONS);
Performance.markEnd(CONST.TIMING.LOAD_SEARCH_OPTIONS);

return options;
}

/**
Expand Down
6 changes: 6 additions & 0 deletions src/pages/home/sidebar/SidebarLinks.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ import useStyleUtils from '@hooks/useStyleUtils';
import useTheme from '@hooks/useTheme';
import useThemeStyles from '@hooks/useThemeStyles';
import useWindowDimensions from '@hooks/useWindowDimensions';
import Timing from '@libs/actions/Timing';
import KeyboardShortcut from '@libs/KeyboardShortcut';
import Navigation from '@libs/Navigation/Navigation';
import onyxSubscribe from '@libs/onyxSubscribe';
import Performance from '@libs/Performance';
import SidebarUtils from '@libs/SidebarUtils';
import * as ReportActionContextMenu from '@pages/home/report/ContextMenu/ReportActionContextMenu';
import safeAreaInsetPropTypes from '@pages/safeAreaInsetPropTypes';
Expand Down Expand Up @@ -123,6 +125,10 @@ function SidebarLinks({onLinkClick, insets, optionListItems, isLoading, priority
return;
}

// Capture metric for opening the search page
Timing.start(CONST.TIMING.OPEN_SEARCH);
Performance.markStart(CONST.TIMING.OPEN_SEARCH);

Navigation.navigate(ROUTES.SEARCH);
}, [isCreateMenuOpen]);

Expand Down

0 comments on commit 4db7b09

Please sign in to comment.