'use client'; import { AddSourceModal } from '@/components/settings/AddSourceModal'; import { ExportModal } from '@/components/settings/ExportModal'; import { ImportModal } from '@/components/settings/ImportModal'; import { ConfirmDialog } from '@/components/ui/ConfirmDialog'; import { SourceSettings } from '@/components/settings/SourceSettings'; import { SortSettings } from '@/components/settings/SortSettings'; import { DataSettings } from '@/components/settings/DataSettings'; import { AccountSettings } from '@/components/settings/AccountSettings'; import { DisplaySettings } from '@/components/settings/DisplaySettings'; import { PlayerSettings } from '@/components/settings/PlayerSettings'; import { SettingsHeader } from '@/components/settings/SettingsHeader'; import { UserSourceSettings } from '@/components/settings/UserSourceSettings'; import { UserDanmakuSettings } from '@/components/settings/UserDanmakuSettings'; import { PermissionGate } from '@/components/PermissionGate'; import { hasPermission } from '@/lib/store/auth-store'; import { useSettingsPage } from './hooks/useSettingsPage'; export default function SettingsPage() { const { sources, sortBy, realtimeLatency, searchDisplayMode, fullscreenType, isAddModalOpen, isExportModalOpen, isImportModalOpen, isResetDialogOpen, isRestoreDefaultsDialogOpen, setIsAddModalOpen, setIsExportModalOpen, setIsImportModalOpen, setIsResetDialogOpen, setIsRestoreDefaultsDialogOpen, handleSourcesChange, handleAddSource, handleSortChange, handleExport, handleImportFile, handleImportLink, subscriptions, handleAddSubscription, handleRemoveSubscription, handleRefreshSubscription, handleRestoreDefaults, handleResetAll, editingSource, handleEditSource, setEditingSource, handleRealtimeLatencyChange, handleSearchDisplayModeChange, handleFullscreenTypeChange, proxyMode, handleProxyModeChange, rememberScrollPosition, handleRememberScrollPositionChange, locale, handleLocaleChange, danmakuApiUrl, handleDanmakuApiUrlChange, danmakuOpacity, handleDanmakuOpacityChange, danmakuFontSize, handleDanmakuFontSizeChange, danmakuDisplayArea, handleDanmakuDisplayAreaChange, } = useSettingsPage(); return (