refactor: Use Set for button variant lookup and improve undefined handling

This commit is contained in:
Shirone
2026-01-24 15:48:46 +01:00
parent 7246debb69
commit a6190f71b3

View File

@@ -38,14 +38,14 @@ const buttonVariants = cva(
); );
/** Button variants that have colored backgrounds requiring foreground spinner color */ /** Button variants that have colored backgrounds requiring foreground spinner color */
const COLORED_BACKGROUND_VARIANTS = ['default', 'destructive'] as const; const COLORED_BACKGROUND_VARIANTS = new Set<string>(['default', 'destructive']);
/** Get spinner variant based on button variant - use foreground for colored backgrounds */ /** Get spinner variant based on button variant - use foreground for colored backgrounds */
function getSpinnerVariant( function getSpinnerVariant(
buttonVariant: VariantProps<typeof buttonVariants>['variant'] buttonVariant: VariantProps<typeof buttonVariants>['variant']
): SpinnerVariant { ): SpinnerVariant {
// undefined defaults to 'default' variant which has a colored background const variant = buttonVariant ?? 'default';
if (!buttonVariant || COLORED_BACKGROUND_VARIANTS.includes(buttonVariant as any)) { if (COLORED_BACKGROUND_VARIANTS.has(variant)) {
return 'foreground'; return 'foreground';
} }
// outline, secondary, ghost, link, animated-outline use standard backgrounds // outline, secondary, ghost, link, animated-outline use standard backgrounds