| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import { PropsWithChildren } from 'react'
- import { Button, cn } from 'ui'
- interface ConfirmFooterProps {
- message: string
- cancelLabel?: string
- confirmLabel?: string
- confirmLabelLoading?: string
- isLoading?: boolean
- onCancel?: () => void | Promise<void>
- onConfirm?: () => void | Promise<void>
- }
- export const ConfirmFooter = ({
- message,
- cancelLabel = 'Cancel',
- confirmLabel = 'Confirm',
- confirmLabelLoading = 'Working...',
- isLoading = false,
- onCancel,
- onConfirm,
- }: PropsWithChildren<ConfirmFooterProps>) => {
- return (
- <div
- className={cn(
- 'flex items-center justify-between py-2 pr-2 pl-4 text-xs text-foreground',
- 'relative border border-t-0 overflow-hidden rounded-b-lg bg-border shadow-inset gap-3',
- 'bg-linear-to-r from-background-surface-75 to-background-surface-200'
- )}
- >
- <div className="flex-1 relative z-10">{message}</div>
- <div className="flex items-center gap-2 relative z-10">
- <Button size="tiny" type="outline" onClick={onCancel} disabled={isLoading}>
- {cancelLabel}
- </Button>
- <Button size="tiny" type="primary" onClick={onConfirm} disabled={isLoading}>
- {isLoading ? confirmLabelLoading : confirmLabel}
- </Button>
- </div>
- </div>
- )
- }
|