From 0c5a763414908b0c8bcb92654e805b512dd2f59b Mon Sep 17 00:00:00 2001 From: He4eT Date: Mon, 19 Jul 2021 23:40:24 +0500 Subject: [PATCH] Player: extract handlers --- src/components/Player/Player.jsx | 49 +------------------------ src/components/Player/playerHandlers.js | 46 +++++++++++++++++++++++ 2 files changed, 48 insertions(+), 47 deletions(-) create mode 100644 src/components/Player/playerHandlers.js diff --git a/src/components/Player/Player.jsx b/src/components/Player/Player.jsx index 790b369..11796cc 100644 --- a/src/components/Player/Player.jsx +++ b/src/components/Player/Player.jsx @@ -13,6 +13,8 @@ import GridBuffer from './GridBuffer' import InputBox from './InputBox' import Status from './Status' +import {Handlers} from './playerHandlers' + import './player.css' const INITIAL_STATUS = { @@ -30,53 +32,6 @@ const runMachine = ({ engine: Engine, file, handlers }) => { return { sendFn, instance: vm } } -const Handlers = ({ - setStatus, - setWindows, - setCurrentWindowId, - setInputType, - setInbox -}) => ({ - onInit: _ => { - setStatus({ stage: 'ready' }) - }, - /* */ - onUpdateWindows: windows => { - setWindows(windows) - }, - onUpdateInputs: data => { - if (data.length === 0) return void 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) - } -}) - export default function ({ vmParts: { file, engine }, singleWindow }) { diff --git a/src/components/Player/playerHandlers.js b/src/components/Player/playerHandlers.js new file mode 100644 index 0000000..d463ca9 --- /dev/null +++ b/src/components/Player/playerHandlers.js @@ -0,0 +1,46 @@ +export const Handlers = ({ + setStatus, + setWindows, + setCurrentWindowId, + setInputType, + setInbox +}) => ({ + onInit: _ => { + setStatus({ stage: 'ready' }) + }, + /* */ + onUpdateWindows: windows => { + setWindows(windows) + }, + onUpdateInputs: data => { + if (data.length === 0) return void 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) + } +})