diff --git a/src/lib/extension/entities/TagEditorPreset.ts b/src/lib/extension/entities/TagEditorPreset.ts index d904d5f..681fc61 100644 --- a/src/lib/extension/entities/TagEditorPreset.ts +++ b/src/lib/extension/entities/TagEditorPreset.ts @@ -3,6 +3,8 @@ import StorageEntity from "$lib/extension/base/StorageEntity"; interface TagEditorPresetSettings { name: string; tags: string[]; + conditional: boolean; + requiredTags: string[]; } export default class TagEditorPreset extends StorageEntity { @@ -10,6 +12,8 @@ export default class TagEditorPreset extends StorageEntity([]); + let isConditional = $state(false); + let requiredTags = $state([]); $effect(() => { if (presetId === 'new') { @@ -39,6 +42,8 @@ presetName = targetPreset.settings.name; tagsList = [...targetPreset.settings.tags].sort((a, b) => a.localeCompare(b)); + isConditional = targetPreset.settings.conditional; + requiredTags = [...targetPreset.settings.requiredTags].sort((a, b) => a.localeCompare(b)); }); async function savePreset() { @@ -49,6 +54,8 @@ targetPreset.settings.name = presetName; targetPreset.settings.tags = [...tagsList]; + targetPreset.settings.conditional = isConditional; + targetPreset.settings.requiredTags = [...requiredTags]; await targetPreset.save(); await goto(`/features/presets/${targetPreset.id}`); @@ -67,6 +74,16 @@ + + + Show this preset only when specified tags are provided. + + + {#if isConditional} + + + + {/if}