"use client"; import { FC, useState } from "react"; import { Card, Grid } from "@mui/material"; import { PrivacyTip as PrivacyTipIcon, PhoneIphone as PhoneIphoneIcon, Map as MapIcon, Group as GroupIcon, DateRange as DateRangeIcon, Public as PublicIcon, } from "@mui/icons-material"; import { VisualizationDetailDialog } from "./VisualizationDetailDialog"; import { useLeafcutterContext } from "./LeafcutterProvider"; interface MetricSelectCardProps { visualizationID: string; metricType: string; title: string; description: string; enabled: boolean; } export const MetricSelectCard: FC = ({ visualizationID, metricType, title, description, enabled, }) => { const [open, setOpen] = useState(false); const closeDialog = () => setOpen(false); const [dialogParams, setDialogParams] = useState({}); const { typography: { small }, colors: { white, leafcutterElectricBlue, cdrLinkOrange }, query, } = useLeafcutterContext(); /* const images = { actor: PrivacyTipIcon, incidenttype: PrivacyTipIcon, channel: PrivacyTipIcon, date: DateRangeIcon, targetedgroup: GroupIcon, impactedtechnology: PhoneIphoneIcon, location: MapIcon, }; */ const createAndOpen = async () => { const createParams = { visualizationID, title, description, query, }; const result: any = await fetch(`/api/visualizations/create`, { method: "POST", headers: { Accept: "application/json", "Content-Type": "application/json", }, body: JSON.stringify(createParams), }); const { id } = await result.json(); const params = { id, title: createParams.title, description: createParams.description, url: `/app/visualize?security_tenant=private#/edit/${id}?embed=true`, }; setDialogParams(params); setOpen(true); }; return ( <> {title} {metricType === "impactedtechnology" && ( )} {metricType === "region" && ( )} {metricType === "continent" && ( )} {metricType === "country" && ( )} {metricType === "targetedgroup" && ( )} {metricType === "incidenttype" && ( )} {metricType === "date" && ( )} {open ? ( ) : null} ); };