diff --git a/.changeset/gentle-pants-matter.md b/.changeset/gentle-pants-matter.md new file mode 100644 index 00000000000..6557d23602e --- /dev/null +++ b/.changeset/gentle-pants-matter.md @@ -0,0 +1,6 @@ +--- +'@clerk/clerk-js': minor +'@clerk/shared': minor +--- + +Increase the duration until data become stale for organization hooks. diff --git a/packages/clerk-js/src/ui/components/OrganizationProfile/ActiveMembersList.tsx b/packages/clerk-js/src/ui/components/OrganizationProfile/ActiveMembersList.tsx index 98c400ec1a7..9e9eae05601 100644 --- a/packages/clerk-js/src/ui/components/OrganizationProfile/ActiveMembersList.tsx +++ b/packages/clerk-js/src/ui/components/OrganizationProfile/ActiveMembersList.tsx @@ -25,13 +25,8 @@ export const ActiveMembersList = () => { return null; } - const handleRoleChange = (membership: OrganizationMembershipResource) => (newRole: string) => { - return card - .runAsync(async () => { - return await membership.update({ role: newRole }); - }) - .catch(err => handleError(err, [], card.setError)); - }; + const handleRoleChange = (membership: OrganizationMembershipResource) => (newRole: string) => + card.runAsync(() => membership.update({ role: newRole })).catch(err => handleError(err, [], card.setError)); const handleRemove = (membership: OrganizationMembershipResource) => async () => { return card diff --git a/packages/shared/src/react/hooks/usePagesOrInfinite.ts b/packages/shared/src/react/hooks/usePagesOrInfinite.ts index 6d51342fce2..c44d097ce0c 100644 --- a/packages/shared/src/react/hooks/usePagesOrInfinite.ts +++ b/packages/shared/src/react/hooks/usePagesOrInfinite.ts @@ -51,6 +51,11 @@ export const useWithSafeValues = (params: T | } as T; }; +const cachingSWROptions = { + dedupingInterval: 1000 * 60, + focusThrottleInterval: 1000 * 60 * 2, +} satisfies Parameters[2]; + type ArrayType = DataArray extends Array ? ElementType : never; type ExtractData = Type extends { data: infer Data } ? ArrayType : Type; @@ -122,7 +127,7 @@ export const usePagesOrInfinite: UsePagesOrInfinite = (params, fetcher, options, // @ts-ignore return fetcher?.(requestParams); }, - { keepPreviousData }, + { keepPreviousData, ...cachingSWROptions }, ); const { @@ -152,6 +157,7 @@ export const usePagesOrInfinite: UsePagesOrInfinite = (params, fetcher, options, // @ts-ignore return fetcher?.(requestParams); }, + cachingSWROptions, ); const page = useMemo(() => {