fix(web): widen TrackMenuItem icon prop type to match Lucide signature
Previous fix narrowed `IconProp` to `ComponentType<SvelteComponent<{
size?: number, strokeWidth?: number, class?: string }>>` but Lucide
icons accept `size: string | number` (you can write size="16" or
size={16}), and the resulting structural mismatch surfaces 11 type
errors at every assignment site. Drop the prop-shape constraint
entirely — TrackMenuItem only ever passes numeric values to the icon.
This commit is contained in:
@@ -3,10 +3,11 @@
|
|||||||
|
|
||||||
// Lucide-svelte ships class-based components (typeof ListPlus = ComponentType<...>),
|
// Lucide-svelte ships class-based components (typeof ListPlus = ComponentType<...>),
|
||||||
// not runes-mode function components (Svelte 5's Component<...> type). Use
|
// not runes-mode function components (Svelte 5's Component<...> type). Use
|
||||||
// ComponentType<SvelteComponent<...>> so any Lucide icon assigns cleanly.
|
// ComponentType<SvelteComponent> with no prop-shape constraint — Lucide
|
||||||
type IconProp = ComponentType<
|
// accepts size/strokeWidth as `string | number` and a tighter constraint
|
||||||
SvelteComponent<{ size?: number; strokeWidth?: number; class?: string }>
|
// here trips structural assignment. We always pass numeric `size={14}` and
|
||||||
>;
|
// `strokeWidth={1}` below so the runtime contract is consistent.
|
||||||
|
type IconProp = ComponentType<SvelteComponent>;
|
||||||
|
|
||||||
let {
|
let {
|
||||||
icon,
|
icon,
|
||||||
|
|||||||
Reference in New Issue
Block a user