import parse from 'parse-duration'; import { durationValidation } from '@/react/utils/validation'; import { FormControl } from '@@/form-components/FormControl'; import { Input } from '@@/form-components/Input'; import { useCaretPosition } from '@@/form-components/useCaretPosition'; export function IntervalField({ onChange, value, errors, }: { value: string; onChange: (value: string) => void; errors?: string; }) { const { ref, updateCaret } = useCaretPosition(); return ( { onChange(e.target.value); updateCaret(); }} /> ); } export function intervalValidation() { return durationValidation(false) // Don't allow empty - field is required .required('This field is required.') .test('minimumInterval', 'Minimum interval is 1m', (value) => { if (!value) { return false; } const minutes = parse(value, 'minute'); return minutes !== null && minutes >= 1; }); }