-
Notifications
You must be signed in to change notification settings - Fork 9.1k
fix: separate Filter Segment implementation from DataTableProvider #20587
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: separate Filter Segment implementation from DataTableProvider #20587
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 2 Skipped Deployments
|
@@ -74,6 +77,7 @@ interface DataTableProviderProps { | |||
export function DataTableProvider({ | |||
tableIdentifier: _tableIdentifier, | |||
children, | |||
useSegments = useSegmentsNoop, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It accepts useSegments
as a prop, and we use the noop implementation as the default value.
|
||
const clearAll = useCallback( | ||
(exclude?: string[]) => { | ||
setSegmentIdAndSaveToLocalStorage(null); | ||
setAndPersistSegmentId(null); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's renamed (just cleaning up)
canSaveSegment, | ||
isSegmentEnabled, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is now provided from useSegments
.
useSegmentsNoop returns false
for this.
@@ -23,7 +23,7 @@ import { | |||
} from "@calcom/ui/components/table"; | |||
|
|||
import { useColumnSizingVars } from "../hooks"; | |||
import { usePersistentColumnResizing } from "../lib/resizing"; | |||
import { useColumnResizing } from "../hooks/useColumnResizing"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lib/resizing.ts
has been renamed to hooks/useColumnResizing
Also usePersistentColumnResizing
has been renamed to useColumnResizing
.
Previously the "persisting" part was done by this hook, but since Filter Segment, we've moved that part to useSegments()
. So this hook itself doesn't persist anything. So I'm renaming it this way.
@@ -99,6 +99,14 @@ export function FilterSegmentSelect() { | |||
]; | |||
}, [segments, t]); | |||
|
|||
if (!isSegmentEnabled) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We shouldn't use these components when Segment is not enabled, but just in case of mistake, we're early returning a disabled button.
Graphite Automations"Add consumer team as reviewer" took an action on this PR • (04/07/25)1 reviewer was added to this PR based on Keith Williams's automation. "Add ready-for-e2e label" took an action on this PR • (04/09/25)1 label was added to this PR based on Keith Williams's automation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested! All seems to be working fine for me!
E2E results are ready! |
What does this PR do?
We've been calling
useSegments()
directly withinDataTableProvider
, which triggers trpc call to fetch segments.This PR alters
DataTableProvider
to acceptuseSegments
as a prop, meaning it's opt-in now.Mandatory Tasks (DO NOT REMOVE)
How should this be tested?
Filter Segment still works the same. For pages where we're not using
DataTableSegment.xxx
components, we no longer call trpc to query from FilterSegment.