52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import type React from "react"
|
|
import { Inter } from "next/font/google"
|
|
import "../styles/globals.css"
|
|
import { AuthProvider } from "@/contexts/auth-context"
|
|
import { CompetitionProvider } from "@/contexts/competition-context"
|
|
import { Toaster } from "@/components/ui/toaster"
|
|
import { ChatBot } from "@/components/chat-bot"
|
|
import "@/lib/app-initializer" // 自動初始化應用程式
|
|
|
|
const inter = Inter({ subsets: ["latin"] })
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode
|
|
}) {
|
|
return (
|
|
<html lang="zh-TW">
|
|
<head>
|
|
<link rel="icon" href="/favicon.ico" sizes="any" />
|
|
<link rel="icon" href="/ai-cloud.png" type="image/png" />
|
|
<link rel="shortcut icon" href="/favicon.ico" />
|
|
<link rel="apple-touch-icon" href="/ai-cloud.png" />
|
|
<meta name="theme-color" content="#3b82f6" />
|
|
</head>
|
|
<body className={inter.className}>
|
|
<AuthProvider>
|
|
<CompetitionProvider>
|
|
{children}
|
|
<Toaster />
|
|
<ChatBot />
|
|
</CompetitionProvider>
|
|
</AuthProvider>
|
|
</body>
|
|
</html>
|
|
)
|
|
}
|
|
|
|
export const metadata = {
|
|
title: '強茂集團 AI 展示平台',
|
|
description: '企業內部 AI 應用展示與競賽管理系統',
|
|
generator: 'v0.dev',
|
|
icons: {
|
|
icon: [
|
|
{ url: '/favicon.ico', sizes: 'any' },
|
|
{ url: '/ai-cloud.png', type: 'image/png' }
|
|
],
|
|
shortcut: '/favicon.ico',
|
|
apple: '/ai-cloud.png',
|
|
},
|
|
};
|