'use client'; import type { ReactNode } from 'react'; import { Button, Checkbox, CloseButton, Dialog, Flex, Portal, Text, } from '@chakra-ui/react'; import { useBulkSelection } from './useBulkSelection'; import type { BulkCheckboxState } from './utils'; interface BulkDeleteToolbarProps { selectedCount: number; checkboxState: BulkCheckboxState; hasSelection: boolean; isDeleting: boolean; dialogOpen: boolean; deleteTitle: ReactNode; deleteDescription: ReactNode; deleteHint?: ReactNode; selectAllLabel?: string; selectedLabel?: ReactNode; onDialogOpenChange: (open: boolean) => void; onToggleAll: (checked: boolean) => void; onRequestDelete?: () => void; onConfirmDelete: () => void; } export const BulkDeleteToolbar = ({ selectedCount, checkboxState, hasSelection, isDeleting, dialogOpen, deleteTitle, deleteDescription, deleteHint = 'This action cannot be undone.', selectAllLabel = 'Select filtered items', selectedLabel, onDialogOpenChange, onToggleAll, onRequestDelete, onConfirmDelete, }: BulkDeleteToolbarProps) => ( onToggleAll(details.checked === true)} > {selectedLabel ?? `Selected: ${selectedCount}`} onDialogOpenChange(event.open)} > {deleteTitle} {deleteDescription} {deleteHint ? ( {deleteHint} ) : null} ); export { useBulkSelection }; export type { BulkCheckboxState };