Compare commits

..

1 Commits

Author SHA1 Message Date
Henry
f5b47577d7 fix: respect redirect param on login and signup pages 2026-05-21 12:33:59 +01:00
3 changed files with 43 additions and 60 deletions

View File

@@ -103,24 +103,19 @@ export const WorkspaceProvider: React.FC<{ children: ReactNode }> = ({
} }
if (storedWorkspaceId !== null) { if (storedWorkspaceId !== null) {
const selectedWorkspace = data.find( const newData = data;
const selectedWorkspace = newData.find(
({ workspace }) => workspace.publicId === storedWorkspaceId, ({ workspace }) => workspace.publicId === storedWorkspaceId,
); );
if (!selectedWorkspace?.workspace) { if (!selectedWorkspace?.workspace) {
if (pendingWorkspaceId) {
pollAttemptsRef.current += 1; pollAttemptsRef.current += 1;
if (pollAttemptsRef.current >= MAX_POLL_ATTEMPTS) { if (pollAttemptsRef.current >= MAX_POLL_ATTEMPTS) {
setPendingWorkspaceId(null); setPendingWorkspaceId(null);
localStorage.removeItem("workspacePublicId"); }
} else {
return; return;
} }
} else {
// Clear stale workspacePublicId from localStorage
localStorage.removeItem("workspacePublicId");
}
} else {
pollAttemptsRef.current = 0; pollAttemptsRef.current = 0;
setPendingWorkspaceId(null); setPendingWorkspaceId(null);
@@ -130,7 +125,7 @@ export const WorkspaceProvider: React.FC<{ children: ReactNode }> = ({
slug: selectedWorkspace.workspace.slug, slug: selectedWorkspace.workspace.slug,
plan: selectedWorkspace.workspace.plan, plan: selectedWorkspace.workspace.plan,
description: selectedWorkspace.workspace.description, description: selectedWorkspace.workspace.description,
role: selectedWorkspace.role as "admin" | "member" | "guest", role: selectedWorkspace.role,
weekStartDay: selectedWorkspace.workspace.weekStartDay as 0 | 1 | 6, weekStartDay: selectedWorkspace.workspace.weekStartDay as 0 | 1 | 6,
cardPrefix: selectedWorkspace.workspace.cardPrefix, cardPrefix: selectedWorkspace.workspace.cardPrefix,
}); });
@@ -139,12 +134,7 @@ export const WorkspaceProvider: React.FC<{ children: ReactNode }> = ({
router.push(`/boards`); router.push(`/boards`);
localStorage.setItem("workspacePublicId", workspacePublicId); localStorage.setItem("workspacePublicId", workspacePublicId);
} }
} else {
setHasLoaded(true);
return;
}
}
const primaryWorkspace = data[0]?.workspace; const primaryWorkspace = data[0]?.workspace;
const primaryWorkspaceRole = data[0]?.role; const primaryWorkspaceRole = data[0]?.role;
@@ -156,19 +146,12 @@ export const WorkspaceProvider: React.FC<{ children: ReactNode }> = ({
slug: primaryWorkspace.slug, slug: primaryWorkspace.slug,
plan: primaryWorkspace.plan, plan: primaryWorkspace.plan,
description: primaryWorkspace.description, description: primaryWorkspace.description,
role: primaryWorkspaceRole as "admin" | "member" | "guest", role: primaryWorkspaceRole,
weekStartDay: primaryWorkspace.weekStartDay as 0 | 1 | 6, weekStartDay: primaryWorkspace.weekStartDay as 0 | 1 | 6,
cardPrefix: primaryWorkspace.cardPrefix, cardPrefix: primaryWorkspace.cardPrefix,
}); });
setHasLoaded(true); }
}, [ }, [data, isLoading, isFetching, workspacePublicId, router]);
data,
isLoading,
isFetching,
workspacePublicId,
pendingWorkspaceId,
router,
]);
return ( return (
<WorkspaceContext.Provider <WorkspaceContext.Provider

View File

@@ -26,7 +26,7 @@ export default function LoginPage() {
const { data } = authClient.useSession(); const { data } = authClient.useSession();
if (data?.user.id) router.push("/boards"); if (data?.user.id) router.push(redirect ?? "/boards");
return ( return (
<> <>

View File

@@ -21,7 +21,7 @@ export default function SignUpPage() {
const { data } = authClient.useSession(); const { data } = authClient.useSession();
if (data?.user.id) router.push("/boards"); if (data?.user.id) router.push(redirect ?? "/boards");
const handleMagicLinkSent = (value: boolean, recipient: string) => { const handleMagicLinkSent = (value: boolean, recipient: string) => {
setIsMagicLinkSent(value); setIsMagicLinkSent(value);