diff --git a/my-app/src/App.tsx b/my-app/src/App.tsx index dce31bd..d4b9e1b 100644 --- a/my-app/src/App.tsx +++ b/my-app/src/App.tsx @@ -1,8 +1,9 @@ import { useEffect, useState } from 'react'; import './App.css'; import { Player } from './Types/Player'; -import { createInitialPlayers } from './Data/getInitialPlayers'; import Play from './Components/Views/Play'; +import StartMenu from './Components/Views/StartMenu'; +import { InitialSettings } from './Data/getInitialPlayers'; import { GridTemplateAreas } from './Data/getGridTemplateAreas'; export const initialPlayerOptions = { @@ -15,13 +16,12 @@ export const initialPlayerOptions = { const App = () => { const savedPlayers = localStorage.getItem('players'); - const [players, setPlayers] = useState( - savedPlayers - ? JSON.parse(savedPlayers) - : createInitialPlayers(initialPlayerOptions) - ); + const [initialPlayerOptions, setInitialPlayerOptions] = + useState(null); - const [gridAreas, setGridAreas] = useState(initialPlayerOptions.gridAreas); + const [players, setPlayers] = useState( + savedPlayers ? JSON.parse(savedPlayers) : [] + ); useEffect(() => { localStorage.setItem('players', JSON.stringify(players)); @@ -34,21 +34,20 @@ const App = () => { setPlayers(updatedPlayers); }; - if (players) { + if (players && initialPlayerOptions) { return ( ); } return ( - ); }; diff --git a/my-app/src/Components/Views/StartMenu.tsx b/my-app/src/Components/Views/StartMenu.tsx index e363f0e..af494b3 100644 --- a/my-app/src/Components/Views/StartMenu.tsx +++ b/my-app/src/Components/Views/StartMenu.tsx @@ -1,4 +1,7 @@ +import { useState } from 'react'; import styled from 'styled-components'; +import { GridTemplateAreas } from '../../Data/getGridTemplateAreas'; +import { InitialSettings } from '../../Data/getInitialPlayers'; import { Player } from '../../Types/Player'; const MainWrapper = styled.div` @@ -8,12 +11,26 @@ const MainWrapper = styled.div` `; type StartProps = { - players: Player[]; + setInitialPlayerOptions: (options: InitialSettings) => void; setPlayers: (updatedPlayer: Player[]) => void; }; -const Start = ({ players, setPlayers }: StartProps) => { - return ; +const Start = ({ setInitialPlayerOptions, setPlayers }: StartProps) => { + const [playerOptions, setPlayerOptions] = useState({ + numberOfPlayers: 4, + startingLifeTotal: 40, + useCommanderDamage: true, + gridAreas: GridTemplateAreas.FourPlayers, + }); + const handleFourPlayersSet = () => { + setInitialPlayerOptions(playerOptions); + }; + + return ( + + + + ); }; export default Start; diff --git a/my-app/src/Data/getInitialPlayers.ts b/my-app/src/Data/getInitialPlayers.ts index 9357d85..d263ea8 100644 --- a/my-app/src/Data/getInitialPlayers.ts +++ b/my-app/src/Data/getInitialPlayers.ts @@ -1,7 +1,7 @@ import { Player, Rotation } from '../Types/Player'; import { GridTemplateAreas } from './getGridTemplateAreas'; -type InitialSettings = { +export type InitialSettings = { startingLifeTotal: number; useCommanderDamage: boolean; numberOfPlayers: number;