From 63be0f0ff394afd8c36e946b451652cdbbfd9332 Mon Sep 17 00:00:00 2001 From: swve Date: Tue, 11 Mar 2025 12:50:56 +0100 Subject: [PATCH] chore: upgrade React and Next.js to latest versions Update project dependencies to React 19 and Next.js 15, including TypeScript type adjustments and async parameter handling across multiple components --- apps/web/app/auth/login/page.tsx | 8 +- apps/web/app/auth/signup/page.tsx | 8 +- .../activity/[activityuuid]/edit/page.tsx | 16 +- apps/web/app/layout.tsx | 1 - .../collection/[collectionid]/page.tsx | 15 +- .../[orgslug]/(withmenu)/collections/page.tsx | 11 +- .../activity/[activityid]/activity.tsx | 14 +- .../activity/[activityid]/page.tsx | 15 +- .../(withmenu)/course/[courseuuid]/page.tsx | 13 +- .../[orgslug]/(withmenu)/courses/page.tsx | 11 +- .../app/orgs/[orgslug]/(withmenu)/layout.tsx | 22 +- .../app/orgs/[orgslug]/(withmenu)/page.tsx | 11 +- .../orgs/[orgslug]/(withmenu)/trail/page.tsx | 11 +- .../course/[courseuuid]/[subpage]/page.tsx | 5 +- .../app/orgs/[orgslug]/dash/courses/page.tsx | 11 +- apps/web/app/orgs/[orgslug]/dash/layout.tsx | 19 +- .../dash/org/settings/[subpage]/page.tsx | 5 +- .../dash/payments/[subpage]/page.tsx | 7 +- .../user-account/settings/[subpage]/page.tsx | 5 +- .../dash/users/settings/[subpage]/page.tsx | 5 +- apps/web/app/orgs/[orgslug]/layout.tsx | 22 +- .../UserEditGeneral/UserEditGeneral.tsx | 2 +- .../UserEditPassword/UserEditPassword.tsx | 2 +- .../Objects/Editor/EditorWrapper.tsx | 4 +- .../Objects/StyledElements/Form/Form.tsx | 2 +- .../components/Utils/libs/styled-registry.tsx | 4 +- apps/web/package.json | 109 +- apps/web/pnpm-lock.yaml | 5301 ++++++++--------- 28 files changed, 2781 insertions(+), 2878 deletions(-) diff --git a/apps/web/app/auth/login/page.tsx b/apps/web/app/auth/login/page.tsx index 9baf1cc7..548ec0c9 100644 --- a/apps/web/app/auth/login/page.tsx +++ b/apps/web/app/auth/login/page.tsx @@ -3,12 +3,12 @@ import LoginClient from './login' import { Metadata } from 'next' type MetadataProps = { - params: { orgslug: string } - searchParams: { [key: string]: string | string[] | undefined } + params: Promise<{ orgslug: string }> + searchParams: Promise<{ [key: string]: string | string[] | undefined }> } export async function generateMetadata(params: MetadataProps): Promise { - const orgslug = params.searchParams.orgslug + const orgslug = (await params.searchParams).orgslug //const orgslug = params.orgslug // Get Org context information @@ -23,7 +23,7 @@ export async function generateMetadata(params: MetadataProps): Promise } const Login = async (params: MetadataProps) => { - const orgslug = params.searchParams.orgslug + const orgslug = (await params.searchParams).orgslug const org = await getOrganizationContextInfo(orgslug, { revalidate: 0, tags: ['organizations'], diff --git a/apps/web/app/auth/signup/page.tsx b/apps/web/app/auth/signup/page.tsx index babc3203..0aef5b0b 100644 --- a/apps/web/app/auth/signup/page.tsx +++ b/apps/web/app/auth/signup/page.tsx @@ -5,14 +5,14 @@ import { Suspense } from 'react' import PageLoading from '@components/Objects/Loaders/PageLoading' type MetadataProps = { - params: { orgslug: string; courseid: string } - searchParams: { [key: string]: string | string[] | undefined } + params: Promise<{ orgslug: string; courseid: string }> + searchParams: Promise<{ [key: string]: string | string[] | undefined }> } export async function generateMetadata( params : MetadataProps): Promise { - const orgslug = params.searchParams.orgslug + const orgslug = (await params.searchParams).orgslug // Get Org context information const org = await getOrganizationContextInfo(orgslug, { revalidate: 0, @@ -25,7 +25,7 @@ export async function generateMetadata( } const SignUp = async (params: any) => { - const orgslug = params.searchParams.orgslug + const orgslug = (await params.searchParams).orgslug const org = await getOrganizationContextInfo(orgslug, { revalidate: 0, tags: ['organizations'], diff --git a/apps/web/app/editor/course/[courseid]/activity/[activityuuid]/edit/page.tsx b/apps/web/app/editor/course/[courseid]/activity/[activityuuid]/edit/page.tsx index 4dca9687..85030599 100644 --- a/apps/web/app/editor/course/[courseid]/activity/[activityuuid]/edit/page.tsx +++ b/apps/web/app/editor/course/[courseid]/activity/[activityuuid]/edit/page.tsx @@ -1,3 +1,4 @@ + import { default as React } from 'react' import dynamic from 'next/dynamic' import { getCourseMetadata } from '@services/courses/courses' @@ -8,17 +9,16 @@ import EditorOptionsProvider from '@components/Contexts/Editor/EditorContext' import AIEditorProvider from '@components/Contexts/AI/AIEditorContext' import { nextAuthOptions } from 'app/auth/options' import { getServerSession } from 'next-auth' -const EditorWrapper = dynamic(() => import('@components/Objects/Editor/EditorWrapper'), { ssr: false }) +import EditorWrapper from '@components/Objects/Editor/EditorWrapper' type MetadataProps = { - params: { orgslug: string; courseid: string; activityid: string } - searchParams: { [key: string]: string | string[] | undefined } + params: Promise<{ orgslug: string; courseid: string; activityid: string }> + searchParams: Promise<{ [key: string]: string | string[] | undefined }> } -export async function generateMetadata({ - params, -}: MetadataProps): Promise { +export async function generateMetadata(props: MetadataProps): Promise { + const params = await props.params; const session = await getServerSession(nextAuthOptions) const access_token = session?.tokens?.access_token // Get Org context information @@ -37,8 +37,8 @@ export async function generateMetadata({ const EditActivity = async (params: any) => { const session = await getServerSession(nextAuthOptions) const access_token = session?.tokens?.access_token - const activityuuid = params.params.activityuuid - const courseid = params.params.courseid + const activityuuid = (await params.params).activityuuid + const courseid = (await params.params).courseid const courseInfo = await getCourseMetadata( courseid, { revalidate: 0, tags: ['courses'] }, diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index 2ae9dd48..14fedf12 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -31,7 +31,6 @@ export default function RootLayout({ animate="enter" // Animated state to variants.enter exit="exit" // Exit state (used later) to variants.exit transition={{ type: 'linear' }} // Set the transition to linear - className="" > {children} diff --git a/apps/web/app/orgs/[orgslug]/(withmenu)/collection/[collectionid]/page.tsx b/apps/web/app/orgs/[orgslug]/(withmenu)/collection/[collectionid]/page.tsx index aebb4872..7aab5682 100644 --- a/apps/web/app/orgs/[orgslug]/(withmenu)/collection/[collectionid]/page.tsx +++ b/apps/web/app/orgs/[orgslug]/(withmenu)/collection/[collectionid]/page.tsx @@ -9,13 +9,12 @@ import { getServerSession } from 'next-auth' import Link from 'next/link' type MetadataProps = { - params: { orgslug: string; courseid: string; collectionid: string } - searchParams: { [key: string]: string | string[] | undefined } + params: Promise<{ orgslug: string; courseid: string; collectionid: string }> + searchParams: Promise<{ [key: string]: string | string[] | undefined }> } -export async function generateMetadata({ - params, -}: MetadataProps): Promise { +export async function generateMetadata(props: MetadataProps): Promise { + const params = await props.params; const session = await getServerSession(nextAuthOptions) const access_token = session?.tokens?.access_token @@ -55,13 +54,13 @@ export async function generateMetadata({ const CollectionPage = async (params: any) => { const session = await getServerSession(nextAuthOptions) const access_token = session?.tokens?.access_token - const org = await getOrganizationContextInfo(params.params.orgslug, { + const org = await getOrganizationContextInfo((await params.params).orgslug, { revalidate: 1800, tags: ['organizations'], }) - const orgslug = params.params.orgslug + const orgslug = (await params.params).orgslug const col = await getCollectionById( - params.params.collectionid, + (await params.params).collectionid, access_token ? access_token : null, { revalidate: 0, tags: ['collections'] } ) diff --git a/apps/web/app/orgs/[orgslug]/(withmenu)/collections/page.tsx b/apps/web/app/orgs/[orgslug]/(withmenu)/collections/page.tsx index 2b1f199a..ef184d72 100644 --- a/apps/web/app/orgs/[orgslug]/(withmenu)/collections/page.tsx +++ b/apps/web/app/orgs/[orgslug]/(withmenu)/collections/page.tsx @@ -14,13 +14,12 @@ import { getOrgThumbnailMediaDirectory } from '@services/media/media' import ContentPlaceHolderIfUserIsNotAdmin from '@components/Objects/ContentPlaceHolder' type MetadataProps = { - params: { orgslug: string; courseid: string } - searchParams: { [key: string]: string | string[] | undefined } + params: Promise<{ orgslug: string; courseid: string }> + searchParams: Promise<{ [key: string]: string | string[] | undefined }> } -export async function generateMetadata({ - params, -}: MetadataProps): Promise { +export async function generateMetadata(props: MetadataProps): Promise { + const params = await props.params; // Get Org context information const org = await getOrganizationContextInfo(params.orgslug, { revalidate: 0, @@ -60,7 +59,7 @@ export async function generateMetadata({ const CollectionsPage = async (params: any) => { const session = await getServerSession(nextAuthOptions) const access_token = session?.tokens?.access_token - const orgslug = params.params.orgslug + const orgslug = (await params.params).orgslug const org = await getOrganizationContextInfo(orgslug, { revalidate: 1800, tags: ['organizations'], diff --git a/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/activity/[activityid]/activity.tsx b/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/activity/[activityid]/activity.tsx index b3e2d077..f0728c3f 100644 --- a/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/activity/[activityid]/activity.tsx +++ b/apps/web/app/orgs/[orgslug]/(withmenu)/course/[courseuuid]/activity/[activityid]/activity.tsx @@ -461,7 +461,7 @@ function ActivityChapterDropdown(props: {
{isOpen && ( -
+

Course Content

@@ -630,7 +630,7 @@ function ActivityNavigation(props: { <>