Skip to content

Conversation

@Ahmed-Labs
Copy link
Member

Motivation:

  • I previously looped through datasets and called the corresponding searchbar data hook to build a map on the fly. This is bad practice because hook calls should be explicit and unconditional.
  • When I create numeric & date filter components, I need to use the SearchSyntax parser instead of MutableSearch. SearchSyntax requires providing all filter keys of a dataset. So, instead of repeating filter key retrieval across components, it is more organized and performant to centralize it in a single hook.

Changes:

  • Creates central hook for all dataset search bar data that explicitly invokes search bar data hooks for all datasets.
  • Replaces looped hook calls in the addFilter component with the centralized data hook.

@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Oct 16, 2025
@codecov
Copy link

codecov bot commented Oct 16, 2025

❌ 3 Tests Failed:

Tests completed Failed Passed Skipped
12183 3 12180 10
View the top 3 failed test(s) by shortest run time
AddFilter calls onAddFilter with expected global filter object
Stack Traces | 0.164s run time
TypeError: getSearchBarData is not a function
    at getSearchBarData (.../dashboards/globalFilter/addFilter.tsx:62:24)
    at Object.react_stack_bottom_frame (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:25904:20)
    at renderWithHooks (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:7662:22)
    at updateFunctionComponent (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:10166:19)
    at beginWork (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:11778:18)
    at runWithFiberInDEV (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:874:13)
    at performUnitOfWork (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:17641:22)
    at workLoopSync (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:17469:41)
    at renderRootSync (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:17450:11)
    at performWorkOnRoot (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:16583:35)
    at performSyncWorkOnRoot (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18972:7)
    at flushSyncWorkAcrossRoots_impl (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18814:21)
    at processRootScheduleInMicrotask (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18853:9)
    at .../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18982:11
    at flushActQueue (.../sentry/node_modules/.pnpm/react@19.2..../react/cjs/react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (.../sentry/node_modules/.pnpm/react@19.2..../react/cjs/react.development.js:884:10)
    at .../sentry/node_modules/.pnpm/@testing-library+react@16.2.0_@testing-library+dom@10.4.0_@types+react-dom@19.2.0_@type_011f94990cdc27509fa142ae9e3c3bf5/node_modules/@.../react/dist/act-compat.js:47:25
    at Object.eventWrapper (.../sentry/node_modules/.pnpm/@testing-library+react@16.2.0_@testing-library+dom@10.4.0_@types+react-dom@19.2.0_@type_011f94990cdc27509fa142ae9e3c3bf5/node_modules/@.../react/dist/pure.js:107:28)
    at Object.wrapEvent (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/event/wrapEvent.js:6:28)
    at Object.dispatchEvent (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/event/dispatchEvent.js:45:22)
    at Object.dispatchUIEvent (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/event/dispatchEvent.js:22:26)
    at Mouse.up (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../system/pointer/mouse.js:100:30)
    at PointerHost.release (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../system/pointer/index.js:87:24)
    at pointerAction (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/pointer/index.js:54:47)
    at Object.pointer (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/pointer/index.js:27:9)
    at Object.asyncWrapper (.../sentry/node_modules/.pnpm/@testing-library+react@16.2.0_@testing-library+dom@10.4.0_@types+react-dom@19.2.0_@type_011f94990cdc27509fa142ae9e3c3bf5/node_modules/@.../react/dist/pure.js:88:22)
    at Object.<anonymous> (.../dashboards/globalFilter/addFilter.spec.tsx:126:5)
AddFilter retrieves filter keys for each dataset
Stack Traces | 0.199s run time
TypeError: getSearchBarData is not a function
    at getSearchBarData (.../dashboards/globalFilter/addFilter.tsx:62:24)
    at Object.react_stack_bottom_frame (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:25904:20)
    at renderWithHooks (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:7662:22)
    at updateFunctionComponent (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:10166:19)
    at beginWork (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:11778:18)
    at runWithFiberInDEV (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:874:13)
    at performUnitOfWork (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:17641:22)
    at workLoopSync (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:17469:41)
    at renderRootSync (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:17450:11)
    at performWorkOnRoot (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:16583:35)
    at performSyncWorkOnRoot (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18972:7)
    at flushSyncWorkAcrossRoots_impl (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18814:21)
    at processRootScheduleInMicrotask (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18853:9)
    at .../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18982:11
    at flushActQueue (.../sentry/node_modules/.pnpm/react@19.2..../react/cjs/react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (.../sentry/node_modules/.pnpm/react@19.2..../react/cjs/react.development.js:884:10)
    at .../sentry/node_modules/.pnpm/@testing-library+react@16.2.0_@testing-library+dom@10.4.0_@types+react-dom@19.2.0_@type_011f94990cdc27509fa142ae9e3c3bf5/node_modules/@.../react/dist/act-compat.js:47:25
    at Object.eventWrapper (.../sentry/node_modules/.pnpm/@testing-library+react@16.2.0_@testing-library+dom@10.4.0_@types+react-dom@19.2.0_@type_011f94990cdc27509fa142ae9e3c3bf5/node_modules/@.../react/dist/pure.js:107:28)
    at Object.wrapEvent (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/event/wrapEvent.js:6:28)
    at Object.dispatchEvent (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/event/dispatchEvent.js:45:22)
    at Object.dispatchUIEvent (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/event/dispatchEvent.js:22:26)
    at Mouse.up (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../system/pointer/mouse.js:100:30)
    at PointerHost.release (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../system/pointer/index.js:87:24)
    at pointerAction (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/pointer/index.js:54:47)
    at Object.pointer (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/pointer/index.js:27:9)
    at Object.asyncWrapper (.../sentry/node_modules/.pnpm/@testing-library+react@16.2.0_@testing-library+dom@10.4.0_@types+react-dom@19.2.0_@type_011f94990cdc27509fa142ae9e3c3bf5/node_modules/@.../react/dist/pure.js:88:22)
    at Object.<anonymous> (.../dashboards/globalFilter/addFilter.spec.tsx:80:7)
AddFilter does not render unsupported filter keys
Stack Traces | 0.228s run time
TypeError: getSearchBarData is not a function
    at getSearchBarData (.../dashboards/globalFilter/addFilter.tsx:62:24)
    at Object.react_stack_bottom_frame (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:25904:20)
    at renderWithHooks (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:7662:22)
    at updateFunctionComponent (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:10166:19)
    at beginWork (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:11778:18)
    at runWithFiberInDEV (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:874:13)
    at performUnitOfWork (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:17641:22)
    at workLoopSync (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:17469:41)
    at renderRootSync (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:17450:11)
    at performWorkOnRoot (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:16583:35)
    at performSyncWorkOnRoot (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18972:7)
    at flushSyncWorkAcrossRoots_impl (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18814:21)
    at processRootScheduleInMicrotask (.../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18853:9)
    at .../sentry/node_modules/.pnpm/react-dom@19.2.0_react@19.2..../react-dom/cjs/react-dom-client.development.js:18982:11
    at flushActQueue (.../sentry/node_modules/.pnpm/react@19.2..../react/cjs/react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (.../sentry/node_modules/.pnpm/react@19.2..../react/cjs/react.development.js:884:10)
    at .../sentry/node_modules/.pnpm/@testing-library+react@16.2.0_@testing-library+dom@10.4.0_@types+react-dom@19.2.0_@type_011f94990cdc27509fa142ae9e3c3bf5/node_modules/@.../react/dist/act-compat.js:47:25
    at Object.eventWrapper (.../sentry/node_modules/.pnpm/@testing-library+react@16.2.0_@testing-library+dom@10.4.0_@types+react-dom@19.2.0_@type_011f94990cdc27509fa142ae9e3c3bf5/node_modules/@.../react/dist/pure.js:107:28)
    at Object.wrapEvent (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/event/wrapEvent.js:6:28)
    at Object.dispatchEvent (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/event/dispatchEvent.js:45:22)
    at Object.dispatchUIEvent (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/event/dispatchEvent.js:22:26)
    at Mouse.up (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../system/pointer/mouse.js:100:30)
    at PointerHost.release (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../system/pointer/index.js:87:24)
    at pointerAction (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/pointer/index.js:54:47)
    at Object.pointer (.../sentry/node_modules/.pnpm/@testing-library+user-event@14.6.1_@testing-library+dom@10.4.0/node_modules/@.../cjs/pointer/index.js:27:9)
    at Object.asyncWrapper (.../sentry/node_modules/.pnpm/@testing-library+react@16.2.0_@testing-library+dom@10.4.0_@types+react-dom@19.2.0_@type_011f94990cdc27509fa142ae9e3c3bf5/node_modules/@.../react/dist/pure.js:88:22)
    at Object.<anonymous> (.../dashboards/globalFilter/addFilter.spec.tsx:102:5)

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@Ahmed-Labs Ahmed-Labs force-pushed the ahmedmo/chore/centralize-searchbar-data-hook-invocation branch from 690eca3 to 4e0741f Compare October 16, 2025 20:00
@Ahmed-Labs Ahmed-Labs force-pushed the ahmedmo/chore/centralize-searchbar-data-hook-invocation branch from 94042bf to 7b74c41 Compare October 16, 2025 20:19
…ng called by the search bar data hook in the filtersBar
@Ahmed-Labs Ahmed-Labs marked this pull request as ready for review October 16, 2025 21:08
@Ahmed-Labs Ahmed-Labs requested a review from a team October 16, 2025 21:08
cursor[bot]

This comment was marked as outdated.

@Ahmed-Labs Ahmed-Labs merged commit 271ebe4 into master Oct 20, 2025
47 checks passed
@Ahmed-Labs Ahmed-Labs deleted the ahmedmo/chore/centralize-searchbar-data-hook-invocation branch October 20, 2025 14:33
@sentry
Copy link

sentry bot commented Oct 20, 2025

Issues attributed to commits in this pull request

This pull request was merged and Sentry observed the following issues:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants