import { useRef, useState } from "react"; import { DotsThreeOutline } from "@phosphor-icons/react"; import showToast from "@/utils/toast"; import { useModal } from "@/hooks/useModal"; import ModalWrapper from "@/components/ModalWrapper"; import Embed from "@/models/embed"; import paths from "@/utils/paths"; import { nFormatter } from "@/utils/numbers"; import EditEmbedModal from "./EditEmbedModal"; import CodeSnippetModal from "./CodeSnippetModal"; import moment from "moment"; export default function EmbedRow({ embed }) { const rowRef = useRef(null); const [enabled, setEnabled] = useState(Number(embed.enabled) === 1); const { isOpen: isSettingsOpen, openModal: openSettingsModal, closeModal: closeSettingsModal, } = useModal(); const { isOpen: isSnippetOpen, openModal: openSnippetModal, closeModal: closeSnippetModal, } = useModal(); const handleSuspend = async () => { if ( !window.confirm( `Are you sure you want to disabled this embed?\nOnce disabled the embed will no longer respond to any chat requests.` ) ) return false; const { success, error } = await Embed.updateEmbed(embed.id, { enabled: !enabled, }); if (!success) showToast(error, "error", { clear: true }); if (success) { showToast( `Embed ${enabled ? "has been disabled" : "is active"}.`, "success", { clear: true } ); setEnabled(!enabled); } }; const handleDelete = async () => { if ( !window.confirm( `Are you sure you want to delete this embed?\nOnce deleted this embed will no longer respond to chats or be active.\n\nThis action is irreversible.` ) ) return false; const { success, error } = await Embed.deleteEmbed(embed.id); if (!success) showToast(error, "error", { clear: true }); if (success) { rowRef?.current?.remove(); showToast("Embed deleted from system.", "success", { clear: true }); } }; return ( <>
all
; try { const domains = JSON.parse(domainList); return ({domain}
); })}all
; } }