refactor(settings): split SettingsPage into components, restructure tabs
- Extract 7 sub-components into settings/components/ (AnilistTab, KomgaSyncCard, MetadataProvidersCard, StatusMappingsCard, ProwlarrCard, QBittorrentCard, TelegramCard) — SettingsPage.tsx: 2100 → 551 lines - Add "Metadata" tab (MetadataProviders + StatusMappings) - Rename "Integrations" → "Download Tools" (Prowlarr + qBittorrent) - Rename "AniList" → "Reading Status" tab; Komga sync as standalone card - Rename cards: "AniList Config" + "AniList Sync" - Persist active tab in URL searchParams (?tab=...) - Fix hydration mismatch on AniList redirect URL (window.location via useEffect) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -474,6 +474,9 @@ const en: Record<TranslationKey, string> = {
|
||||
"settings.title": "Settings",
|
||||
"settings.general": "General",
|
||||
"settings.integrations": "Integrations",
|
||||
"settings.downloadTools": "Download Tools",
|
||||
"settings.metadata": "Metadata",
|
||||
"settings.readingStatus": "Reading Status",
|
||||
"settings.savedSuccess": "Settings saved successfully",
|
||||
"settings.savedError": "Failed to save settings",
|
||||
"settings.saveError": "Error saving settings",
|
||||
@@ -651,7 +654,7 @@ const en: Record<TranslationKey, string> = {
|
||||
|
||||
// Settings - AniList
|
||||
"settings.anilist": "Reading status",
|
||||
"settings.anilistTitle": "AniList Sync",
|
||||
"settings.anilistTitle": "AniList Config",
|
||||
"settings.anilistDesc": "Sync your reading progress with AniList. Get a personal access token at anilist.co/settings/developer.",
|
||||
"settings.anilistToken": "Personal Access Token",
|
||||
"settings.anilistTokenPlaceholder": "AniList token...",
|
||||
@@ -666,7 +669,7 @@ const en: Record<TranslationKey, string> = {
|
||||
"settings.anilistLocalUserTitle": "Local user",
|
||||
"settings.anilistLocalUserDesc": "Select the local user whose reading progress is synced with this AniList account",
|
||||
"settings.anilistLocalUserNone": "— Select a user —",
|
||||
"settings.anilistSyncTitle": "Sync",
|
||||
"settings.anilistSyncTitle": "AniList Sync",
|
||||
"settings.anilistSyncDesc": "Push local reading progress to AniList. Rules: none read → PLANNING · at least 1 read → CURRENT (progress = volumes read) · all published volumes read (total_volumes known) → COMPLETED.",
|
||||
"settings.anilistSyncButton": "Sync to AniList",
|
||||
"settings.anilistPullButton": "Pull from AniList",
|
||||
|
||||
@@ -472,6 +472,9 @@ const fr = {
|
||||
"settings.title": "Paramètres",
|
||||
"settings.general": "Général",
|
||||
"settings.integrations": "Intégrations",
|
||||
"settings.downloadTools": "Outils de téléchargement",
|
||||
"settings.metadata": "Métadonnées",
|
||||
"settings.readingStatus": "Statut de lecture",
|
||||
"settings.savedSuccess": "Paramètres enregistrés avec succès",
|
||||
"settings.savedError": "Échec de l'enregistrement des paramètres",
|
||||
"settings.saveError": "Erreur lors de l'enregistrement des paramètres",
|
||||
@@ -649,7 +652,7 @@ const fr = {
|
||||
|
||||
// Settings - AniList
|
||||
"settings.anilist": "État de lecture",
|
||||
"settings.anilistTitle": "Synchronisation AniList",
|
||||
"settings.anilistTitle": "AniList Config",
|
||||
"settings.anilistDesc": "Synchronisez votre progression de lecture avec AniList. Obtenez un token d'accès personnel sur anilist.co/settings/developer.",
|
||||
"settings.anilistToken": "Token d'accès personnel",
|
||||
"settings.anilistTokenPlaceholder": "Token AniList...",
|
||||
@@ -664,7 +667,7 @@ const fr = {
|
||||
"settings.anilistLocalUserTitle": "Utilisateur local",
|
||||
"settings.anilistLocalUserDesc": "Choisir l'utilisateur local dont la progression est synchronisée avec ce compte AniList",
|
||||
"settings.anilistLocalUserNone": "— Sélectionner un utilisateur —",
|
||||
"settings.anilistSyncTitle": "Synchronisation",
|
||||
"settings.anilistSyncTitle": "AniList Sync",
|
||||
"settings.anilistSyncDesc": "Envoyer la progression locale vers AniList. Règles : aucun lu → PLANNING · au moins 1 lu → CURRENT (progression = nbre de tomes lus) · tous les tomes publiés lus (total_volumes connu) → COMPLETED.",
|
||||
"settings.anilistSyncButton": "Synchroniser vers AniList",
|
||||
"settings.anilistPullButton": "Importer depuis AniList",
|
||||
|
||||
Reference in New Issue
Block a user