From 89b688fd8992344e6614e47ac08491c238a35b26 Mon Sep 17 00:00:00 2001 From: Zai Shi Date: Thu, 7 Mar 2024 16:54:18 +0800 Subject: [PATCH] changed initial project creation params, added suspense to doc --- docs/docs/01-getting-started/01-setup.md | 12 ++++++++---- .../stack-server/src/app/api/v1/projects/route.tsx | 2 +- packages/stack-server/src/lib/projects.tsx | 8 ++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/docs/docs/01-getting-started/01-setup.md b/docs/docs/01-getting-started/01-setup.md index eb5b6c1d3..acd953521 100644 --- a/docs/docs/01-getting-started/01-setup.md +++ b/docs/docs/01-getting-started/01-setup.md @@ -60,7 +60,7 @@ npm install @stackframe/stack 4. In your `app/layout.tsx`, wrap your entire layout with a `StackProvider`. Afterwards, it should look like this: ```tsx - import React from "react"; + import React, { Suspense } from "react"; import { StackProvider } from "@stackframe/stack"; import { stackApp } from "@/lib/stack"; @@ -68,9 +68,11 @@ npm install @stackframe/stack return ( - - {children} - + + + {children} + + ); @@ -79,6 +81,8 @@ npm install @stackframe/stack This lets you use the `useStackApp()` and `useUser()` hooks. + Note that Stack uses the new react suspense feature, which abstracted away all the hurdle of handling loading states. Check our [here](https://react.dev/reference/react/Suspense) if you want to learn more about suspense. + 5. That's it! Stack is now configured in your Next.js project. If you start your Next.js app with `npm run dev` and navigate to `http://localhost:3000/handler/signup`, you will see the Stack sign-up page! ![Stack sign up page](../imgs/signup-page.png) diff --git a/packages/stack-server/src/app/api/v1/projects/route.tsx b/packages/stack-server/src/app/api/v1/projects/route.tsx index 9d82194c0..17aab3779 100644 --- a/packages/stack-server/src/app/api/v1/projects/route.tsx +++ b/packages/stack-server/src/app/api/v1/projects/route.tsx @@ -60,7 +60,7 @@ export const POST = smartRouteHandler(async (req: NextRequest) => { throw new StatusError(StatusError.Forbidden, "Invalid project user"); } - const project = await createProject(projectUser, { displayName, description, allowLocalhost: true, credentialEnabled: false }); + const project = await createProject(projectUser, { displayName, description }); return NextResponse.json(project); }); diff --git a/packages/stack-server/src/lib/projects.tsx b/packages/stack-server/src/lib/projects.tsx index 512be702c..c24355832 100644 --- a/packages/stack-server/src/lib/projects.tsx +++ b/packages/stack-server/src/lib/projects.tsx @@ -138,7 +138,7 @@ export async function listProjects(projectUser: ServerUserJson): Promise & Pick + projectOptions: Pick ): Promise { if (projectUser.projectId !== "internal") { throw new Error("Only internal project users can create projects"); @@ -153,10 +153,10 @@ export async function createProject( description: projectOptions.description, config: { create: { - allowLocalhost: projectOptions.allowLocalhost, - credentialEnabled: projectOptions.credentialEnabled, + allowLocalhost: true, + credentialEnabled: true, oauthProviderConfigs: { - create: (['github', 'facebook', 'google', 'microsoft'] as const).map((id) => ({ + create: (['github', 'google'] as const).map((id) => ({ id, proxiedOAuthConfig: { create: {