This commit is contained in:
He4eT 2021-03-03 02:40:43 +05:00
commit 675a84c14b
13 changed files with 34 additions and 54 deletions

View file

@ -11,5 +11,6 @@ export default function ({ theme, setLocation, buildLink }) {
return ( return (
<input <input
type='file' type='file'
onChange={fileInputHandler} />) onChange={fileInputHandler} />
)
} }

View file

@ -17,5 +17,6 @@ export default function ({ theme, setLocation, buildLink }) {
<input <input
type='text' type='text'
placeholder='https://...' placeholder='https://...'
onKeyPress={onKeyPress} />) onKeyPress={onKeyPress} />
)
} }

View file

@ -14,7 +14,8 @@ const keyCodes = {
KEY_LEFT: 37, KEY_LEFT: 37,
KEY_UP: 38, KEY_UP: 38,
KEY_RIGHT: 39, KEY_RIGHT: 39,
KEY_DOWN: 40} KEY_DOWN: 40
}
const keyNames = { const keyNames = {
[keyCodes.KEY_BACKSPACE]: 'delete', [keyCodes.KEY_BACKSPACE]: 'delete',
@ -28,7 +29,8 @@ const keyNames = {
[keyCodes.KEY_LEFT]: 'left', [keyCodes.KEY_LEFT]: 'left',
[keyCodes.KEY_UP]: 'up', [keyCodes.KEY_UP]: 'up',
[keyCodes.KEY_RIGHT]: 'right', [keyCodes.KEY_RIGHT]: 'right',
[keyCodes.KEY_DOWN]: 'down'} [keyCodes.KEY_DOWN]: 'down'
}
/* eslint-enable */ /* eslint-enable */
export default function ({ currentWindow, inputType, sendMessage }) { export default function ({ currentWindow, inputType, sendMessage }) {
@ -62,18 +64,15 @@ export default function ({ currentWindow, inputType, sendMessage }) {
const inputHandlers = { const inputHandlers = {
char: { char: {
placeholder: 'Press any key',
onKeyDown: charHandler onKeyDown: charHandler
}, },
line: { line: {
placeholder: ' > ',
onKeyPress: lineHandler onKeyPress: lineHandler
} }
} }
const placeholder = {
char: 'Press any key',
line: ' > '
}
const enterFullscreen = _ => const enterFullscreen = _ =>
document.documentElement.requestFullscreen() document.documentElement.requestFullscreen()
@ -82,7 +81,6 @@ export default function ({ currentWindow, inputType, sendMessage }) {
className='inputBox' className='inputBox'
ref={inputEl} ref={inputEl}
value={inputText} value={inputText}
placeholder={placeholder[inputType]}
autofocus autofocus
autocomplete='off' autocomplete='off'
onDblClick={enterFullscreen} onDblClick={enterFullscreen}

View file

@ -19,8 +19,6 @@ const INITIAL_STATUS = {
} }
const runMachine = ({ Engine, file, handlers }) => { const runMachine = ({ Engine, file, handlers }) => {
console.log('runMachine')
const vm = new Engine() const vm = new Engine()
const { glkInterface, sendFn } = CheapGlkOte(handlers) const { glkInterface, sendFn } = CheapGlkOte(handlers)
@ -117,5 +115,6 @@ export default function ({ vmParts: { file, engine } }) {
inputType, inputType,
sendMessage sendMessage
}} /> }} />
</section>) </section>
)
} }

View file

@ -1,15 +1,20 @@
import { h } from 'preact' import { h } from 'preact'
import { Link } from 'wouter-preact'
const fail = details => ( const fail = details => (
<div class='status fail'> <div class='status fail'>
<h1>Error</h1> <h1>
Error
</h1>
{details.map(x => (<p>{x}</p>))} {details.map(x => (<p>{x}</p>))}
<hr /> <hr />
<a href='/'> <Link href='/'>
Home Home
</a> </Link>
| |
<a href='https://github.com/He4eT/ifplayer/issues'> <a
target='_blank'
href='https://github.com/He4eT/ifplayer/issues'>
Report bug Report bug
</a> </a>
</div> </div>

View file

@ -1,21 +0,0 @@
// import CheapGlkOte from 'cheap-glkote'
// import engine from 'emglken/src/tads.js'
// import { engineByFilename } from './engines'
// export const fetchGameFile = url => fetch(url)
// .then(response => (console.log(response), response))
// .then(response => response.blob())
// .then(blob => new Response(blob).arrayBuffer())
// .then(buffer => new Uint8Array(buffer))
// .then(file => {
// const { glkInterface, sendFn } = CheapGlkOte({
// onUpdateContent: messages => console.log(messages)
// })
// window.send = sendFn
// const vm = new engine()
// vm.prepare(file, glkInterface)
// vm.start()
// })
// .catch(console.log)

View file

@ -65,4 +65,3 @@
66% { content: '..'; } 66% { content: '..'; }
100% { content: '...'; } 100% { content: '...'; }
} }

View file

@ -12,5 +12,6 @@ export default function ({ themeEngine }) {
onChange={({ target }) => onChange={({ target }) =>
themeEngine.setTheme(target.value)}> themeEngine.setTheme(target.value)}>
{options} {options}
</select>) </select>
)
} }

View file

@ -35,7 +35,7 @@ function App () {
</Route> </Route>
<Route path='/play/:theme/:encodedUrl'> <Route path='/play/:theme/:encodedUrl'>
{params => <PlayerView {...{ {params => <PlayerView {...{
setTheme: themeEngine.setTheme, ...themeEngine,
...params ...params
}} />} }} />}
</Route> </Route>

View file

@ -2,11 +2,6 @@
padding: var(--inner-padding); padding: var(--inner-padding);
} }
.view.home summary {
display: inline;
cursor: pointer;
}
.view.home input, .view.home input,
.view.home select { .view.home select {
box-sizing: border-box; box-sizing: border-box;

View file

@ -1,4 +1,4 @@
import { useState, useCallback } from 'preact/hooks' import { useState } from 'preact/hooks'
import '~/src/style/themes.css' import '~/src/style/themes.css'
@ -12,8 +12,7 @@ const themes = [
'solarized-light', 'solarized-light',
'solarized-light-borders', 'solarized-light-borders',
'solarized-dark', 'solarized-dark',
'solarized-dark-borders', 'solarized-dark-borders'
'_raw'
] ]
const DEFAULT_THEME = themes[0] const DEFAULT_THEME = themes[0]
@ -27,9 +26,9 @@ export const useThemeEngine = (initialTheme = DEFAULT_THEME) => {
const [currentTheme, setCurrentTheme] = const [currentTheme, setCurrentTheme] =
useState(initialTheme) useState(initialTheme)
const setTheme = useCallback(theme => { const setTheme = theme => {
setCurrentTheme(assertTheme(theme)) setCurrentTheme(assertTheme(theme))
}, [currentTheme]) }
return { currentTheme, setTheme, themes } return { currentTheme, setTheme, themes }
} }

View file

@ -117,6 +117,5 @@ export default function ({ themeEngine }) {
</label> </label>
</p> </p>
</section> </section>
</main>) </main>)
} }

View file

@ -4,8 +4,12 @@ import { Link } from 'wouter-preact'
export default () => ( export default () => (
<main> <main>
<div class='status'> <div class='status'>
<h1>404</h1> <h1>
<p>Page not found</p> 404
</h1>
<p>
Page not found
</p>
<hr /> <hr />
<Link href='/'> <Link href='/'>
Home Home