1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-17 21:26:22 -04:00
Files
Radarr/frontend/src/Components/Link/SpinnerButton.tsx
Mark McDowall 96f973c961 Convert Spinner button components to TypeScript
(cherry picked from commit a1d4bb53997748ef348af50dd967bae8e23e234d)
2025-04-27 20:42:38 +03:00

42 lines
1011 B
TypeScript

import classNames from 'classnames';
import React from 'react';
import Icon, { IconName } from 'Components/Icon';
import { icons } from 'Helpers/Props';
import Button, { ButtonProps } from './Button';
import styles from './SpinnerButton.css';
export interface SpinnerButtonProps extends ButtonProps {
isSpinning: boolean;
isDisabled?: boolean;
spinnerIcon?: IconName;
}
function SpinnerButton({
className = styles.button,
isSpinning,
isDisabled,
spinnerIcon = icons.SPINNER,
children,
...otherProps
}: SpinnerButtonProps) {
return (
<Button
className={classNames(
className,
styles.button,
isSpinning && styles.isSpinning
)}
isDisabled={isDisabled || isSpinning}
{...otherProps}
>
<span className={styles.spinnerContainer}>
<Icon className={styles.spinner} name={spinnerIcon} isSpinning={true} />
</span>
<span className={styles.label}>{children}</span>
</Button>
);
}
export default SpinnerButton;