feat(phase2): phase 6 - integration & polish
Fix all build/type/lint errors, write 60 new tests (175 total), update seed with new widget types and team board permissions, install missing svelte-i18n dependency, fix DynamicIcon for Svelte 5.
This commit is contained in:
@@ -44,7 +44,7 @@
|
||||
|
||||
let {
|
||||
section,
|
||||
boardId,
|
||||
boardId: _boardId = '',
|
||||
apps,
|
||||
onWidgetsUpdate,
|
||||
addWidgetSectionId,
|
||||
@@ -54,6 +54,9 @@
|
||||
onDeleteWidget
|
||||
}: Props = $props();
|
||||
|
||||
// boardId reserved for future per-section API calls
|
||||
void _boardId;
|
||||
|
||||
let widgets = $state<WidgetData[]>([...section.widgets]);
|
||||
|
||||
// Keep local state in sync when parent data changes
|
||||
|
||||
@@ -18,10 +18,11 @@
|
||||
}
|
||||
|
||||
const iconComponent = $derived(
|
||||
name ? (icons as Record<string, unknown>)[toPascalCase(name)] ?? null : null
|
||||
name ? ((icons as Record<string, unknown>)[toPascalCase(name)] as typeof import('svelte').SvelteComponent | undefined) ?? null : null
|
||||
);
|
||||
</script>
|
||||
|
||||
{#if iconComponent}
|
||||
<svelte:component this={iconComponent} {size} class={className} />
|
||||
{@const Icon = iconComponent}
|
||||
<Icon {size} class={className} />
|
||||
{/if}
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
|
||||
<div class="flex h-full flex-col rounded-xl border border-border bg-card p-4">
|
||||
<div class="prose prose-sm prose-invert max-w-none flex-1 overflow-auto text-foreground">
|
||||
<!-- eslint-disable-next-line svelte/no-at-html-tags -- content is sanitized above -->
|
||||
{@html renderedContent}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user