Files
thrilltrack-explorer/src-old/components/ui/refresh-button.tsx

35 lines
778 B
TypeScript

import { RefreshCw } from 'lucide-react';
import { Button, ButtonProps } from './button';
interface RefreshButtonProps extends Omit<ButtonProps, 'loading' | 'loadingText'> {
onRefresh: () => void | Promise<void>;
isLoading?: boolean;
children?: React.ReactNode;
}
export const RefreshButton = ({
onRefresh,
isLoading = false,
size = 'default',
variant = 'outline',
children = 'Refresh',
className,
...props
}: RefreshButtonProps) => {
return (
<Button
variant={variant}
size={size}
onClick={onRefresh}
loading={isLoading}
loadingText="Refreshing..."
className={className}
trackingLabel="refresh-data"
{...props}
>
<RefreshCw className="w-4 h-4 mr-2" />
{children}
</Button>
);
};