diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index 4c8f0b3..5091443 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,5 +1,6 @@
import type { Metadata } from "next";
import "./globals.css";
+import { SettingsProvider } from "@/components/providers/SettingsProvider";
export const metadata: Metadata = {
title: "cchcode - AI 智能助手",
@@ -17,7 +18,9 @@ export default function RootLayout({
return (
- {children}
+
+ {children}
+
);
diff --git a/src/components/providers/SettingsProvider.tsx b/src/components/providers/SettingsProvider.tsx
new file mode 100644
index 0000000..c51f081
--- /dev/null
+++ b/src/components/providers/SettingsProvider.tsx
@@ -0,0 +1,32 @@
+'use client';
+
+import { useEffect, type ReactNode } from 'react';
+import { useSettings } from '@/hooks/useSettings';
+
+interface SettingsProviderProps {
+ children: ReactNode;
+}
+
+export function SettingsProvider({ children }: SettingsProviderProps) {
+ const { settings, loading } = useSettings();
+
+ // 应用全局设置
+ useEffect(() => {
+ if (!loading && settings) {
+ // 应用字体大小
+ if (settings.fontSize) {
+ document.documentElement.style.setProperty(
+ '--font-size-base',
+ `${settings.fontSize}px`
+ );
+ }
+
+ // 应用主题
+ if (settings.theme) {
+ document.documentElement.setAttribute('data-theme', settings.theme);
+ }
+ }
+ }, [settings, loading]);
+
+ return <>{children}>;
+}