From de9111dc849f79942e6a395a21395c8b8b8799ce Mon Sep 17 00:00:00 2001 From: panteliselef Date: Wed, 26 Jun 2024 14:12:23 +0300 Subject: [PATCH 1/2] fix(clerk-js): Update cache key for roles when organization changes --- .changeset/wise-bags-kneel.md | 5 +++++ packages/clerk-js/src/ui/hooks/useFetchRoles.ts | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .changeset/wise-bags-kneel.md diff --git a/.changeset/wise-bags-kneel.md b/.changeset/wise-bags-kneel.md new file mode 100644 index 00000000000..e84cd7e4571 --- /dev/null +++ b/.changeset/wise-bags-kneel.md @@ -0,0 +1,5 @@ +--- +"@clerk/clerk-js": patch +--- + +When organization changes, display/fetch the corresponding organization roles. diff --git a/packages/clerk-js/src/ui/hooks/useFetchRoles.ts b/packages/clerk-js/src/ui/hooks/useFetchRoles.ts index 4ec4830e379..7912e989674 100644 --- a/packages/clerk-js/src/ui/hooks/useFetchRoles.ts +++ b/packages/clerk-js/src/ui/hooks/useFetchRoles.ts @@ -13,7 +13,10 @@ const getRolesParams = { }; export const useFetchRoles = (enabled = true) => { const { organization } = useOrganization(); - const { data, isLoading } = useFetch(enabled ? organization?.getRoles : undefined, getRolesParams); + const { data, isLoading } = useFetch(enabled && !!organization?.id ? organization?.getRoles : undefined, { + ...getRolesParams, + orgId: organization?.id, + }); return { isLoading, From 8425c80062cb953e57f08778a56292ca5262badb Mon Sep 17 00:00:00 2001 From: panteliselef Date: Wed, 26 Jun 2024 15:07:56 +0300 Subject: [PATCH 2/2] fix(clerk-js): Update cache key for roles when organization changes --- .../OrganizationSwitcher/__tests__/OrganizationSwitcher.test.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/clerk-js/src/ui/components/OrganizationSwitcher/__tests__/OrganizationSwitcher.test.tsx b/packages/clerk-js/src/ui/components/OrganizationSwitcher/__tests__/OrganizationSwitcher.test.tsx index 0cf7cfa5ffc..1f5d1a9ebdd 100644 --- a/packages/clerk-js/src/ui/components/OrganizationSwitcher/__tests__/OrganizationSwitcher.test.tsx +++ b/packages/clerk-js/src/ui/components/OrganizationSwitcher/__tests__/OrganizationSwitcher.test.tsx @@ -128,6 +128,7 @@ describe('OrganizationSwitcher', () => { f.withOrganizations(); f.withUser({ email_addresses: ['test@clerk.com'], organization_memberships: ['Org1', 'Org2'] }); }); + fixtures.clerk.organization?.getRoles.mockRejectedValue(null); fixtures.clerk.user?.getOrganizationMemberships.mockReturnValueOnce( Promise.resolve({