"use client" import { useState, useEffect } from "react" import Link from "next/link" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Badge } from "@/components/ui/badge" import { Sparkles, ArrowLeft, Database, Settings, TestTube, Trash2 } from "lucide-react" import HeaderMusicControl from "@/components/header-music-control" import MigrationDialog from "@/components/migration-dialog" import { testSupabaseConnection, MigrationService } from "@/lib/supabase-service" export default function SettingsPage() { const [showMigration, setShowMigration] = useState(false) const [isConnected, setIsConnected] = useState(false) const [localDataCount, setLocalDataCount] = useState(0) const [isLoading, setIsLoading] = useState(false) useEffect(() => { checkLocalData() checkConnection() }, []) const checkLocalData = () => { try { const wishes = JSON.parse(localStorage.getItem("wishes") || "[]") setLocalDataCount(wishes.length) } catch (error) { setLocalDataCount(0) } } const checkConnection = async () => { setIsLoading(true) try { const connected = await testSupabaseConnection() setIsConnected(connected) } catch (error) { setIsConnected(false) } finally { setIsLoading(false) } } const clearAllData = () => { if (confirm("確定要清除所有本地數據嗎?此操作無法復原。")) { MigrationService.clearLocalStorageData() // 也清除其他設定 localStorage.removeItem("backgroundMusicState") localStorage.removeItem("user_session") setLocalDataCount(0) alert("本地數據已清除") } } return (
{/* 星空背景 */}
{[...Array(25)].map((_, i) => (
))}
{/* Header */}

心願星河

{/* Main Content */}

系統設定

管理數據存儲和系統配置

{/* Supabase 連接狀態 */} Supabase 數據庫狀態 雲端數據庫連接和配置狀態
連接狀態
{isLoading ? "檢查中..." : isConnected ? "已連接" : "未連接"}
{!isConnected && (

無法連接到 Supabase。請檢查:

  • • 環境變數 NEXT_PUBLIC_SUPABASE_URL 是否正確
  • • 環境變數 NEXT_PUBLIC_SUPABASE_ANON_KEY 是否正確
  • • Supabase 項目是否正常運行
  • • 網路連接是否正常
)}
{/* 數據遷移 */} {localDataCount > 0 && ( 數據遷移 需要處理 發現 {localDataCount} 個本地困擾案例,建議遷移到雲端數據庫 )} {/* 數據管理 */} 數據管理 清除本地存儲的數據
本地困擾案例 {localDataCount} 個

存儲在瀏覽器本地的困擾案例數據

{/* 系統資訊 */} 系統資訊
版本
v1.0.0
數據庫
{isConnected ? "Supabase" : "LocalStorage"}
用戶會話
{typeof window !== "undefined" ? localStorage.getItem("user_session")?.slice(-8) || "未設定" : "載入中..."}
瀏覽器
{typeof window !== "undefined" ? navigator.userAgent.split(" ").pop() : "未知"}
{/* 遷移對話框 */} {showMigration && (
{ setShowMigration(false) checkLocalData() }} onSkip={() => setShowMigration(false)} />
)}
) }