From d42127822477c809e8989755f9761ee47e34ddec Mon Sep 17 00:00:00 2001 From: Izan Gil <66965250+SrIzan10@users.noreply.github.com> Date: Thu, 19 Dec 2024 23:12:51 +0100 Subject: [PATCH] feat: upgrade to next 15 --- package.json | 8 +- .../(public)/auth/github/callback/route.ts | 6 +- src/app/(public)/auth/github/route.ts | 2 +- src/components/app/NavBar/NavBar.tsx | 5 +- .../app/UniversalForm/UniversalForm.tsx | 5 +- src/lib/auth/actions.ts | 2 +- src/lib/auth/index.ts | 6 +- src/lib/bodyGen.ts | 6 +- src/lib/providers/ThemeProvider.tsx | 16 +- tsconfig.json | 24 +- yarn.lock | 1337 ++++++++++++----- 11 files changed, 1022 insertions(+), 395 deletions(-) diff --git a/package.json b/package.json index b7992be..7dd61b4 100644 --- a/package.json +++ b/package.json @@ -28,10 +28,10 @@ "ioredis": "^5.4.1", "lucia": "^3.1.1", "lucide-react": "^0.368.0", - "next": "^14.2.3", + "next": "^15.1.2", "next-themes": "^0.4.4", - "react": "^18", - "react-dom": "^18", + "react": "^19.0.0-rc.1", + "react-dom": "^19.0.0-rc.1", "react-hook-form": "^7.54.1", "sonner": "^1.4.41", "tailwind-merge": "^2.2.2", @@ -43,7 +43,7 @@ "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", - "eslint-config-next": "14.2.0", + "eslint-config-next": "^15.1.2", "postcss": "^8", "prisma": "^6.0.1", "shadcn": "^2.1.7", diff --git a/src/app/(public)/auth/github/callback/route.ts b/src/app/(public)/auth/github/callback/route.ts index 1d05c1f..4b21d44 100644 --- a/src/app/(public)/auth/github/callback/route.ts +++ b/src/app/(public)/auth/github/callback/route.ts @@ -9,7 +9,7 @@ export async function GET(request: Request): Promise { const url = new URL(request.url); const code = url.searchParams.get('code'); const state = url.searchParams.get('state'); - const storedState = cookies().get('github_oauth_state')?.value ?? null; + const storedState = (await cookies()).get('github_oauth_state')?.value ?? null; if (!code || !state || !storedState || state !== storedState) { return new Response(null, { status: 400, @@ -33,7 +33,7 @@ export async function GET(request: Request): Promise { if (existingUser) { const session = await lucia.createSession(existingUser.id, {}); const sessionCookie = lucia.createSessionCookie(session.id); - cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); + (await cookies()).set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); return new Response(null, { status: 302, headers: { @@ -54,7 +54,7 @@ export async function GET(request: Request): Promise { const session = await lucia.createSession(userId, {}); const sessionCookie = lucia.createSessionCookie(session.id); - cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); + (await cookies()).set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes); return new Response(null, { status: 302, headers: { diff --git a/src/app/(public)/auth/github/route.ts b/src/app/(public)/auth/github/route.ts index 6105127..09efa4a 100644 --- a/src/app/(public)/auth/github/route.ts +++ b/src/app/(public)/auth/github/route.ts @@ -6,7 +6,7 @@ export async function GET(): Promise { const state = generateState(); const url = github.createAuthorizationURL(state, []); - cookies().set("github_oauth_state", state, { + (await cookies()).set("github_oauth_state", state, { path: "/", secure: process.env.NODE_ENV === "production", httpOnly: true, diff --git a/src/components/app/NavBar/NavBar.tsx b/src/components/app/NavBar/NavBar.tsx index 76826c7..26c1f88 100644 --- a/src/components/app/NavBar/NavBar.tsx +++ b/src/components/app/NavBar/NavBar.tsx @@ -11,8 +11,7 @@ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLab import { logout } from "@/lib/auth/actions" import { useSession } from "@/lib/providers/SessionProvider" import Link from "next/link" -import { useState } from "react" -import { useFormState } from "react-dom" +import { useActionState } from "react" import MobileNavbarLinks from "../MobileNavbarLinks/MobileNavbarLinks" import { ThemeSwitcher } from "../ThemeSwitcher/ThemeSwitcher" @@ -35,7 +34,7 @@ function NavbarLinks() { export default function Navbar() { const { user } = useSession(); - const [, logoutAction] = useFormState(logout, null) + const [, logoutAction] = useActionState(logout, null) return ( <>