import * as React from 'react'; import { useLanguage } from '../hooks/useLanguage'; import { makeError, makeNoError } from '../builder/tools'; import * as types from '../types'; let validation = ({ Element, data, Language, value }: types.Part.ValidationProps) => { if (Element.validation?.required && (value == null || value == "")) { return makeError(Element.name, Language["select"]?.["required"].replace("{field}", Element.props.label) ); } return makeNoError(Element.name); }; const Logic = ({ Element, Component, onChange, data, error, ...props }: types.Part.LogicProps) => { const Language = useLanguage(); let componentOnChange = (evt) => { let value = evt.currentTarget.value; return onChange({ data: { [Element.name]: value }, error: { ...(validation({ Element, data, value, Language }) ?? {}) } }); }; let propsToPass = { value: data[Element.name], options: Element.context.options, ...Element.props, data, error: error[Element.name], onChange: componentOnChange, }; return ; }; const Component = ({ name, label, value, options, readonly, onChange }) => { if (readonly) { return k.value == value).label} />; } else { return ; } }; let Part: types.Part.Part = { Component, Logic, validation }; export { Part as select };