import { Button, Menu, MenuButton, Text, MenuItemOption, MenuList, MenuOptionGroup, Badge, HStack } from "@chakra-ui/react"; import React, { useMemo } from "react"; import { ColumnInstance } from "react-table"; import { GroupIcon } from "./icons/GroupIcon"; export interface IGroupByProps { allColumns: ColumnInstance[]; toggleGroupBy: (columnId: string, value?: boolean) => void; groupBy: string[]; } export const GroupBy = ({ allColumns, toggleGroupBy, groupBy }: IGroupByProps) => { const columns = useMemo(() => { return allColumns; }, []); return ( } colorScheme="blue"> Group By {!!groupBy?.length && ( {groupBy?.length} )} { columns ?.filter((c) => c.canGroupBy) .map((col) => { if (value.includes(col.id)) { !groupBy.includes(col.id) && toggleGroupBy(col.id, true); } else { toggleGroupBy(col.id, false); } }); }} > {columns ?.filter((c) => c.canGroupBy) .map((col) => ( {col.Header} ))} ); };