Fix Progress zero value bug

This commit is contained in:
Mats Bosson 2026-03-29 07:39:35 +07:00
parent 21a7991562
commit c5b7260e6d
2 changed files with 10 additions and 3 deletions

View File

@ -40,17 +40,18 @@ export function Progress(props: ProgressProps): JSX.Element {
}; };
const valueNow = (): number | undefined => { const valueNow = (): number | undefined => {
return isIndeterminate() ? undefined : currentValue() || undefined; const v = currentValue();
return isIndeterminate() || v === null ? undefined : v;
}; };
const dataValue = (): number | undefined => { const dataValue = (): number | undefined => {
return isIndeterminate() ? undefined : currentValue() || undefined; const v = currentValue();
return isIndeterminate() || v === null ? undefined : v;
}; };
return ( return (
<div <div
role="progressbar" role="progressbar"
tabIndex={-1}
aria-valuemin={0} aria-valuemin={0}
aria-valuemax={max()} aria-valuemax={max()}
aria-valuenow={valueNow()} aria-valuenow={valueNow()}

View File

@ -48,4 +48,10 @@ describe("Progress", () => {
render(() => <Progress value={75} />); render(() => <Progress value={75} />);
expect(screen.getByRole("progressbar").getAttribute("data-state")).toBe("complete"); expect(screen.getByRole("progressbar").getAttribute("data-state")).toBe("complete");
}); });
it("sets aria-valuenow=0 when value is zero", () => {
render(() => <Progress value={0} />);
expect(screen.getByRole("progressbar").getAttribute("aria-valuenow")).toBe("0");
expect(screen.getByRole("progressbar").getAttribute("data-state")).toBe("complete");
});
}); });