Skip to content

Commit 4dde647

Browse files
committed
Add changeset
1 parent 7246270 commit 4dde647

File tree

7 files changed

+30
-21
lines changed

7 files changed

+30
-21
lines changed

.changeset/lazy-impalas-clean.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@clerk/clerk-js': patch
3+
'@clerk/types': patch
4+
---
5+
6+
Load tasks based on environment settings

packages/clerk-js/src/ui/components/OrganizationList/OrganizationListPage.tsx

-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ import { organizationListParams } from './utils';
1717
const useOrganizationListInView = () => {
1818
const { userMemberships, userInvitations, userSuggestions } = useOrganizationList(organizationListParams);
1919

20-
console.log({ userMemberships });
21-
2220
const { ref } = useInView({
2321
threshold: 0,
2422
onChange: inView => {

packages/clerk-js/src/ui/components/SessionTasks/index.tsx

+11-13
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,25 @@ import { useCallback, useContext, useEffect } from 'react';
66
import { SESSION_TASK_ROUTE_BY_KEY } from '../../../core/sessionTasks';
77
import { OrganizationListContext, SignInContext, SignUpContext } from '../../../ui/contexts';
88
import { Card, LoadingCardContainer, withCardStateProvider } from '../../../ui/elements';
9-
import { SessionTasksContext as SessionTasksContext } from '../../contexts/components/SessionTasks';
9+
import {
10+
SessionTasksContext as SessionTasksContext,
11+
useSessionTasksContext,
12+
} from '../../contexts/components/SessionTasks';
1013
import { Route, Switch, useRouter } from '../../router';
1114
import { OrganizationList } from '../OrganizationList';
1215

1316
const SessionTasksStart = withCardStateProvider(() => {
1417
const clerk = useClerk();
1518
const { navigate } = useRouter();
19+
const { redirectUrlComplete } = useSessionTasksContext();
1620

1721
useEffect(() => {
22+
// Simulates additional latency to avoid a abrupt UI transition when navigating to the next task
1823
const timeoutId = setTimeout(() => {
19-
void clerk.session?.reload().then(session => {
20-
if (!session.currentTask?.key) {
21-
void navigate(clerk.buildAfterSignInUrl());
22-
return;
23-
}
24-
25-
void navigate(SESSION_TASK_ROUTE_BY_KEY[session.currentTask?.key]);
26-
});
27-
}, 1000);
24+
void clerk.__experimental_nextTask({ redirectUrlComplete });
25+
}, 500);
2826
return () => clearTimeout(timeoutId);
29-
}, [navigate, clerk]);
27+
}, [navigate, clerk, redirectUrlComplete]);
3028

3129
return (
3230
<Card.Root>
@@ -82,12 +80,12 @@ export function SessionTask(): JSX.Element {
8280
}, [clerk, navigate, redirectUrlComplete]);
8381

8482
const nextTask = useCallback(
85-
() => clerk.__experimental_nextTask({ redirectUrlComplete: redirectUrlComplete }),
83+
() => clerk.__experimental_nextTask({ redirectUrlComplete }),
8684
[clerk, redirectUrlComplete],
8785
);
8886

8987
return (
90-
<SessionTasksContext.Provider value={{ nextTask }}>
88+
<SessionTasksContext.Provider value={{ nextTask, redirectUrlComplete }}>
9189
<SessionTaskRoutes />
9290
</SessionTasksContext.Provider>
9391
);
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
1-
import { createContext } from 'react';
1+
import { createContext, useContext } from 'react';
22

33
import type { SessionTasksCtx } from '../../types';
44

55
export const SessionTasksContext = createContext<SessionTasksCtx | null>(null);
6+
7+
export const useSessionTasksContext = () => {
8+
const context = useContext(SessionTasksContext);
9+
10+
if (context === null) {
11+
throw new Error('Clerk: useSessionTasksContext called outside of the mounted SessionTasks component.');
12+
}
13+
14+
return context;
15+
};

packages/clerk-js/src/ui/types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ export type __experimental_CheckoutCtx = __experimental_CheckoutProps & {
114114

115115
export type SessionTasksCtx = {
116116
nextTask: () => Promise<void>;
117+
redirectUrlComplete?: string;
117118
};
118119

119120
export type AvailableComponentCtx =

packages/clerk-js/src/utils/componentGuards.ts

-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ export const sessionExistsAndSingleSessionModeEnabled: ComponentGuard = (clerk,
1010
return !!(clerk.session && environment?.authConfig.singleSessionMode);
1111
};
1212

13-
export const noSessionExists: ComponentGuard = clerk => {
14-
return !clerk.isSignedIn;
15-
};
16-
1713
export const noUserExists: ComponentGuard = clerk => {
1814
return !clerk.user;
1915
};

packages/types/src/clerk.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ export interface Clerk {
644644
* If all tasks are complete, it navigates to the provided completion URL.
645645
* @experimental
646646
*/
647-
__experimental_nextTask: (params: NextTaskParams) => Promise<void>;
647+
__experimental_nextTask: (params?: NextTaskParams) => Promise<void>;
648648

649649
/**
650650
* This is an optional function.

0 commit comments

Comments
 (0)