import { RtFormFieldSelect, RtLabelledValue, RtOption, RtValue, } from '@dpa/react-form-field-select'; import { RtFrame } from '@dpa/react-frame-intro'; import { RtText } from '@dpa/react-text'; import { useEffect, useMemo, useState } from 'react'; export function FormFieldSelectPage() { const [options, setOptions] = useState([ { label: 'Техника', value: 'tech', description: 'asad' }, { label: 'Одежда', value: 'clothes' }, { label: 'Спорт', value: 'sport' }, { label: 'Еда', value: 'food' }, { label: 'Мебель', value: 'furniture', disabled: true }, { label: 'Домашние растения', value: 'home-plants' }, { label: 'Для животных', value: 'for-pats' }, { label: 'Аптечка', value: 'medicine' }, { label: 'Другое', value: 'others' }, ]); const [categories, setCategories] = useState([ { label: 'Аптечка', value: 'medicine' }, ]); const [category, setCategory] = useState(null); const [filterValue, setFilterValue] = useState('Сп'); const filtered = useMemo( () => options.filter((o) => o.label.includes(filterValue)), [options, filterValue] ); function handleFilter(v: string) { setFilterValue(v); } return ( RtFormFieldSelect
{JSON.stringify(category)} setCategory(v)} onFilter={handleFilter} dropdownRender={(menu) => (
{menu} setCategory({ label: 'новая одежда', value: 'new clothes', }) } > выбрать новую одежду
)} /> {JSON.stringify(categories)} setCategories(v)} selectedOptionsRenderFn={( option, { wrapOption, originPlainTextNode } ) => ( {wrapOption(option, <>! {originPlainTextNode})} )} />
console.log('submit')}> setCategories(v)} selectedOptionsRenderFn={( option, { wrapOption, originPlainTextNode } ) => ( {wrapOption(option, <>! {originPlainTextNode})} )} />
); }