fix(spinner): cater global spinner variant (#5948)

* fix(spinner): cater global spinner variant

* feat(spinner): add spinner test cases

* chore(changeset): add changeset
This commit is contained in:
WK 2025-11-26 16:46:34 +08:00 committed by GitHub
parent ce0c298785
commit 0825f88cd2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 30 additions and 1 deletions

View File

@ -0,0 +1,5 @@
---
"@heroui/spinner": patch
---
cater global spinner variant (#5939)

View File

@ -1,5 +1,6 @@
import * as React from "react";
import {render} from "@testing-library/react";
import {HeroUIProvider} from "@heroui/system";
import {Spinner} from "../src";
@ -40,4 +41,24 @@ describe("Spinner", () => {
expect(getByLabelText("Custom label")).toBeInTheDocument();
});
it("should use global spinner variant if variant is not defined", () => {
const {container} = render(
<HeroUIProvider spinnerVariant="gradient">
<Spinner aria-label="Custom label" />
</HeroUIProvider>,
);
expect(container.querySelector("[class*='gradient']")).toBeInTheDocument();
});
it("should not use global spinner variant if variant is defined", () => {
const {container} = render(
<HeroUIProvider spinnerVariant="gradient">
<Spinner aria-label="Custom label" variant="default" />
</HeroUIProvider>,
);
expect(container.querySelector("[class*='gradient']")).not.toBeInTheDocument();
});
});

View File

@ -45,7 +45,10 @@ export function useSpinner(originalProps: UseSpinnerProps) {
const {children, className, classNames, label: labelProp, ...otherProps} = props;
const slots = useMemo(() => spinner({...variantProps}), [objectToDeps(variantProps)]);
const slots = useMemo(
() => spinner({...variantProps, variant}),
[objectToDeps(variantProps), variant],
);
const baseStyles = clsx(classNames?.base, className);