(data: LoadedSettingsData | null)
| 194 | } |
| 195 | |
| 196 | export function buildSettingsFromLoadedData(data: LoadedSettingsData | null): SettingsBuildResult { |
| 197 | const loadedData = migrateLoadedSettingsData(data); |
| 198 | const migratedLegacyCustomFilenameTemplate = |
| 199 | data?.taskFilenameFormat !== "custom" && |
| 200 | data?.customFilenameTemplate === "{title}" && |
| 201 | loadedData?.customFilenameTemplate === "{{title}}"; |
| 202 | const migratedParentNoteTaskCreationDefault = |
| 203 | shouldMigrateParentNoteTaskCreationDefault(loadedData); |
| 204 | |
| 205 | const settings: TaskNotesSettings = { |
| 206 | ...DEFAULT_SETTINGS, |
| 207 | ...loadedData, |
| 208 | fieldMapping: { |
| 209 | ...DEFAULT_SETTINGS.fieldMapping, |
| 210 | ...(loadedData?.fieldMapping || {}), |
| 211 | }, |
| 212 | taskCreationDefaults: buildTaskCreationDefaults(loadedData?.taskCreationDefaults), |
| 213 | calendarViewSettings: { |
| 214 | ...DEFAULT_SETTINGS.calendarViewSettings, |
| 215 | ...(loadedData?.calendarViewSettings || {}), |
| 216 | }, |
| 217 | commandFileMapping: { |
| 218 | ...DEFAULT_SETTINGS.commandFileMapping, |
| 219 | ...(loadedData?.commandFileMapping || {}), |
| 220 | }, |
| 221 | icsIntegration: { |
| 222 | ...DEFAULT_SETTINGS.icsIntegration, |
| 223 | ...(loadedData?.icsIntegration || {}), |
| 224 | }, |
| 225 | nlpTriggers: { |
| 226 | ...DEFAULT_SETTINGS.nlpTriggers, |
| 227 | ...(loadedData?.nlpTriggers || {}), |
| 228 | triggers: loadedData?.nlpTriggers?.triggers || DEFAULT_SETTINGS.nlpTriggers.triggers, |
| 229 | }, |
| 230 | modalFieldsConfig: initializeFieldConfig( |
| 231 | loadedData?.modalFieldsConfig, |
| 232 | loadedData?.userFields |
| 233 | ), |
| 234 | customStatuses: loadedData?.customStatuses || DEFAULT_SETTINGS.customStatuses, |
| 235 | customPriorities: loadedData?.customPriorities || DEFAULT_SETTINGS.customPriorities, |
| 236 | savedViews: loadedData?.savedViews || DEFAULT_SETTINGS.savedViews, |
| 237 | }; |
| 238 | |
| 239 | return { |
| 240 | settings, |
| 241 | shouldPersistMigratedSettings: |
| 242 | hasMissingMigratedSettings(loadedData) || |
| 243 | migratedLegacyCustomFilenameTemplate || |
| 244 | migratedParentNoteTaskCreationDefault, |
| 245 | }; |
| 246 | } |
| 247 | |
| 248 | export function buildSettingsDataForSave( |
| 249 | loadedData: Record<string, unknown> | null | undefined, |
no test coverage detected