mirror of
https://github.com/Xevion/xevion.dev.git
synced 2026-01-31 06:26:44 -06:00
refactor: cleanup struct fields, resolve clippy lints, resolve/ignore svelte lints, checks error on warn
This commit is contained in:
@@ -167,6 +167,7 @@
|
||||
...(themeStore.isDark ? darkModeOverrides : lightModeOverrides),
|
||||
});
|
||||
|
||||
// svelte-ignore non_reactive_update
|
||||
let canvas: HTMLCanvasElement;
|
||||
let cleanupFns: (() => void)[] = [];
|
||||
let ready = $state(false);
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user