// Copyright (c) 2026 Gordon Bolton. MIT License. import { state } from '../state.js'; // Migration from old single-select to new multi-select format (function migrateDownloadClientFilter() { const oldSelection = localStorage.getItem('sofarr-download-client'); if (oldSelection && oldSelection !== 'all') { try { state.selectedDownloadClients = [oldSelection]; localStorage.setItem('sofarr-download-clients', JSON.stringify(state.selectedDownloadClients)); localStorage.removeItem('sofarr-download-client'); } catch (e) { console.error('[Migration] Failed to migrate download client filter:', e); } } else { try { const newSelection = localStorage.getItem('sofarr-download-clients'); state.selectedDownloadClients = newSelection ? JSON.parse(newSelection) : []; } catch (e) { console.error('[Migration] Failed to load download client filter:', e); state.selectedDownloadClients = []; } } })(); // Load history days from localStorage (function loadHistorySettings() { try { const savedDays = localStorage.getItem('sofarr-history-days'); if (savedDays) { state.historyDays = parseInt(savedDays, 10) || 7; } } catch (e) { console.error('[Storage] Failed to load history days:', e); } })(); // Load ignore available setting from localStorage (function loadIgnoreAvailable() { try { const saved = localStorage.getItem('sofarr-ignore-available'); state.ignoreAvailable = saved === 'true'; } catch (e) { console.error('[Storage] Failed to load ignore available:', e); } })(); // Load request filter preferences from localStorage (function loadRequestFilters() { try { const savedTypes = localStorage.getItem('sofarr-request-types'); if (savedTypes) state.selectedRequestTypes = JSON.parse(savedTypes); } catch (e) { console.error('[Storage] Failed to load request types:', e); state.selectedRequestTypes = ['movie', 'tv']; } try { const savedStatuses = localStorage.getItem('sofarr-request-statuses'); if (savedStatuses) state.selectedRequestStatuses = JSON.parse(savedStatuses); } catch (e) { console.error('[Storage] Failed to load request statuses:', e); state.selectedRequestStatuses = []; } try { const savedSort = localStorage.getItem('sofarr-request-sort'); if (savedSort) state.requestSortMode = savedSort; } catch (e) { console.error('[Storage] Failed to load request sort:', e); state.requestSortMode = 'requestedDate_desc'; } try { const savedSearch = localStorage.getItem('sofarr-request-search'); if (savedSearch !== null) state.requestSearchQuery = savedSearch; } catch (e) { console.error('[Storage] Failed to load request search:', e); state.requestSearchQuery = ''; } })(); // Export helper functions for localStorage operations export function saveHistoryDays(days) { localStorage.setItem('sofarr-history-days', days); } export function saveIgnoreAvailable(value) { localStorage.setItem('sofarr-ignore-available', value); } export function saveDownloadClients(clients) { localStorage.setItem('sofarr-download-clients', JSON.stringify(clients)); } export function getTheme() { return localStorage.getItem('sofarr-theme') || 'light'; } export function saveTheme(theme) { localStorage.setItem('sofarr-theme', theme); } export function getActiveTab() { return localStorage.getItem('sofarr-active-tab') || 'downloads'; } export function saveActiveTab(tab) { localStorage.setItem('sofarr-active-tab', tab); } export function saveRequestTypes(types) { localStorage.setItem('sofarr-request-types', JSON.stringify(types)); } export function saveRequestStatuses(statuses) { localStorage.setItem('sofarr-request-statuses', JSON.stringify(statuses)); } export function saveRequestSort(sort) { localStorage.setItem('sofarr-request-sort', sort); } export function saveRequestSearch(query) { localStorage.setItem('sofarr-request-search', query); }