to do: debugging for handling ui collapse states
This commit is contained in:
@@ -6,7 +6,7 @@ import { CardData } from "../../util/types"
|
|||||||
import Card from "../Card/Card"
|
import Card from "../Card/Card"
|
||||||
import "./CardRow.scss";
|
import "./CardRow.scss";
|
||||||
|
|
||||||
export default function CardRow({tier, state, setState}: CardRowProps) {
|
export default function CardRow({tier, state, setState, liftCollapsed}: CardRowProps) {
|
||||||
const [collapsed, setCollapsed] = useState(true);
|
const [collapsed, setCollapsed] = useState(true);
|
||||||
const typedTier = cardTierToKey(tier);
|
const typedTier = cardTierToKey(tier);
|
||||||
|
|
||||||
@@ -27,11 +27,7 @@ export default function CardRow({tier, state, setState}: CardRowProps) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
/**
|
liftCollapsed(collapsed, tier);
|
||||||
* run callback function to pass state of collapsed to parent component
|
|
||||||
* repeat this process in Nobles.tsx
|
|
||||||
**/
|
|
||||||
console.log(collapsed);
|
|
||||||
}, [collapsed])
|
}, [collapsed])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -56,18 +56,36 @@ export default function Gameboard({ state, setState }: StateProps) {
|
|||||||
* todo: incorporate "collapse all rows" to player ui
|
* todo: incorporate "collapse all rows" to player ui
|
||||||
* also incorporate "collapse player ui"?
|
* also incorporate "collapse player ui"?
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
setUICollapse((prev: UIState) => {
|
||||||
|
switch (tier) {
|
||||||
|
case 1:
|
||||||
|
return {
|
||||||
|
...prev,
|
||||||
|
tierOneCollapsed: collapsed
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
return {
|
||||||
|
...prev,
|
||||||
|
tierTwoCollapsed: collapsed
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
return {
|
||||||
|
...prev,
|
||||||
|
tierThreeCollapsed: collapsed
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return {
|
||||||
|
...prev,
|
||||||
|
noblesCollapsed: collapsed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
switch (tier) {
|
|
||||||
case 1:
|
}, [UICollapse])
|
||||||
setUICollapse((prev) => {
|
|
||||||
return prev;
|
useEffect(() => console.log(UICollapse), [UICollapse]);
|
||||||
})
|
|
||||||
break;
|
|
||||||
case 2: break;
|
|
||||||
case 3: break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
// util functions, setup on mount
|
// util functions, setup on mount
|
||||||
useEffect(() => initializeBoard(state, setState), [])
|
useEffect(() => initializeBoard(state, setState), [])
|
||||||
@@ -118,7 +136,7 @@ export default function Gameboard({ state, setState }: StateProps) {
|
|||||||
<CardRow tier={1} state={state} setState={setState} liftCollapsed={liftCollapsed} />
|
<CardRow tier={1} state={state} setState={setState} liftCollapsed={liftCollapsed} />
|
||||||
</section>
|
</section>
|
||||||
<section className="gameboard-right">
|
<section className="gameboard-right">
|
||||||
<AllPlayers state={state} setState={setState} liftSelection={liftSelection} />
|
<AllPlayers state={state} setState={setState} liftSelection={liftSelection} UICollapse={UICollapse} />
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ import { v4 } from "uuid";
|
|||||||
import { NobleData, ResourceCost } from "../../util/types";
|
import { NobleData, ResourceCost } from "../../util/types";
|
||||||
import { NobleProps } from "../../util/propTypes";
|
import { NobleProps } from "../../util/propTypes";
|
||||||
import "../Nobles/Nobles.scss"
|
import "../Nobles/Nobles.scss"
|
||||||
import { useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
|
|
||||||
export default function Nobles({ state }: NobleProps) {
|
export default function Nobles({ state, liftCollapsed }: NobleProps) {
|
||||||
const [collapsed, setCollapsed] = useState(true);
|
const [collapsed, setCollapsed] = useState(true);
|
||||||
|
|
||||||
if (!state.gameboard.nobles.length) {
|
if (!state.gameboard.nobles.length) {
|
||||||
@@ -16,6 +16,10 @@ export default function Nobles({ state }: NobleProps) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// useEffect(() => {
|
||||||
|
// liftCollapsed(collapsed, 5);
|
||||||
|
// }, [collapsed]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`nobles-panel ${collapsed && 'collapsed'}`}>
|
<div className={`nobles-panel ${collapsed && 'collapsed'}`}>
|
||||||
<div className="nobles-topbar">
|
<div className="nobles-topbar">
|
||||||
|
|||||||
@@ -10,6 +10,10 @@
|
|||||||
background-color: rgb(188, 176, 146);
|
background-color: rgb(188, 176, 146);
|
||||||
color: black;
|
color: black;
|
||||||
|
|
||||||
|
&.collapsed {
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
|
||||||
.player-ui {
|
.player-ui {
|
||||||
.subheader {
|
.subheader {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|||||||
@@ -1,18 +1,15 @@
|
|||||||
|
import { useEffect, useState } from "react";
|
||||||
import { v4 } from "uuid";
|
import { v4 } from "uuid";
|
||||||
import Player from "./Player";
|
import Player from "./Player";
|
||||||
import { PlayerData } from "../../util/types";
|
import { useCurrentPlayer } from "../../hooks/useCurrentPlayer";
|
||||||
import { ResourceProps } from "../../util/propTypes";
|
import { AllPlayersProps } from "../../util/propTypes";
|
||||||
import "./AllPlayers.scss"
|
|
||||||
import AvailableChips from "../Resources/AvailableChips";
|
import AvailableChips from "../Resources/AvailableChips";
|
||||||
import SelectionView from "../Resources/SelectionView";
|
import SelectionView from "../Resources/SelectionView";
|
||||||
import { useEffect, useState } from "react";
|
import "./AllPlayers.scss"
|
||||||
import { useCurrentPlayer } from "../../hooks/useCurrentPlayer";
|
|
||||||
|
|
||||||
export default function AllPlayers({ state, setState, liftSelection }: ResourceProps) {
|
export default function AllPlayers({ state, setState, liftSelection, UICollapse }: AllPlayersProps) {
|
||||||
const [playerView, setPlayerView] = useState<JSX.Element>();
|
const [playerView, setPlayerView] = useState<JSX.Element>();
|
||||||
|
|
||||||
const playerPool = state.players?.map((player: PlayerData) => <Player key={v4()} player={player} state={state} setState={setState} />);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const currentPlayer = useCurrentPlayer(state);
|
const currentPlayer = useCurrentPlayer(state);
|
||||||
if (!currentPlayer) return;
|
if (!currentPlayer) return;
|
||||||
@@ -20,7 +17,7 @@ export default function AllPlayers({ state, setState, liftSelection }: ResourceP
|
|||||||
}, [state]);
|
}, [state]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="all-players">
|
<div className={UICollapse.playerUICollapsed ? "all-players collapsed" : "all-players"}>
|
||||||
<SelectionView state={state} setState={setState} />
|
<SelectionView state={state} setState={setState} />
|
||||||
<AvailableChips state={state} setState={setState} liftSelection={liftSelection} />
|
<AvailableChips state={state} setState={setState} liftSelection={liftSelection} />
|
||||||
{ playerView }
|
{ playerView }
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { AppState, CardData, PlayerData, ResourceCost, SetActionType, setStateType } from "./types";
|
import { AppState, CardData, PlayerData, ResourceCost, setStateType, UIState } from "./types";
|
||||||
|
|
||||||
export interface StateProps {
|
export interface StateProps {
|
||||||
state: AppState,
|
state: AppState,
|
||||||
@@ -28,3 +28,6 @@ export interface ResourceProps extends StateProps {
|
|||||||
liftSelection: (value: keyof ResourceCost) => void
|
liftSelection: (value: keyof ResourceCost) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface AllPlayersProps extends ResourceProps {
|
||||||
|
UICollapse: UIState
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user