import { deleteResource, isResourceFilter, moveResource } from "@formbricks/lib/segment/utils"; import { TAttributeClass } from "@formbricks/types/attributeClasses"; import { TBaseFilters, TSegment } from "@formbricks/types/segment"; import BasicSegmentFilter from "./BasicSegmentFilter"; type TBasicSegmentEditorProps = { group: TBaseFilters; environmentId: string; segment: TSegment; attributeClasses: TAttributeClass[]; setSegment: React.Dispatch>; viewOnly?: boolean; }; const BasicSegmentEditor = ({ group, environmentId, setSegment, segment, attributeClasses, viewOnly, }: TBasicSegmentEditorProps) => { const handleMoveResource = (resourceId: string, direction: "up" | "down") => { const localSegmentCopy = structuredClone(segment); if (localSegmentCopy.filters) { moveResource(localSegmentCopy.filters, resourceId, direction); } setSegment(localSegmentCopy); }; const handleDeleteResource = (resourceId: string) => { const localSegmentCopy = structuredClone(segment); if (localSegmentCopy.filters) { deleteResource(localSegmentCopy.filters, resourceId); } setSegment(localSegmentCopy); }; return (
{group?.map((groupItem) => { const { connector, resource, id: groupId } = groupItem; if (isResourceFilter(resource)) { return ( handleDeleteResource(filterId)} onMoveFilter={(filterId: string, direction: "up" | "down") => handleMoveResource(filterId, direction) } viewOnly={viewOnly} /> ); } else { return null; } })}
); }; export default BasicSegmentEditor;