import {Anchor, Button, Checkbox, Group, Modal, Pill, Stack, Textarea, TextInput} from "@mantine/core"; import {usePouch} from "use-pouchdb"; import {useState} from "react"; import {v4} from "uuid"; import log from "loglevel"; import {useFeatureState} from "../hooks/useFeatures"; import ComingSoonBadge from "../components/ComingSoonBadge"; import UpgradeBadge from "../components/UpgradeBadge"; import {useAuth0} from "@auth0/auth0-react"; export default function CreateDiagramModal({createOpened, closeCreate}) { const logger = log.getLogger('createDiagramModal'); const db = usePouch(); const { loginWithRedirect } = useAuth0(); // Feature flags const privateDesignsState = useFeatureState('privateDesigns'); const encryptedDesignsState = useFeatureState('encryptedDesigns'); const shareCollaborateState = useFeatureState('shareCollaborate'); const privateDesignsEnabled = privateDesignsState === 'on'; const encryptedDesignsEnabled = encryptedDesignsState === 'on'; const shareCollaborateEnabled = shareCollaborateState === 'on'; const handleSignUp = () => { loginWithRedirect({ appState: { returnTo: window.location.pathname } }); }; const [diagram, setDiagram] = useState({ name: '', description: '', private: false, encrypted: false, invite: false }); const createDiagram = async () => { let doc = null; try { doc = await db.get('directory') } catch (err) { logger.warn('cannot find directory', err); } const id = 'diagram-' + v4(); const newDiagram = {...diagram, _id: id, type: 'diagram'}; if (!doc) { await db.put({_id: 'directory', diagrams: [newDiagram], type: 'directory'}); } else { if (doc.diagrams) { doc.diagrams.push(newDiagram); } else { doc.diagrams = [newDiagram]; } logger.debug('new directory', doc); await db.put(doc); } closeCreate(); } return ( { setDiagram({...diagram, name: e.currentTarget.value}) }} required/>