import React, { useContext, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { MDBCard, MDBCardBody, MDBCardTitle, MDBCardText, MDBBtn, MDBInput, } from 'mdb-react-ui-kit'; import 'mdb-react-ui-kit/dist/css/mdb.min.css'; import "@fortawesome/fontawesome-free/css/all.min.css"; import AuthContext from "../context/AuthContext"; import MonacoEditor from 'react-monaco-editor'; const NewSnippet = () => { const { authTokens } = useContext(AuthContext); const navigate = useNavigate(); const [ snippetContent, setSnippetContent ] = useState(""); const [ snippetTitle, setSnippetTitle ] = useState(""); const saveSnippet = async () => { const response = await fetch(`http://${process.env.REACT_APP_DOMAIN}/api/snippets/`, { method: "POST", headers: { "Authorization": `Bearer ${authTokens.access}`, "Content-Type": "application/json" }, body: JSON.stringify({ "content": snippetContent, "title": snippetTitle }) }); const data = await response.json(); if (response.status === 201) { alert("Snippet created!") navigate(`/snippet/${data?.id}`) } else { alert(`Error updating snippet: ${data?.detail}`) } }; const options = { autoIndent: 'full', contextmenu: true, fontFamily: 'monospace', fontSize: 13, lineHeight: 24, hideCursorInOverviewRuler: true, matchBrackets: 'always', minimap: { enabled: true, }, scrollbar: { horizontalSliderSize: 4, verticalSliderSize: 18, }, selectOnLineNumbers: true, roundedSelection: false, readOnly: false, cursorStyle: 'line', automaticLayout: true, }; return ( <> setSnippetTitle(e.target.value)}/>
Create
); } export default NewSnippet;