import { useState } from 'react'; import { Button, CircularProgress, Dialog, DialogActions, DialogContent, DialogTitle, FormControl, InputLabel, MenuItem, Select, SelectChangeEvent, Stack, TextField, Typography} from '@mui/material'; import { WikiSpace } from '@hyper-hyper-space/wiki-collab'; import { useNavigate, useOutletContext } from 'react-router'; import { WikiContext } from './WikiSpaceView'; function NewPage(props: {noNavigation: boolean, contentWidth: string}) { const {wiki, nav, spaceContext} = useOutletContext(); const [name, setName] = useState(''); const [nameError, setNameError] = useState(false); const handleNameChange = (event: React.ChangeEvent) => { setName(event.target.value); }; const handleNameKeyPress = (e: React.KeyboardEvent) => { if (e.key === 'Enter') { e.preventDefault(); goToPage(); } else { setNameError(false); } }; const goToPage = () => { let err = false; if (name.trim() === '') { setNameError(true); err = true; } const author = spaceContext.home?.getAuthor(); if (author === undefined) { // TODO: make an actual window with a link to set up an identity? alert('This page does not exist, you need to set up an account to be able to create it'); } if (!err && author !== undefined) { if (wiki.getPage(name) === undefined) { const p = wiki.createPage(name); wiki.addPage(p, author); } nav.goToPage(name); } }; const navigate = useNavigate(); return ( {props.noNavigation && } ); } export default NewPage;