'use client'; import clsx from 'clsx'; import { useMemo, useState } from 'react'; import { useAccessMode } from '@/context/AccessModeContext'; import { useConceptOptions } from '@/context/ConceptOptionsContext'; import useWindowSize from '@/hooks/useWindowSize'; import { ConstituentaID, IConstituenta, IRSForm } from '@/models/rsform'; import { UserLevel } from '@/models/user'; import { PARAMETER } from '@/utils/constants'; import ConstituentsSearch from './ConstituentsSearch'; import TableSideConstituents from './TableSideConstituents'; // Window width cutoff for dense search bar const COLUMN_DENSE_SEARCH_THRESHOLD = 1100; interface ViewConstituentsProps { expression: string; isBottom?: boolean; activeCst?: IConstituenta; schema?: IRSForm; onOpenEdit: (cstID: ConstituentaID) => void; isMounted: boolean; } function ViewConstituents({ expression, schema, activeCst, isBottom, onOpenEdit, isMounted }: ViewConstituentsProps) { const { calculateHeight } = useConceptOptions(); const windowSize = useWindowSize(); const { accessLevel } = useAccessMode(); const [filteredData, setFilteredData] = useState(schema?.items ?? []); const table = useMemo( () => ( ), [isBottom, filteredData, activeCst, onOpenEdit, calculateHeight, accessLevel] ); return (
{table}
); } export default ViewConstituents;