fix: hide empty segment.

This commit is contained in:
Darshan
2026-02-09 13:34:07 +05:30
parent 13e2b0d6ef
commit ed7db9f8cd
3 changed files with 21 additions and 5 deletions
@@ -9,19 +9,31 @@
*/
export let maxSize: $$Props['maxSize'];
/**
* Hides empty segments where size is < 0;
*/
export let hideEmptySegments: $$Props['hideEmptySegments'];
/**
* The data for the progressbar
*/
export let data: $$Props['data'];
$: segments = hideEmptySegments ? data.filter((item) => item.size > 0) : data;
/**
* The remaining value of the progressbar
*/
$: remainder = data.reduce((sum: number, item: ProgressbarData) => sum - item.size, maxSize);
$: remainder = segments.reduce(
(sum: number, item: ProgressbarData) => sum - item.size,
maxSize
);
$: segmentGap = segments.length > 1 ? '2px' : '0px';
</script>
<section class="progressbar__container">
{#each $$props.data as item}
<section class="progressbar__container" style:--progressbar-segment-gap={segmentGap}>
{#each segments as item}
<Tooltip disabled={!item.tooltip} maxWidth="max-content">
<div
class="progressbar__content"
@@ -64,7 +76,7 @@
border-radius: var(--progressbar-border-radius);
display: flex;
flex-direction: row;
gap: 2px;
gap: var(--progressbar-segment-gap, 2px);
margin-top: 1rem;
overflow: hidden;
}
+1
View File
@@ -11,6 +11,7 @@ export type ProgressbarData = {
export type ProgressbarProps = {
maxSize: number;
hideEmptySegments?: boolean;
data: Array<ProgressbarData>;
};
@@ -145,7 +145,10 @@
</span>
</Tooltip>
</Layout.Stack>
<ProgressBar maxSize={bytesMax} data={getProgressData(bytesUsed, bytesMax, size)} />
<ProgressBar
hideEmptySegments
maxSize={bytesMax}
data={getProgressData(bytesUsed, bytesMax, size)} />
{#if exceedsLimit}
<Typography.Text variant="m-400" color="--fgcolor-danger">
This column exceeds the remaining row space. Consider using text, mediumtext, or