"use client"; import { FC, useState } from "react"; // import Link from "next/link"; import { Grid, Button, Dialog, DialogActions, DialogContent, TextField, } from "@mui/material"; import { useTranslate } from "react-polyglot"; import { useAppContext } from "@/app/_components/AppProvider"; import { VisualizationDetail } from "./VisualizationDetail"; interface VisualizationDetailDialogProps { id: string; title: string; description: string; url: string; closeDialog: any; editing: boolean; } export const VisualizationDetailDialog: FC = ({ id, title, description, url, closeDialog, editing, }) => { const t = useTranslate(); const [editedTitle, setEditedTitle] = useState(title); const [editedDescription, setEditedDescription] = useState(description); const { colors: { leafcutterElectricBlue, leafcutterLightBlue, white, almostBlack }, query, } = useAppContext(); const deleteAndClose = async () => { await fetch(`/api/visualizations/delete`, { method: "POST", headers: { Accept: "application/json", "Content-Type": "application/json", }, body: JSON.stringify({ id }), }); closeDialog(); }; const saveAndClose = async () => { const updateParams = { id, title: editedTitle, description: editedDescription, query, }; await fetch(`/api/visualizations/update`, { method: "POST", headers: { Accept: "application/json", "Content-Type": "application/json", }, body: JSON.stringify(updateParams), }); closeDialog(); }; const buttonStyles = { fontSize: 14, borderRadius: 500, color: white, backgroundColor: leafcutterElectricBlue, fontWeight: "bold", textTransform: "uppercase", pl: 3, pr: 3, ":hover": { backgroundColor: leafcutterLightBlue, color: almostBlack, opacity: 0.8, }, }; return ( {editing && ( setEditedTitle(e.target.value)} label={t("title")} size="small" fullWidth /> setEditedDescription(e.target.value)} label={t("description")} size="small" fullWidth /> )} {!editing && ( )} {!editing && ( )} {editing && ( )} {editing && ( )} ); };