From 0d871bd6fa60c8f528d851a7747275ceea1d1636 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 25 Oct 2023 17:04:39 +0200 Subject: [PATCH 1/4] Docs usage-next-13.mdx: Add section on the new Metadata and reference invoke --- app/pages/docs/usage-next-13.mdx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/pages/docs/usage-next-13.mdx b/app/pages/docs/usage-next-13.mdx index c2acf41d..0fbcf312 100644 --- a/app/pages/docs/usage-next-13.mdx +++ b/app/pages/docs/usage-next-13.mdx @@ -75,6 +75,19 @@ export default function RootLayout({children}: {children: React.ReactNode}) { ) } ``` +#### Metadata {#metadata} + +The app router requires a new way to set Metadata. Follow the [NextJS Documentation](https://nextjs.org/docs/app/building-your-application/optimizing/metadata). Thinks to rememeber for BlitzJS: + +* Layouts and pages need to be server components which means you might have to extract interface elements that use hooks or browser APIs into separate client components first. +* Use the [`invoke` helper](blitz-rpc-invoke) to use the dynamic `function generateMetadata` with BlitJS queries. Example: + ```ts + export async function generateMetadata({ params }) { + const project = await invoke(getProject, { id: params.projectId }) + return { title: project?.name } + } + export default function Page() {) + ``` #### Blitz Auth {#blitz-auth} @@ -181,7 +194,7 @@ await useAuthenticatedBlitzContext({ The following method are to be used to invoke a resolver in a react server component -##### Using `invoke` +##### Using `invoke` {#blitz-rpc-invoke} Let's say there is a requirement to query a resolver in the `(root)/page.js` file to check the details of the curretn user @@ -207,7 +220,7 @@ export const {... , invoke} = setupBlitzServer({ **In a RSC Page or Layout** ```tsx -import {invoke} from "src/blitz-server" +import {} from "src/blitz-server" import getCurrentUser from "src/users/queries/getCurrentUser" ``` From 26be9cae10bb452d462f80fd0fc88356386d8cf2 Mon Sep 17 00:00:00 2001 From: Tobias Date: Wed, 25 Oct 2023 17:07:27 +0200 Subject: [PATCH 2/4] Docs usage-next-13.mdx: Fix accidental deletion --- app/pages/docs/usage-next-13.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pages/docs/usage-next-13.mdx b/app/pages/docs/usage-next-13.mdx index 0fbcf312..76f3d4aa 100644 --- a/app/pages/docs/usage-next-13.mdx +++ b/app/pages/docs/usage-next-13.mdx @@ -220,7 +220,7 @@ export const {... , invoke} = setupBlitzServer({ **In a RSC Page or Layout** ```tsx -import {} from "src/blitz-server" +import {invoke} from "src/blitz-server" import getCurrentUser from "src/users/queries/getCurrentUser" ``` From 1b09ca01fbab2ce8ac3017abaa1b63c17674f0c3 Mon Sep 17 00:00:00 2001 From: Tobias Date: Thu, 26 Oct 2023 09:39:00 +0200 Subject: [PATCH 3/4] Docs usage-next-13.mdx: Fix wording Co-authored-by: Siddharth Suresh --- app/pages/docs/usage-next-13.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pages/docs/usage-next-13.mdx b/app/pages/docs/usage-next-13.mdx index 76f3d4aa..705c7c98 100644 --- a/app/pages/docs/usage-next-13.mdx +++ b/app/pages/docs/usage-next-13.mdx @@ -77,7 +77,7 @@ export default function RootLayout({children}: {children: React.ReactNode}) { ``` #### Metadata {#metadata} -The app router requires a new way to set Metadata. Follow the [NextJS Documentation](https://nextjs.org/docs/app/building-your-application/optimizing/metadata). Thinks to rememeber for BlitzJS: +The app router requires a new way to set Metadata. Follow the [NextJS Documentation](https://nextjs.org/docs/app/building-your-application/optimizing/metadata). Thinks to remember for BlitzJS: * Layouts and pages need to be server components which means you might have to extract interface elements that use hooks or browser APIs into separate client components first. * Use the [`invoke` helper](blitz-rpc-invoke) to use the dynamic `function generateMetadata` with BlitJS queries. Example: From 859524d64b4f3a5b0e54c1261d0f4684e0baec4d Mon Sep 17 00:00:00 2001 From: Tobias Date: Thu, 26 Oct 2023 09:40:39 +0200 Subject: [PATCH 4/4] Docs usage-next-13.mdx: Add link to NextJS docs for dynamic metadata --- app/pages/docs/usage-next-13.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pages/docs/usage-next-13.mdx b/app/pages/docs/usage-next-13.mdx index 705c7c98..4abffb5a 100644 --- a/app/pages/docs/usage-next-13.mdx +++ b/app/pages/docs/usage-next-13.mdx @@ -80,7 +80,7 @@ export default function RootLayout({children}: {children: React.ReactNode}) { The app router requires a new way to set Metadata. Follow the [NextJS Documentation](https://nextjs.org/docs/app/building-your-application/optimizing/metadata). Thinks to remember for BlitzJS: * Layouts and pages need to be server components which means you might have to extract interface elements that use hooks or browser APIs into separate client components first. -* Use the [`invoke` helper](blitz-rpc-invoke) to use the dynamic `function generateMetadata` with BlitJS queries. Example: +* Use the [`invoke` helper](blitz-rpc-invoke) to use the dynamic [`generateMetadata`](https://nextjs.org/docs/app/building-your-application/optimizing/metadata#dynamic-metadata) with BlitJS queries. Example: ```ts export async function generateMetadata({ params }) { const project = await invoke(getProject, { id: params.projectId })