diff --git a/src/routes/media-management/[databaseId]/components/MediaSettingsSection.svelte b/src/routes/media-management/[databaseId]/components/MediaSettingsSection.svelte index a8e1e28..81923e5 100644 --- a/src/routes/media-management/[databaseId]/components/MediaSettingsSection.svelte +++ b/src/routes/media-management/[databaseId]/components/MediaSettingsSection.svelte @@ -16,8 +16,9 @@ export let arrType: 'radarr' | 'sonarr'; export let canWriteToBase: boolean = false; - // Edit mode state - let isEditing = false; + // Edit mode state (exported for parent dirty tracking) + export let isEditing = false; + export let hasChanges = false; let isSaving = false; // Layer selection @@ -29,6 +30,15 @@ let formPropersRepacks: PropersRepacks = settings?.propers_repacks ?? 'doNotPrefer'; let formEnableMediaInfo: boolean = settings?.enable_media_info ?? true; + // Original values for dirty tracking + let originalPropersRepacks: PropersRepacks = 'doNotPrefer'; + let originalEnableMediaInfo: boolean = true; + + // Dirty tracking + $: hasChanges = + formPropersRepacks !== originalPropersRepacks || + formEnableMediaInfo !== originalEnableMediaInfo; + // Reset form to current settings function resetForm() { formPropersRepacks = settings?.propers_repacks ?? 'doNotPrefer'; @@ -37,6 +47,9 @@ function startEditing() { resetForm(); + // Save original values for dirty tracking + originalPropersRepacks = settings?.propers_repacks ?? 'doNotPrefer'; + originalEnableMediaInfo = settings?.enable_media_info ?? true; isEditing = true; } @@ -187,8 +200,8 @@