'use client'; import clsx from 'clsx'; import { motion } from 'framer-motion'; 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 { animateSideView } from '@/styling/animations'; 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; } function ViewConstituents({ expression, schema, activeCst, isBottom, onOpenEdit }: 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;