refactor: migrated to next 16, updated fumadocs

- Deleted the empty middleware file as it was temporarily disabled for client-side i18n implementation.
- Updated `next`, `next-intl`, and `fumadocs` packages to their latest versions.
- Cleaned up the `next.config.ts` by removing the eslint configuration.
- Enhanced `tsconfig.json` with additional paths for `fumadocs-mdx`.
- Adjusted imports in `layout.tsx` and `request.ts` for better structure and functionality.
This commit is contained in:
DESKTOP-RTLN3BA\$punk 2025-12-20 04:24:40 -08:00
parent 17ef72d93e
commit ad41967d28
10 changed files with 1285 additions and 321 deletions

View file

@ -1,7 +1,7 @@
import type { Metadata } from "next";
import "./globals.css";
import { GoogleAnalytics } from "@next/third-parties/google";
import { RootProvider } from "fumadocs-ui/provider";
import { RootProvider } from "fumadocs-ui/provider/next";
import { Roboto } from "next/font/google";
import { I18nProvider } from "@/components/providers/I18nProvider";
import { ThemeProvider } from "@/components/theme/theme-provider";

View file

@ -16,7 +16,7 @@ const INTEGRATIONS: Integration[] = [
{ name: "Elasticsearch", icon: "https://cdn.simpleicons.org/elastic/00A9E5" },
// Communication
{ name: "Slack", icon: "https://cdn.simpleicons.org/slack/4A154B" },
{ name: "Slack", icon: "https://upload.wikimedia.org/wikipedia/commons/d/d5/Slack_icon_2019.svg" },
{ name: "Discord", icon: "https://cdn.simpleicons.org/discord/5865F2" },
{ name: "Gmail", icon: "https://cdn.simpleicons.org/gmail/EA4335" },

View file

@ -17,5 +17,7 @@ export default getRequestConfig(async ({ requestLocale }) => {
return {
locale,
messages: (await import(`../messages/${locale}.json`)).default,
// Set a default timeZone to prevent hydration mismatches between server and client
timeZone: "UTC",
};
});

View file

@ -1,5 +1,5 @@
import { docs } from "@/.source/server";
import { loader } from "fumadocs-core/source";
import { docs } from "@/.source";
export const source = loader({
baseUrl: "/docs",

View file

@ -12,9 +12,6 @@ const nextConfig: NextConfig = {
typescript: {
ignoreBuildErrors: true,
},
eslint: {
ignoreDuringBuilds: true,
},
images: {
remotePatterns: [
{

View file

@ -66,16 +66,16 @@
"dotenv": "^17.2.3",
"drizzle-orm": "^0.44.5",
"emblor": "^1.4.8",
"fumadocs-core": "^15.6.6",
"fumadocs-mdx": "^11.7.1",
"fumadocs-ui": "^15.6.6",
"fumadocs-core": "^16.3.1",
"fumadocs-mdx": "^14.2.1",
"fumadocs-ui": "^16.3.1",
"geist": "^1.4.2",
"jotai": "^2.15.1",
"jotai-tanstack-query": "^0.11.0",
"lucide-react": "^0.477.0",
"motion": "^12.23.22",
"next": "^15.5.9",
"next-intl": "^3.26.5",
"next": "^16.1.0",
"next-intl": "^4.6.1",
"next-themes": "^0.4.6",
"pg": "^8.16.3",
"postgres": "^3.4.7",
@ -93,10 +93,11 @@
"rehype-raw": "^7.0.0",
"rehype-sanitize": "^6.0.0",
"remark-gfm": "^4.0.1",
"server-only": "^0.0.1",
"sonner": "^2.0.6",
"tailwind-merge": "^3.3.1",
"tailwindcss-animate": "^1.0.7",
"zod": "^3.25.76"
"zod": "^4.2.1"
},
"devDependencies": {
"@biomejs/biome": "2.1.2",

File diff suppressed because it is too large Load diff

View file

@ -1,11 +1,11 @@
// Middleware temporarily disabled for client-side i18n implementation
// Proxy temporarily disabled for client-side i18n implementation
// Server-side i18n routing would require restructuring entire app directory to app/[locale]/...
// which is too invasive for this project
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";
// Empty middleware - just pass through all requests
export function middleware(request: NextRequest) {
// Empty proxy - just pass through all requests
export function proxy(request: NextRequest) {
return NextResponse.next();
}

View file

@ -1,5 +1,7 @@
import { defineDocs } from "fumadocs-mdx/config";
import { defineDocs, defineConfig } from "fumadocs-mdx/config";
export const docs = defineDocs({
dir: "content/docs",
});
export default defineConfig();

View file

@ -1,27 +1,45 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "next.config.mjs"],
"exclude": ["node_modules"]
"compilerOptions": {
"target": "ES2017",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react-jsx",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": [
"./*"
],
"fumadocs-mdx:collections/*": [
"./.source/*"
]
}
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
"next.config.mjs",
".next/dev/types/**/*.ts"
],
"exclude": [
"node_modules"
]
}