import React, { useState } from "react"; import { Button, Flex, Label, useThemeUI } from "theme-ui"; import SimpleBar from "simplebar-react"; import Modal from "../components/Modal"; import TokenSettings from "../components/token/TokenSettings"; import TokenPreview from "../components/token/TokenPreview"; import { isEmpty } from "../helpers/shared"; import useResponsiveLayout from "../hooks/useResponsiveLayout"; function EditTokenModal({ isOpen, onDone, token, onUpdateToken }) { const { theme } = useThemeUI(); function handleClose() { setTokenSettingChanges({}); onDone(); } async function handleSave() { await applyTokenChanges(); onDone(); } const [tokenSettingChanges, setTokenSettingChanges] = useState({}); function handleTokenSettingsChange(key, value) { setTokenSettingChanges((prevChanges) => ({ ...prevChanges, [key]: value })); } async function applyTokenChanges() { if (token && !isEmpty(tokenSettingChanges)) { // Ensure size value is positive let verifiedChanges = { ...tokenSettingChanges }; if ("defaultSize" in verifiedChanges) { verifiedChanges.defaultSize = verifiedChanges.defaultSize || 1; } await onUpdateToken(token.id, verifiedChanges); setTokenSettingChanges({}); } } const selectedTokenWithChanges = { ...token, ...tokenSettingChanges, }; const layout = useResponsiveLayout(); if (!token) { return null; } return ( ); } export default EditTokenModal;