Next.js 16, React 19.2, Identities page, Invitations identities step, PNPM Catalogs (#381)

* Upgraded to Next.js 16
* Refactored code to comply with React 19.2 ESLint rules
* Refactored some useEffect usages with the new useEffectEvent
* Added Identities page and added second step to set up an identity after accepting an invitation
* Updated all dependencies
* Introduced PNPM catalogs for some frequently updated dependencies
* Bugs fixing and improvements
This commit is contained in:
Giancarlo Buomprisco
2025-10-22 11:47:47 +09:00
committed by GitHub
parent ea0c1dde80
commit 2c0d0bf7a1
98 changed files with 4812 additions and 4394 deletions

View File

@@ -19,10 +19,9 @@ class ConnectivityService {
};
}
const anonKey = await getVariable(
'NEXT_PUBLIC_SUPABASE_ANON_KEY',
this.mode,
);
const anonKey =
(await getVariable('NEXT_PUBLIC_SUPABASE_ANON_KEY', this.mode)) ||
(await getVariable('NEXT_PUBLIC_SUPABASE_PUBLIC_KEY', this.mode));
if (!anonKey) {
return {
@@ -71,10 +70,9 @@ class ConnectivityService {
const endpoint = `${url}/rest/v1/accounts`;
const apikey = await getVariable(
'NEXT_PUBLIC_SUPABASE_ANON_KEY',
this.mode,
);
const apikey =
(await getVariable('NEXT_PUBLIC_SUPABASE_ANON_KEY', this.mode)) ||
(await getVariable('NEXT_PUBLIC_SUPABASE_PUBLIC_KEY', this.mode));
if (!apikey) {
return {
@@ -83,7 +81,9 @@ class ConnectivityService {
};
}
const adminKey = await getVariable('SUPABASE_SERVICE_ROLE_KEY', this.mode);
const adminKey =
(await getVariable('SUPABASE_SERVICE_ROLE_KEY', this.mode)) ||
(await getVariable('SUPABASE_SECRET_KEY', this.mode));
if (!adminKey) {
return {

View File

@@ -13,7 +13,12 @@ export type Translations = {
export async function loadTranslations() {
const localesPath = join(process.cwd(), '../web/public/locales');
const locales = readdirSync(localesPath);
const localesDirents = readdirSync(localesPath, { withFileTypes: true });
const locales = localesDirents
.filter((dirent) => dirent.isDirectory())
.map((dirent) => dirent.name);
const translations: Translations = {};
for (const locale of locales) {

View File

@@ -3,9 +3,7 @@ import type { NextConfig } from 'next';
const nextConfig: NextConfig = {
reactStrictMode: true,
transpilePackages: ['@kit/ui', '@kit/shared'],
experimental: {
reactCompiler: true,
},
reactCompiler: true,
devIndicators: {
position: 'bottom-right',
},

View File

@@ -4,20 +4,20 @@
"private": true,
"scripts": {
"clean": "git clean -xdf .next .turbo node_modules",
"dev": "next dev --turbo --port=3010 | pino-pretty -c",
"format": "prettier --check --write \"**/*.{js,cjs,mjs,ts,tsx,md,json}\""
"dev": "next dev --port=3010 | pino-pretty -c",
"format": "prettier --check --write \"**/*.{ts,tsx}\" --ignore-path=\"../../.prettierignore\""
},
"dependencies": {
"@ai-sdk/openai": "^2.0.42",
"@faker-js/faker": "^10.0.0",
"@ai-sdk/openai": "^2.0.53",
"@faker-js/faker": "^10.1.0",
"@hookform/resolvers": "^5.2.2",
"@tanstack/react-query": "5.90.2",
"ai": "5.0.59",
"lucide-react": "^0.544.0",
"next": "15.5.5",
"nodemailer": "^7.0.6",
"react": "19.1.1",
"react-dom": "19.1.1",
"@tanstack/react-query": "5.90.5",
"ai": "5.0.76",
"lucide-react": "^0.546.0",
"next": "16.0.0",
"nodemailer": "^7.0.9",
"react": "19.2.0",
"react-dom": "19.2.0",
"rxjs": "^7.8.2"
},
"devDependencies": {
@@ -29,16 +29,16 @@
"@kit/shared": "workspace:*",
"@kit/tsconfig": "workspace:*",
"@kit/ui": "workspace:*",
"@tailwindcss/postcss": "^4.1.14",
"@types/node": "^24.6.2",
"@tailwindcss/postcss": "^4.1.15",
"@types/node": "catalog:",
"@types/nodemailer": "7.0.2",
"@types/react": "19.1.16",
"@types/react-dom": "19.1.9",
"babel-plugin-react-compiler": "19.1.0-rc.3",
"pino-pretty": "13.0.0",
"react-hook-form": "^7.63.0",
"@types/react": "catalog:",
"@types/react-dom": "19.2.2",
"babel-plugin-react-compiler": "1.0.0",
"pino-pretty": "13.1.2",
"react-hook-form": "^7.65.0",
"recharts": "2.15.3",
"tailwindcss": "4.1.14",
"tailwindcss": "4.1.15",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.9.3",
"zod": "^3.25.74"