diff --git a/tools/ui/src/lib/components/app/models/ModelId.svelte b/tools/ui/src/lib/components/app/models/ModelId.svelte index d346cffa18..ba3a976aef 100644 --- a/tools/ui/src/lib/components/app/models/ModelId.svelte +++ b/tools/ui/src/lib/components/app/models/ModelId.svelte @@ -95,6 +95,7 @@ let hasBadges = $derived( parsed.sidecar || + uniqueDraftSidecars.length > 0 || (parsed.params && !hideParameters) || (parsed.quantization && !resolvedHideQuantization) || primaryAlias || diff --git a/tools/ui/src/lib/components/app/models/discover/DownloadProgressBar.svelte b/tools/ui/src/lib/components/app/models/discover/DownloadProgressBar.svelte index c3a89c0ba4..6f4973c12e 100644 --- a/tools/ui/src/lib/components/app/models/discover/DownloadProgressBar.svelte +++ b/tools/ui/src/lib/components/app/models/discover/DownloadProgressBar.svelte @@ -18,14 +18,14 @@ {#if overlay}
{:else}
diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte index 8523f0685b..f78e745864 100644 --- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte +++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverAvatar.svelte @@ -29,11 +29,8 @@ size = 'h-9 w-9' }: Props = $props(); - let avatarError = $state(false); - let quantError = $state(false); - - let orgAvatarFailed = $derived(avatarError || failedAvatarOrgs.has(org)); - let quantAvatarFailed = $derived(quantError || failedAvatarOrgs.has(quantOrg ?? '')); + let orgAvatarFailed = $derived(failedAvatarOrgs.has(org)); + let quantAvatarFailed = $derived(failedAvatarOrgs.has(quantOrg ?? '')); let invertAvatar = $derived(DARK_INVERT_AVATAR_ORGS.includes(org)); let invertQuant = $derived(DARK_INVERT_AVATAR_ORGS.includes(quantOrg ?? '')); @@ -76,7 +73,6 @@ loading="lazy" onerror={() => { failedAvatarOrgs.add(org); - avatarError = true; }} src={HuggingFaceService.getAvatarUrl(org)} /> @@ -104,7 +100,6 @@ loading="lazy" onerror={() => { failedAvatarOrgs.add(quantOrg ?? ''); - quantError = true; }} src={HuggingFaceService.getAvatarUrl(quantOrg)} /> diff --git a/tools/ui/src/lib/utils/formatters.ts b/tools/ui/src/lib/utils/formatters.ts index f9f6477dcb..03e6279846 100644 --- a/tools/ui/src/lib/utils/formatters.ts +++ b/tools/ui/src/lib/utils/formatters.ts @@ -28,8 +28,8 @@ export function formatFileSize(bytes: number | unknown): string { /** * Format parameter count to human-readable format (B, M, K) * - * Billions render as whole numbers (`176.94e9` -> `177B`): the decimals are - * noise at badge sizes and id-parsed counts are whole anyway (`Qwen3-8B`). + * Billions keep one decimal for hub counts (`15.2B`) and none for whole + * values (id-parsed counts are integers anyway, e.g. `8B`). * * @param params - Parameter count * @returns Human-readable parameter count @@ -38,7 +38,9 @@ export function formatParameters(params: number | unknown): string { if (typeof params !== 'number') return 'Unknown'; if (params >= 1e9) { - return `${Math.round(params / 1e9)}B`; + const billions = params / 1e9; + + return `${Number.isInteger(billions) ? billions : billions.toFixed(1)}B`; } if (params >= 1e6) {