Skip to content

Commit ef3f8f8

Browse files
committed
feat(basic-starter)!: upgrade to next.js 15 and react 19
1 parent 8f52387 commit ef3f8f8

File tree

5 files changed

+32
-22
lines changed

5 files changed

+32
-22
lines changed

starters/basic-starter/app/[...slug]/page.tsx

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ async function getNode(slug: string[]) {
1212

1313
const params: JsonApiParams = {}
1414

15-
const draftData = getDraftData()
15+
const draftData = await getDraftData()
1616

1717
if (draftData.path === path) {
1818
params.resourceVersion = draftData.resourceVersion
@@ -60,13 +60,17 @@ type NodePageParams = {
6060
}
6161
type NodePageProps = {
6262
params: NodePageParams
63-
searchParams: { [key: string]: string | string[] | undefined }
63+
searchParams: Promise<{ [key: string]: string | string[] | undefined }>
6464
}
6565

6666
export async function generateMetadata(
67-
{ params: { slug } }: NodePageProps,
67+
props: NodePageProps,
6868
parent: ResolvingMetadata
6969
): Promise<Metadata> {
70+
const params = await props.params
71+
72+
const { slug } = params
73+
7074
let node
7175
try {
7276
node = await getNode(slug)
@@ -108,11 +112,12 @@ export async function generateStaticParams(): Promise<NodePageParams[]> {
108112
})
109113
}
110114

111-
export default async function NodePage({
112-
params: { slug },
113-
searchParams,
114-
}: NodePageProps) {
115-
const isDraftMode = draftMode().isEnabled
115+
export default async function NodePage(props: NodePageProps) {
116+
const params = await props.params
117+
118+
const { slug } = params
119+
120+
const isDraftMode = (await draftMode()).isEnabled
116121

117122
let node
118123
try {
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { disableDraftMode } from "next-drupal/draft"
22
import type { NextRequest } from "next/server"
33

4-
export async function GET(request: NextRequest) {
5-
return disableDraftMode()
4+
export async function GET(_: NextRequest) {
5+
return await disableDraftMode()
66
}

starters/basic-starter/app/api/draft/route.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ import { enableDraftMode } from "next-drupal/draft"
33
import type { NextRequest } from "next/server"
44

55
export async function GET(request: NextRequest): Promise<Response | never> {
6-
return enableDraftMode(request, drupal)
6+
return await enableDraftMode(request, drupal)
77
}

starters/basic-starter/components/misc/DraftAlert/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ import { Suspense } from "react"
22
import { draftMode } from "next/headers"
33
import { DraftAlertClient } from "./Client"
44

5-
export function DraftAlert() {
6-
const isDraftEnabled = draftMode().isEnabled
5+
export async function DraftAlert() {
6+
const draftModeStore = await draftMode()
7+
const isDraftEnabled = draftModeStore.isEnabled
78

89
return (
910
<Suspense fallback={null}>
Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"name": "basic-starter",
3-
"version": "2.0.0-beta.0",
3+
"version": "2.0.0-beta.1",
44
"private": true,
55
"license": "MIT",
66
"scripts": {
7-
"dev": "next dev",
7+
"dev": "next dev --turbopack",
88
"build": "next build",
99
"start": "next start",
1010
"preview": "next build && next start",
@@ -13,22 +13,26 @@
1313
"format:check": "prettier --check ."
1414
},
1515
"dependencies": {
16-
"next": "^14.2.2",
17-
"next-drupal": "^2.0.0-beta.0",
18-
"react": "^18.2.0",
19-
"react-dom": "^18.2.0"
16+
"next": "^15.0.4",
17+
"react": "^19.0.0",
18+
"react-dom": "^19.0.0",
19+
"next-drupal": "^2.0.0-beta.2"
2020
},
2121
"devDependencies": {
2222
"@tailwindcss/typography": "^0.5.12",
2323
"@types/node": "^20.12.7",
24-
"@types/react": "^18.2.79",
25-
"@types/react-dom": "^18.2.25",
24+
"@types/react": "^19.0.0",
25+
"@types/react-dom": "^19.0.0",
2626
"autoprefixer": "^10.4.19",
2727
"eslint": "^8.57.0",
28-
"eslint-config-next": "^14.2.2",
28+
"eslint-config-next": "^15.0.4",
2929
"postcss": "^8.4.38",
3030
"prettier": "^3.2.5",
3131
"tailwindcss": "^3.4.3",
3232
"typescript": "^5.4.5"
33+
},
34+
"overrides": {
35+
"@types/react": "^19.0.0",
36+
"@types/react-dom": "^19.0.0"
3337
}
3438
}

0 commit comments

Comments
 (0)