'use client'; import { useEffect, useMemo, useState } from 'react'; import DataTable, { createColumnHelper, IConditionalStyle } from '@/components/ui/DataTable'; import SearchBar from '@/components/ui/SearchBar'; import { useConceptOptions } from '@/context/ConceptOptionsContext'; import { CstMatchMode } from '@/models/miscellaneous'; import { IConstituenta } from '@/models/rsform'; import { matchConstituenta } from '@/models/rsformAPI'; import { prefixes } from '@/utils/constants'; import { describeConstituenta } from '@/utils/labels'; import BadgeConstituenta from '../info/BadgeConstituenta'; import NoData from '../ui/NoData'; interface PickConstituentaProps { id?: string; prefixID: string; data?: IConstituenta[]; rows?: number; initialFilter?: string; onBeginFilter?: (cst: IConstituenta) => boolean; describeFunc?: (cst: IConstituenta) => string; matchFunc?: (cst: IConstituenta, filter: string) => boolean; value?: IConstituenta; onSelectValue: (newValue: IConstituenta) => void; } const columnHelper = createColumnHelper(); function PickConstituenta({ id, data, value, initialFilter = '', rows = 4, prefixID = prefixes.cst_list, describeFunc = describeConstituenta, matchFunc = (cst, filter) => matchConstituenta(cst, filter, CstMatchMode.ALL), onBeginFilter, onSelectValue }: PickConstituentaProps) { const { colors } = useConceptOptions(); const [filteredData, setFilteredData] = useState([]); const [filterText, setFilterText] = useState(initialFilter); useEffect(() => { if (!data) { setFilteredData([]); } else { const newData = onBeginFilter ? data.filter(onBeginFilter) : data; if (filterText) { setFilteredData(newData.filter(cst => matchFunc(cst, filterText))); } else { setFilteredData(newData); } } }, [data, filterText, matchFunc, onBeginFilter]); const columns = useMemo( () => [ columnHelper.accessor('alias', { id: 'alias', size: 65, minSize: 65, maxSize: 65, cell: props => }), columnHelper.accessor(cst => describeFunc(cst), { id: 'description', size: 1000, minSize: 1000 }) ], [colors, prefixID, describeFunc] ); const conditionalRowStyles = useMemo( (): IConditionalStyle[] => [ { when: (cst: IConstituenta) => cst.id === value?.id, style: { backgroundColor: colors.bgSelected } } ], [value, colors] ); return (
setFilterText(newValue)} />

Список конституент пуст

Измените параметры фильтра

} onRowClicked={onSelectValue} />
); } export default PickConstituenta;