import { isNotDefined } from "indite-js/lib"; import { NumberInputBlock, Variable } from "indite-js/schemas"; import { parseVariables } from "indite-js/variables/parseVariables"; export const validateNumber = ( inputValue: string, { options, variables, }: { options: NumberInputBlock["options"]; variables: Variable[]; } ) => { if (inputValue === "") return false; const parsedNumber = Number(inputValue); if (isNaN(parsedNumber)) return false; const min = options?.min && typeof options.min === "string" ? Number(parseVariables(variables)(options.min)) : undefined; const max = options?.min && typeof options.min === "string" ? Number(parseVariables(variables)(options.min)) : undefined; return ( (isNotDefined(min) || parsedNumber >= min) && (isNotDefined(max) || parsedNumber <= max) ); };