0.0.9.0
This commit is contained in:
+17
-2
@@ -4,7 +4,7 @@ import { SiteHeader } from "@/components/site-header"
|
||||
import { useFamily } from "@/context/family-context"
|
||||
import { Button } from "@/components/ui/button"
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
|
||||
import { Download, Upload, AlertTriangle, RefreshCw, FileText, Bell, History, Database, User as UserIcon } from "lucide-react"
|
||||
import { Download, Upload, AlertTriangle, RefreshCw, FileText, Bell, History, Database, User as UserIcon, Settings, User } from "lucide-react"
|
||||
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
|
||||
import { useRef, useState, useEffect } from "react"
|
||||
import { exportToGedcom, importFromGedcom } from "@/lib/gedcom"
|
||||
@@ -15,6 +15,8 @@ import { Avatar, AvatarFallback } from "@/components/ui/avatar"
|
||||
import { ChangePassword } from "@/components/settings/change-password"
|
||||
import { useDialog } from "@/components/ui/alert-dialog-custom"
|
||||
import { permissions } from "@/lib/permissions"
|
||||
import { EmptyStateBadge } from "@/components/empty-state-badge"
|
||||
import { useRouter } from "next/navigation"
|
||||
|
||||
interface UserProfile {
|
||||
id: string
|
||||
@@ -33,14 +35,22 @@ interface UserProfile {
|
||||
export default function SettingsPage() {
|
||||
const { treeData, currentTree, loadData, resetData } = useFamily()
|
||||
const role = currentTree?.currentUserRole
|
||||
const { data: session } = useSession()
|
||||
const { data: session, status } = useSession()
|
||||
const { showAlert, showConfirm } = useDialog()
|
||||
const router = useRouter()
|
||||
const [importStatus, setImportStatus] = useState<string>("")
|
||||
const [gedcomStatus, setGedcomStatus] = useState<string>("")
|
||||
const [userProfile, setUserProfile] = useState<UserProfile | null>(null)
|
||||
const fileInputRef = useRef<HTMLInputElement>(null)
|
||||
const gedcomInputRef = useRef<HTMLInputElement>(null)
|
||||
|
||||
// 未登录时重定向到登录页
|
||||
useEffect(() => {
|
||||
if (status === 'unauthenticated') {
|
||||
router.push('/auth/signin')
|
||||
}
|
||||
}, [status, router])
|
||||
|
||||
const getUserInitial = () => {
|
||||
if (session?.user?.name) {
|
||||
return session.user.name.charAt(0).toUpperCase()
|
||||
@@ -83,6 +93,11 @@ export default function SettingsPage() {
|
||||
return colorMap[role] || 'bg-gray-100 text-gray-700'
|
||||
}
|
||||
|
||||
// 未登录时不渲染内容(已在 useEffect 中重定向)
|
||||
if (status === 'loading' || !session) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-background flex flex-col font-sans">
|
||||
<SiteHeader />
|
||||
|
||||
Reference in New Issue
Block a user