Extract filename prompt

This commit is contained in:
He4eT 2021-03-23 19:00:58 +05:00
commit e09705cf23

View file

@ -18,7 +18,7 @@ const INITIAL_STATUS = {
details: ['Preparing'] details: ['Preparing']
} }
const runMachine = ({ Engine, file, handlers }) => { const runMachine = ({ engine: Engine, file, handlers }) => {
const vm = new Engine() const vm = new Engine()
const { glkInterface, sendFn } = CheapGlkOte(handlers) const { glkInterface, sendFn } = CheapGlkOte(handlers)
@ -48,22 +48,15 @@ const Handlers = ({
onFileNameRequest: (tosave, usage, _, setFileName) => { onFileNameRequest: (tosave, usage, _, setFileName) => {
setFileName({ setFileName({
usage, usage,
filename: tosave ? 'save' : 'load' filename: prompt('Enter the filename')
}) })
}, },
onFileRead: ({ filename }) => { onFileRead: ({ filename }) => {
if (filename === 'save') return null const content = localStorage.getItem(`fake-fs/${filename}`)
return decode(content)
const lsName = prompt('Enter the name of the saved file:')
const record = localStorage.getItem(`save-${lsName}`)
return decode(record)
}, },
onFileWrite: ({ filename }, content) => { onFileWrite: ({ filename }, content) => {
const lsName = prompt('Select a name for the saved file:') localStorage.setItem(`fake-fs/${filename}`, encode(content))
const record = encode(content)
localStorage.setItem(`save-${lsName}`, record)
}, },
/* */ /* */
onExit: _ => setInputType(null) onExit: _ => setInputType(null)
@ -80,17 +73,15 @@ export default function ({ vmParts: { file, engine } }) {
const [sendMessage, setSendMessage] = useState(null) const [sendMessage, setSendMessage] = useState(null)
useEffect(() => { useEffect(() => {
const handlers = Handlers({
setStatus,
setCurrentWindow,
setInputType,
setInbox
})
const vm = runMachine({ const vm = runMachine({
Engine: engine, engine,
file, file,
handlers handlers: Handlers({
setStatus,
setCurrentWindow,
setInputType,
setInbox
})
}) })
setVm(vm) setVm(vm)