import { Stack, Text, Group, Select, SegmentedControl, NumberInput, Button, ActionIcon, Divider } from '@mantine/core'; import { useTranslation } from 'react-i18next'; import { type OverlayPdfsParameters, type OverlayMode } from '../../../hooks/tools/overlayPdfs/useOverlayPdfsParameters'; import LocalIcon from '../../shared/LocalIcon'; import { useFilesModalContext } from '../../../contexts/FilesModalContext'; import styles from './OverlayPdfsSettings.module.css'; interface OverlayPdfsSettingsProps { parameters: OverlayPdfsParameters; onParameterChange: (key: K, value: OverlayPdfsParameters[K]) => void; disabled?: boolean; } export default function OverlayPdfsSettings({ parameters, onParameterChange, disabled = false }: OverlayPdfsSettingsProps) { const { t } = useTranslation(); const { openFilesModal } = useFilesModalContext(); const handleOverlayFilesChange = (files: File[]) => { onParameterChange('overlayFiles', files); // Reset counts to match number of files if in FixedRepeatOverlay if (parameters.overlayMode === 'FixedRepeatOverlay') { const nextCounts = files.map((_, i) => parameters.counts[i] && parameters.counts[i] > 0 ? parameters.counts[i] : 1); onParameterChange('counts', nextCounts); } }; const handleModeChange = (mode: OverlayMode) => { onParameterChange('overlayMode', mode); if (mode !== 'FixedRepeatOverlay') { onParameterChange('counts', []); } else if (parameters.overlayFiles?.length > 0) { onParameterChange('counts', parameters.overlayFiles.map((_, i) => parameters.counts[i] && parameters.counts[i] > 0 ? parameters.counts[i] : 1)); } }; const handleOpenOverlayFilesModal = () => { if (disabled) return; openFilesModal({ customHandler: (files: File[]) => { handleOverlayFilesChange([...(parameters.overlayFiles || []), ...files]); } }); }; return ( {t('overlay-pdfs.mode.label', 'Overlay Mode')}