Skip to content

Commit 4ea30e8

Browse files
authoredAug 9, 2023
ORG-83 userInvitations in useOrganizationList (#1520)
* feat(shared): Support infinite fetching for `userInvitations` from `useOrganizationList` * chore(clerk-js,shared,clerk-react): Deprecate OrganizationContext and introduce OrganizationProvider We needed to wrap <OrganizationContext.Provider/> with SWRConfig provider so that useSWR hooks can read from the correct context in tests. * chore(repo): Add changeset * test(clerk-js): Introduce tests for useCoreOrganizationList * chore(repo): Update lock file
1 parent b42ee79 commit 4ea30e8

16 files changed

+663
-89
lines changed
 

‎.changeset/orange-tigers-act.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
'@clerk/clerk-js': minor
3+
'@clerk/shared': minor
4+
'@clerk/clerk-react': minor
5+
'@clerk/types': minor
6+
---
7+
8+
Introduces userInvitations from `useOrganizationList`
9+
10+
`userInvitations` is a paginated list of data. It can be used to create Paginated tables or Infinite lists.
11+

‎package-lock.json

+50-48
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎packages/clerk-js/src/core/resources/UserOrganizationInvitation.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import type {
88
} from '@clerk/types';
99

1010
import { unixEpochToDate } from '../../utils/date';
11+
import { convertPageToOffset } from '../../utils/pagesToOffset';
1112
import { BaseResource } from './internal';
1213

1314
export class UserOrganizationInvitation extends BaseResource implements UserOrganizationInvitationResource {
@@ -32,7 +33,7 @@ export class UserOrganizationInvitation extends BaseResource implements UserOrga
3233
return await BaseResource._fetch({
3334
path: '/me/organization_invitations',
3435
method: 'GET',
35-
search: params as any,
36+
search: convertPageToOffset(params) as any,
3637
})
3738
.then(res => {
3839
const { data: invites, total_count } =

‎packages/clerk-js/src/ui/contexts/CoreClerkContextWrapper.tsx

+7-3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ import React from 'react';
33

44
import { CoreClerkContext } from './CoreClerkContext';
55
import { CoreClientContext } from './CoreClientContext';
6-
import { CoreOrganizationContext } from './CoreOrganizationContext';
6+
import { CoreOrganizationProvider } from './CoreOrganizationContext';
77
import { CoreSessionContext } from './CoreSessionContext';
88
import { CoreUserContext } from './CoreUserContext';
99
import { assertClerkSingletonExists } from './utils';
1010

1111
type CoreClerkContextWrapperProps = {
1212
clerk: Clerk;
1313
children: React.ReactNode;
14+
swrConfig?: any;
1415
};
1516

1617
type CoreClerkContextProviderState = Resources;
@@ -51,9 +52,12 @@ export function CoreClerkContextWrapper(props: CoreClerkContextWrapperProps): JS
5152
<CoreClerkContext.Provider value={clerkCtx}>
5253
<CoreClientContext.Provider value={clientCtx}>
5354
<CoreSessionContext.Provider value={sessionCtx}>
54-
<CoreOrganizationContext.Provider value={organizationCtx}>
55+
<CoreOrganizationProvider
56+
{...organizationCtx.value}
57+
swrConfig={props.swrConfig}
58+
>
5559
<CoreUserContext.Provider value={userCtx}>{props.children}</CoreUserContext.Provider>
56-
</CoreOrganizationContext.Provider>
60+
</CoreOrganizationProvider>
5761
</CoreSessionContext.Provider>
5862
</CoreClientContext.Provider>
5963
</CoreClerkContext.Provider>
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { OrganizationContext, useOrganization, useOrganizationList, useOrganizations } from '@clerk/shared';
1+
import { OrganizationProvider, useOrganization, useOrganizationList, useOrganizations } from '@clerk/shared';
22

3-
export const CoreOrganizationContext = OrganizationContext;
3+
export const CoreOrganizationProvider = OrganizationProvider;
44
export const useCoreOrganization = useOrganization;
55
export const useCoreOrganizationList = useOrganizationList;
66
export const useCoreOrganizations = useOrganizations;

0 commit comments

Comments
 (0)