import { TextInput, Button, Text, Flex, Switch } from '@mantine/core'; import { useTranslation } from 'react-i18next'; import LocalIcon from '../../shared/LocalIcon'; import { Tooltip } from '../../shared/Tooltip'; import { usePageSelectionTips } from '../../tooltips/usePageSelectionTips'; import classes from './BulkSelectionPanel.module.css'; interface PageSelectionInputProps { csvInput: string; setCsvInput: (value: string) => void; onUpdatePagesFromCSV: (override?: string) => void; onClear: () => void; advancedOpened?: boolean; onToggleAdvanced?: (v: boolean) => void; } const PageSelectionInput = ({ csvInput, setCsvInput, onUpdatePagesFromCSV, onClear, advancedOpened, onToggleAdvanced, }: PageSelectionInputProps) => { const { t } = useTranslation(); const pageSelectionTips = usePageSelectionTips(); return (
{/* Header row with tooltip/title and advanced toggle */} e.stopPropagation()} align="center" gap="xs"> Page Selection {typeof advancedOpened === 'boolean' && ( {t('bulkSelection.advanced.title', 'Advanced')} onToggleAdvanced?.(e.currentTarget.checked)} title={t('bulkSelection.advanced.title', 'Advanced')} className={classes.advancedSwitch} /> )} {/* Text input */} { const next = e.target.value; setCsvInput(next); onUpdatePagesFromCSV(next); }} placeholder="1,3,5-10" rightSection={ csvInput && ( ) } onKeyDown={(e) => e.key === 'Enter' && onUpdatePagesFromCSV()} className={classes.textInput} />
); }; export default PageSelectionInput;