import { ReactNode } from "react"; import { View } from "react-native"; import { SearchBar } from "@/components/ui/SearchBar"; import { ItemsPerPageMenu } from "@/components/shared/ItemsPerPageMenu"; import { SizeEnum } from "@/constants/sizeEnum"; interface DesktopTableControlsProps { searchQuery: string; menuVisible: boolean; menuAnchor: { x: number; y: number }; searchPlaceholder?: string; onSearch: (query: string) => void; onMenuDismiss: () => void; onItemsPerPageChange: (value: number) => void; itemsPerPage?: number; renderFilterComponent?: () => ReactNode; renderFilterChips?: () => ReactNode; renderActionButtons?: () => ReactNode; itemsPerPageMenuOptions?: number[]; } export const DesktopTableControls = ({ searchQuery, menuVisible, menuAnchor, searchPlaceholder = "Search", onSearch, onMenuDismiss, onItemsPerPageChange, itemsPerPage = 25, renderFilterComponent, renderFilterChips, renderActionButtons, itemsPerPageMenuOptions, }: DesktopTableControlsProps) => { return ( <> {renderFilterComponent && ( {renderFilterComponent()} )} {renderActionButtons && {renderActionButtons()}} {renderFilterChips && {renderFilterChips()}} ); };