From 51d78e6f9d449e5ae84ffc89deecea063e8ac682 Mon Sep 17 00:00:00 2001 From: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Date: Tue, 28 Oct 2025 14:35:57 +0000 Subject: [PATCH] fix(onboarding): adderss nits for invite link / spacing (#24742) ## What does this PR do? - Redirects users to the personal settings page after organization creation instead of the getting-started page - Adds a new `skipToPersonal` function in `useSubmitOnboarding` hook to handle this redirection - Creates a new `getGettingStartedPathWhenInvited` method in `OnboardingPathService` to provide the correct path for invited users - Updates all invitation-related code to use the new path method - Improves UI spacing in the organization invite view ## Visual Demo (For contributors especially) #### Image Demo (if applicable): - Before: Users were redirected to `/onboarding/getting-started` or `/getting-started` after organization creation - After: Users are now redirected to `/onboarding/personal/settings` or `/getting-started` based on feature flag ## Mandatory Tasks (DO NOT REMOVE) - [ ] I have self-reviewed the code. - [ ] I have updated the developer docs in /docs if this PR makes changes that would require a documentation change. If N/A, write N/A here and check the checkbox. - [ ] I confirm automated tests are in place that prove my fix is effective or that my feature works. ## How should this be tested? 1. Create a new organization through the onboarding flow 2. Verify you are redirected to the personal settings page instead of getting-started 3. Accept an invitation to an organization as a new user 4. Verify you are directed to the personal settings page after signup 5. Check that the UI spacing in the organization invite view looks correct ## Checklist - I have read the [contributing guide](https://github.com/calcom/cal.com/blob/main/CONTRIBUTING.md) - My code follows the style guidelines of this project - I have commented my code, particularly in hard-to-understand areas - I have checked if my changes generate no new warnings --- .../modules/onboarding/hooks/useSubmitOnboarding.ts | 13 +++++++++---- .../invite/organization-invite-view.tsx | 4 ++-- packages/features/ee/teams/services/teamService.ts | 2 +- .../onboarding/lib/onboarding-path.service.ts | 6 ++++++ .../routers/viewer/teams/inviteMember/utils.ts | 4 ++-- .../viewer/teams/resendInvitation.handler.ts | 2 +- 6 files changed, 21 insertions(+), 10 deletions(-) diff --git a/apps/web/modules/onboarding/hooks/useSubmitOnboarding.ts b/apps/web/modules/onboarding/hooks/useSubmitOnboarding.ts index f88b02c74d..5d24c1cda2 100644 --- a/apps/web/modules/onboarding/hooks/useSubmitOnboarding.ts +++ b/apps/web/modules/onboarding/hooks/useSubmitOnboarding.ts @@ -1,10 +1,10 @@ import { useRouter } from "next/navigation"; import { useState } from "react"; +import { useFlagMap } from "@calcom/features/flags/context/provider"; import { CreationSource } from "@calcom/prisma/enums"; import { trpc } from "@calcom/trpc/react"; import { showToast } from "@calcom/ui/components/toast"; -import { useFlagMap } from "@calcom/features/flags/context/provider"; import type { OnboardingState } from "../store/onboarding-store"; @@ -81,9 +81,7 @@ export const useSubmitOnboarding = () => { // Organization has already been created by the backend showToast("Organization created successfully!", "success"); // TODO: after this redirect we need to hard refresh the page to see org - resetOnboarding(); - const gettingStartedPath = flags["onboarding-v3"] ? "/onboarding/getting-started" : "/getting-started"; - router.push(gettingStartedPath); + skipToPersonal(resetOnboarding); } catch (err) { const errorMessage = err instanceof Error ? err.message : "Failed to create organization"; setError(errorMessage); @@ -94,8 +92,15 @@ export const useSubmitOnboarding = () => { } }; + const skipToPersonal = (resetOnboarding: () => void) => { + resetOnboarding(); + const gettingStartedPath = flags["onboarding-v3"] ? "/onboarding/personal/settings" : "/getting-started"; + router.push(gettingStartedPath); + }; + return { submitOnboarding, + skipToPersonal, isSubmitting, error, }; diff --git a/apps/web/modules/onboarding/organization/invite/organization-invite-view.tsx b/apps/web/modules/onboarding/organization/invite/organization-invite-view.tsx index fcae801e67..a2b2b5381c 100644 --- a/apps/web/modules/onboarding/organization/invite/organization-invite-view.tsx +++ b/apps/web/modules/onboarding/organization/invite/organization-invite-view.tsx @@ -188,7 +188,7 @@ export const OrganizationInviteView = ({ userEmail }: OrganizationInviteViewProp