what-is-word-cli
Version:
CLI game where your task is to unscramble words by given definition
29 lines • 1.16 kB
JavaScript
import React, { useState, createContext, useMemo } from 'react';
import { useInput } from 'ink';
import { useStore } from '@nanostores/react';
import { manager as appManager } from './store.js';
import { $status, actions as statusActions, manager as statusManager } from './store/status.js';
import { actions as settingsActions } from './store/settings.js';
import Game from './components/Game.js';
import Results from './components/Results.js';
export const SettingsContext = /*#__PURE__*/createContext({});
export default function App({
settings: userSettings
}) {
const [settings, setSettings] = useState(userSettings);
const settingsValue = useMemo(() => ({
settings,
setSettings
}), [settings]);
useStore($status);
useInput((input, _key) => {
if (statusManager.isFinished() && input === 'b') {
appManager.clearGameRounds();
settingsActions.clear();
statusActions.setRunning();
}
});
return /*#__PURE__*/React.createElement(SettingsContext.Provider, {
value: settingsValue
}, statusManager.isFinished() ? /*#__PURE__*/React.createElement(Results, null) : /*#__PURE__*/React.createElement(Game, null));
}