refactor: cleanup struct fields, resolve clippy lints, resolve/ignore svelte lints, checks error on warn

This commit is contained in:
2026-01-14 22:55:40 -06:00
parent e83133cfcc
commit 89e1ab097d
50 changed files with 276 additions and 1114 deletions
+1
View File
@@ -167,6 +167,7 @@
...(themeStore.isDark ? darkModeOverrides : lightModeOverrides),
});
// svelte-ignore non_reactive_update
let canvas: HTMLCanvasElement;
let cleanupFns: (() => void)[] = [];
let ready = $state(false);
+15 -2
View File
@@ -102,6 +102,13 @@
// Otherwise, let the link navigate normally
}
function handleTagKeyDown(tag: TagWithIconAndCount, event: KeyboardEvent) {
if (deleteMode && (event.key === "Enter" || event.key === " ")) {
event.preventDefault();
initiateDelete(tag);
}
}
function initiateDelete(tag: TagWithIconAndCount) {
deleteTarget = tag;
deleteConfirmReady = false;
@@ -243,8 +250,14 @@
<!-- Tags -->
<div class="flex flex-wrap gap-2 max-w-3xl">
{#each data.tags as tag (tag.id)}
<!-- svelte-ignore a11y_no_static_element_interactions -->
<div onclick={(e) => handleTagClick(tag, e)} class="contents">
<!-- svelte-ignore a11y_no_noninteractive_tabindex -->
<div
onclick={(e) => handleTagClick(tag, e)}
onkeydown={(e) => handleTagKeyDown(tag, e)}
role={deleteMode ? "button" : undefined}
tabindex={deleteMode ? 0 : undefined}
class="contents"
>
<TagChip
name={tag.name}
color={deleteMode ? "ef4444" : tag.color}
@@ -20,14 +20,19 @@
let { data }: Props = $props();
// Form state - initialize from loaded data
// Form state - initialize from loaded data (intentionally captures initial values)
// svelte-ignore state_referenced_locally
let name = $state(data.tag.name);
// svelte-ignore state_referenced_locally
let slug = $state(data.tag.slug);
// svelte-ignore state_referenced_locally
let icon = $state(data.tag.icon ?? "");
// svelte-ignore state_referenced_locally
let color = $state<string | undefined>(data.tag.color);
let saving = $state(false);
// Preview icon SVG - starts with server-rendered, updates on icon change
// svelte-ignore state_referenced_locally
let previewIconSvg = $state(data.tag.iconSvg ?? "");
let iconLoadTimeout: ReturnType<typeof setTimeout> | null = null;
@@ -179,9 +184,9 @@
<!-- Preview -->
<div class="mt-6 pt-4 border-t border-admin-border">
<label class="block text-sm font-medium text-admin-text mb-2">
<span class="block text-sm font-medium text-admin-text mb-2">
Preview
</label>
</span>
<TagChip name={name || "Tag Name"} {color} iconSvg={previewIconSvg} />
</div>