@@ -45,6 +45,7 @@ import { StartWorkspaceModalContext } from "../workspaces/start-workspace-modal-
4545import { OrgRequiredRoute } from "./OrgRequiredRoute" ;
4646import { WebsocketClients } from "./WebsocketClients" ;
4747import { StartWorkspaceOptions } from "../start/start-workspace-options" ;
48+ import { useFeatureFlags } from "../contexts/FeatureFlagContext" ;
4849
4950const Setup = React . lazy ( ( ) => import ( /* webpackPrefetch: true */ "../Setup" ) ) ;
5051const Workspaces = React . lazy ( ( ) => import ( /* webpackPrefetch: true */ "../workspaces/Workspaces" ) ) ;
@@ -88,6 +89,7 @@ const ProjectsSearch = React.lazy(() => import(/* webpackPrefetch: true */ "../a
8889const TeamsSearch = React . lazy ( ( ) => import ( /* webpackPrefetch: true */ "../admin/TeamsSearch" ) ) ;
8990const License = React . lazy ( ( ) => import ( /* webpackPrefetch: true */ "../admin/License" ) ) ;
9091const Usage = React . lazy ( ( ) => import ( /* webpackPrefetch: true */ "../Usage" ) ) ;
92+ const UserOnboarding = React . lazy ( ( ) => import ( /* webpackPrefetch: true */ "../onboarding/UserOnboarding" ) ) ;
9193
9294type AppRoutesProps = {
9395 user : User ;
@@ -99,6 +101,7 @@ export const AppRoutes: FunctionComponent<AppRoutesProps> = ({ user, teams }) =>
99101 const [ isWhatsNewShown , setWhatsNewShown ] = useState ( shouldSeeWhatsNew ( user ) ) ;
100102 const newCreateWsPage = useNewCreateWorkspacePage ( ) ;
101103 const location = useLocation ( ) ;
104+ const { newSignupFlow } = useFeatureFlags ( ) ;
102105
103106 // Prefix with `/#referrer` will specify an IDE for workspace
104107 // We don't need to show IDE preference in this case
@@ -120,12 +123,18 @@ export const AppRoutes: FunctionComponent<AppRoutesProps> = ({ user, teams }) =>
120123 return < WhatsNew onClose = { ( ) => setWhatsNewShown ( false ) } /> ;
121124 }
122125
126+ // Placeholder for new signup flow
127+ if ( newSignupFlow && User . isOnboardingUser ( user ) ) {
128+ return < UserOnboarding user = { user } /> ;
129+ }
130+
123131 // TODO: Try and encapsulate this in a route for "/" (check for hash in route component, render or redirect accordingly)
124132 const isCreation = location . pathname === "/" && hash !== "" ;
125133 if ( isCreation ) {
126134 if ( showUserIdePreference ) {
127135 return (
128136 < StartPage phase = { StartPhase . Checking } >
137+ { /* TODO: ensure we don't show this after new onboarding flow */ }
129138 < SelectIDEModal location = "workspace_start" onClose = { ( ) => setShowUserIdePreference ( false ) } />
130139 </ StartPage >
131140 ) ;
0 commit comments