/* eslint-disable @typescript-eslint/no-explicit-any */ import { useEffect, useState } from "react"; import _ from "lodash"; import FactoryRenderer from "../../../../Renderer"; interface GroupByPopUpProps { selectedGroups: { label: string; value: string }[]; groupableFields: { label: string; value: string }[]; onPopupToggle: () => void; onGroupApply: (groupField: { label: string; value: string }[]) => void; } const GroupByPopUp = (props: GroupByPopUpProps) => { const [groupFields, setGroupFields] = useState(props.selectedGroups); useEffect(() => { setGroupFields(props.selectedGroups); }, []); const isDirty = !_.isEqual(groupFields, props.selectedGroups); const onGroupChange = ( _callBack: any, _fieldName: any, value: any, ) => { const grouped = _.groupBy(value, "value"); const duplicateValues = Object.values(grouped) .filter((group) => group.length > 1) .flat(); const groups = value.filter( (f: any) => !duplicateValues.some((d: any) => d.value === f.value), ); setGroupFields(groups); }; return (
This option would allow you to select from existing set of pre-built groups