UNPKG

@pinuts/bsr-uikit-relaunch

Version:

BSR UI-KIT Relaunch

104 lines 3.55 kB
// import React, { useEffect, useState } from 'react'; // import PropTypes from 'prop-types'; // import { useTranslation } from 'react-i18next'; // // // form-builder // import { registerComponent, formik } from '@pinuts/form-builder'; // // import useGetOptionList from '../../hooks/useGetOptionList.js'; // import { getFormControlClassNames } from '../../utils/getUikitClassNames.js'; // import FormFieldChildPropTypes from '../FormFieldWrapper/FormFieldChildPropTypes.jsx'; // import FormFieldWrapper from '../FormFieldWrapper/FormFieldWrapper.jsx'; // import withFieldGroup from '../../hooks/withFieldGroup.jsx'; // // import SelectField from '../SelectField/SelectField.jsx'; // // const { useFormikContext } = formik; // // const fetchHouseNumbers = async (streetId) => { // const response = await fetch(`http://localhost:8086/cmsbs/rest/de.bsr.adressen.app/streetNo?streetid=${streetId}`); // const data = await response.json(); // // return data; // }; // // const HouseNumberSelectField = (config) => { // // const [selectedStreetId, setSelectedStreetId] = useState(null); // const [houseNumberOptions, setHouseNumberOptions] = useState([]); // const { // streedFieldKey, // key, // } = config.config; // const { values, setFieldValue } = useFormikContext(); // // useEffect(() => { // console.log('values: ' + streedFieldKey, config); // const streetId = values[streedFieldKey] || ''; // // console.log('values[streedFieldKey]: ', values[streedFieldKey]); // setSelectedStreetId(streetId); // // // set number label // if (houseNumberOptions && streetId) { // const numberLabelFieldKey = `${key}Label`; // const numberSelectKey = values[key]; // const numberlabel = houseNumberOptions.find(option => option.value === numberSelectKey)?.label; // if (values[numberLabelFieldKey] !== numberlabel) { // setFieldValue(numberLabelFieldKey, numberlabel); // } // } // }, [values]); // // useEffect(() => { // if (selectedStreetId) { // fetchHouseNumbers(selectedStreetId).catch(console.error).then(setHouseNumberOptions); // } else { // setHouseNumberOptions([]); // if (values[key]) { // setFieldValue(key, ''); // } // } // }, [selectedStreetId]); // // const newConfig = { // ...config, // options: houseNumberOptions, // }; // // return ( // <SelectField {...newConfig} /> // ); // }; // // HouseNumberSelectField.propTypes = { // ...FormFieldChildPropTypes, // // validation: PropTypes.arrayOf(PropTypes.string), // options: PropTypes.arrayOf( // PropTypes.oneOfType([ // PropTypes.shape({ // value: PropTypes.oneOfType([ // PropTypes.string, // PropTypes.number, // ]), // label: PropTypes.oneOfType([ // PropTypes.string, // PropTypes.object, // ]), // }), // PropTypes.string]), // ).isRequired, // emptyOptionLabel: PropTypes.string, // skipOptions: PropTypes.oneOfType([ // PropTypes.arrayOf(PropTypes.string), // PropTypes.string, // ]), // }; // // // registerComponent('HouseNumberSelectField', HouseNumberSelectField); // // // export default HouseNumberSelectField; "use strict";