From 702b1f12d8dd49ff910f9c2e208a18e1df7bd8dd Mon Sep 17 00:00:00 2001 From: Igor Zalutski Date: Fri, 13 Sep 2024 13:11:09 +0100 Subject: [PATCH] Store orgId after onboarding in a cookie --- package.json | 1 + pnpm-lock.yaml | 3 +++ .../(authenticated-pages)/dashboard/route.tsx | 5 +++++ .../onboarding/OrganizationCreation.tsx | 10 +++++----- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5a1615f6..fd1ecfb2 100644 --- a/package.json +++ b/package.json @@ -119,6 +119,7 @@ "hastscript": "^9.0.0", "html2canvas": "^1.4.1", "inbucket-js-client": "^1.0.1", + "js-cookie": "^3.0.5", "jsonwebtoken": "^9.0.2", "jspdf": "^2.5.1", "lodash": "^4.17.21", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32eff637..a8e2daa1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -344,6 +344,9 @@ importers: inbucket-js-client: specifier: ^1.0.1 version: 1.0.1 + js-cookie: + specifier: ^3.0.5 + version: 3.0.5 jsonwebtoken: specifier: ^9.0.2 version: 9.0.2 diff --git a/src/app/(dynamic-pages)/(authenticated-pages)/dashboard/route.tsx b/src/app/(dynamic-pages)/(authenticated-pages)/dashboard/route.tsx index 7a221931..73cd6780 100644 --- a/src/app/(dynamic-pages)/(authenticated-pages)/dashboard/route.tsx +++ b/src/app/(dynamic-pages)/(authenticated-pages)/dashboard/route.tsx @@ -6,6 +6,11 @@ export const dynamic = 'force-dynamic'; export async function GET(req: NextRequest) { try { + const initialOrgId = req.cookies.get('organization')?.value; + if (initialOrgId) { + console.log('Initial org id from cookies:', initialOrgId); + return NextResponse.redirect(new URL(`/org/${initialOrgId}`, req.url)); + } const initialOrganization = await getInitialOrganizationToRedirectTo(); if (initialOrganization.status === 'error') { return NextResponse.redirect(toSiteURL('/500')); diff --git a/src/app/(dynamic-pages)/(authenticated-pages)/onboarding/OrganizationCreation.tsx b/src/app/(dynamic-pages)/(authenticated-pages)/onboarding/OrganizationCreation.tsx index c0819482..ad3cc388 100644 --- a/src/app/(dynamic-pages)/(authenticated-pages)/onboarding/OrganizationCreation.tsx +++ b/src/app/(dynamic-pages)/(authenticated-pages)/onboarding/OrganizationCreation.tsx @@ -8,11 +8,9 @@ import { generateSlug } from "@/lib/utils"; import { CreateOrganizationSchema, createOrganizationSchema } from "@/utils/zod-schemas/organization"; import { zodResolver } from "@hookform/resolvers/zod"; import { useMutation } from "@tanstack/react-query"; +import Cookies from 'js-cookie'; import { useForm } from "react-hook-form"; - - - type OrganizationCreationProps = { onSuccess: () => void; }; @@ -26,9 +24,11 @@ export function OrganizationCreation({ onSuccess }: OrganizationCreationProps) { const createOrgMutation = useMutation({ mutationFn: async ({ organizationTitle, organizationSlug }: CreateOrganizationSchema) => { return createOrganization(organizationTitle, organizationSlug, { isOnboardingFlow: true }) - } - , + }, onSuccess: (data) => { + const { data: orgId } = data as { data: string } + console.log('created organization ID:', orgId); + Cookies.set('organization', orgId); toast({ title: "Organization created!", description: "Your new organization is ready." }); onSuccess(); },