From 2fdc39c1f0243f3370a25996a89af7a2349bb34f Mon Sep 17 00:00:00 2001 From: He4eT Date: Sun, 28 May 2023 13:26:22 +0300 Subject: [PATCH] Player: explicitly override Engine arguments --- src/components/Player/Player.jsx | 12 ++++++++---- src/components/Player/UrlPlayer.jsx | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/components/Player/Player.jsx b/src/components/Player/Player.jsx index c6a8564..602923c 100644 --- a/src/components/Player/Player.jsx +++ b/src/components/Player/Player.jsx @@ -20,17 +20,18 @@ const INITIAL_STATUS = { const runMachine = ({ engine: Engine, wasmBinary, storyfile, handlers }) => { const { Dialog, GlkOte, send } = CheapGlkOte(handlers) - const vm = new Engine() + const instance = new Engine() - vm.init(storyfile, { + instance.init(storyfile, { Dialog, GlkOte, Glk: {}, wasmBinary, + arguments: ['storyfile'], }) - vm.start() + instance.start() - return { send, instance: vm } + return { send, instance } } export default function Player ({ @@ -68,6 +69,7 @@ export default function Player ({ window.addEventListener('unhandledrejection', rejectionHandler) return () => { + setVm(null) window.removeEventListener('unhandledrejection', rejectionHandler) } }, [storyfile, engine, wasmBinary]) @@ -76,6 +78,8 @@ export default function Player ({ setSendMessage(() => vm ? vm.send : null) + + return () => setSendMessage(null) }, [vm]) const textWindow = (inbox) => (currentWindow) => { diff --git a/src/components/Player/UrlPlayer.jsx b/src/components/Player/UrlPlayer.jsx index f77d4bf..71c0808 100644 --- a/src/components/Player/UrlPlayer.jsx +++ b/src/components/Player/UrlPlayer.jsx @@ -66,6 +66,8 @@ export default function UrlPlayer ({ url, singleWindow }) { setParts(null) prepareVM({ url, setStatus, setParts }) + + return () => setParts(null) }, [url]) return vmParts