mirror of
https://github.com/He4eT/elseifplayer.git
synced 2026-05-05 01:17:22 +00:00
51 lines
1 KiB
JavaScript
51 lines
1 KiB
JavaScript
import {
|
|
compressToUTF16 as encode,
|
|
decompressFromUTF16 as decode,
|
|
} from 'lz-string'
|
|
|
|
export const Handlers = ({
|
|
setStatus,
|
|
setWindows,
|
|
setCurrentWindowId,
|
|
setInputType,
|
|
setInbox,
|
|
}) => ({
|
|
onInit: () => {
|
|
setStatus({ stage: 'ready' })
|
|
},
|
|
/* */
|
|
onUpdateWindows: (windows) => {
|
|
setWindows(windows)
|
|
},
|
|
onUpdateInputs: (data) => {
|
|
if (data.length === 0) return null
|
|
|
|
const { type, id } = data[0]
|
|
setCurrentWindowId(id)
|
|
setInputType(type)
|
|
},
|
|
onUpdateContent: (inbox) => {
|
|
setInbox(inbox)
|
|
},
|
|
onDisable: () => {
|
|
setInputType(null)
|
|
},
|
|
/* */
|
|
onFileNameRequest: (tosave, usage, _, setFileName) => {
|
|
setFileName({
|
|
usage,
|
|
filename: prompt('Enter the filename'),
|
|
})
|
|
},
|
|
onFileRead: ({ filename }) => {
|
|
const content = localStorage.getItem(`fake-fs/${filename}`)
|
|
return decode(content)
|
|
},
|
|
onFileWrite: ({ filename }, content) => {
|
|
localStorage.setItem(`fake-fs/${filename}`, encode(content))
|
|
},
|
|
/* */
|
|
onExit: () => {
|
|
setInputType(null)
|
|
},
|
|
})
|