import { ComponentType, CSSProperties, FC } from 'react'; import { TableColumnMenuFilter, TableColumnMenuProps, TableFilterCellProps, } from '@servicetitan/design-system'; import { TableColumnMenuFilterUIProps } from '..'; import { DropDownList } from '@progress/kendo-react-dropdowns'; export const StandardColumnMenuFilter = (props: TableColumnMenuProps) => ( ); export interface CustomColumnMenuFilterSingleOpts { contentMaxHeight?: string; contentClassName?: string; } export interface CustomColumnMenuFilterDoubleOpts { double?: boolean; doubleContentClassName?: string; } export type CustomColumnMenuFilterOpts = CustomColumnMenuFilterSingleOpts & CustomColumnMenuFilterDoubleOpts; export function renderCustomColumnMenuFilter( FilterCell: ComponentType, doubleOrOptions?: boolean | CustomColumnMenuFilterOpts ) { const opts: CustomColumnMenuFilterOpts = typeof doubleOrOptions === 'boolean' ? { double: doubleOrOptions } : (doubleOrOptions ?? {}); const FilterUI: FC = ({ firstFilterProps, secondFilterProps, logicData, logicValue, onLogicChange, }) => { const contentStyles: CSSProperties = {}; if (opts.contentMaxHeight) { contentStyles.maxHeight = opts.contentMaxHeight; contentStyles.overflowY = 'auto'; } return (
{!!opts.double && (
)}
); }; return (props: TableColumnMenuProps) => ( ); }