import { getParametersExceptFirst, type SingleFilter } from "@fn-sphere/core"; import { useFilterRule } from "../hooks/use-filter-rule.js"; import { useDataInputView, useView } from "../theme/hooks.js"; export type DataInputProps = { rule: SingleFilter; }; export const FilterDataInput = ({ rule }: DataInputProps) => { const { Input: InputView } = useView("components"); const { selectedField, selectedFilter, setRule } = useFilterRule(rule); const requiredArguments = selectedFilter ? getParametersExceptFirst(selectedFilter) : undefined; const DataInputView = useDataInputView( requiredArguments, selectedField?.fieldSchema, ); const setRuleArgs = (...value: unknown[]) => { // Can not check the schema here because the input value is not always valid // For example, z.string().email() will throw an error when user types before the user types the complete email // const requiredArgsSchema = z.tuple(requiredArguments); // requiredArgsSchema.parse(value); setRule({ ...rule, args: value, }); }; if (!requiredArguments) { return ; } return ( ); }; FilterDataInput.displayName = "FilterDataInput";