playball
Version:
Watch MLB games from the comfort of your terminal
42 lines • 1.41 kB
JavaScript
import React, { useState } from 'react';
import { useDispatch } from "react-redux/lib/alternate-renderers.js";
import GameList from "./GameList.js";
import HelpBar from "./HelpBar.js";
import { setSelectedId } from "../features/games.js";
import Game from "./Game.js";
import useKey from "../hooks/useKey.js";
import Standings from "./Standings.js";
const SCHEDULE = 'schedule';
const STANDINGS = 'standings';
const GAME = 'game';
function App() {
const [view, setView] = useState(SCHEDULE);
const dispatch = useDispatch();
useKey('c', () => {
setView(SCHEDULE);
dispatch(setSelectedId(null));
}, {
key: 'C',
label: 'Schedule'
});
useKey('s', () => setView(STANDINGS), {
key: 'S',
label: 'Standings'
});
const handleGameSelect = game => {
dispatch(setSelectedId(game.gamePk));
setView(GAME);
};
return /*#__PURE__*/React.createElement("element", null, /*#__PURE__*/React.createElement("element", {
top: 0,
left: 0,
height: "100%-1"
}, view === STANDINGS && /*#__PURE__*/React.createElement(Standings, null), view === SCHEDULE && /*#__PURE__*/React.createElement(GameList, {
onGameSelect: handleGameSelect
}), view === GAME && /*#__PURE__*/React.createElement(Game, null)), /*#__PURE__*/React.createElement("element", {
top: "100%-1",
left: 0,
height: 1
}, /*#__PURE__*/React.createElement(HelpBar, null)));
}
export default App;