|
|
|
@ -16,11 +16,11 @@ export default function Editor({id, name}: { id: number, name: string }) {
|
|
|
|
|
const [style, setStyle] = useState<CSSProperties>({});
|
|
|
|
|
|
|
|
|
|
const positions = ["PG", "SG", "SF", "PF", "C"]
|
|
|
|
|
const [team, setTeams] = useState(
|
|
|
|
|
positions.map(pos => <PlayerPiece key={pos} text={pos}/>)
|
|
|
|
|
const [allies, setAllies] = useState(
|
|
|
|
|
positions.map(pos => <PlayerPiece team="allies" key={pos} text={pos}/>)
|
|
|
|
|
)
|
|
|
|
|
const [opponents, setOpponents] = useState(
|
|
|
|
|
positions.map(pos => <PlayerPiece key={pos} text={pos}/>)
|
|
|
|
|
positions.map(pos => <PlayerPiece team="opponents" key={pos} text={pos}/>)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const [players, setPlayers] = useState<Player[]>([]);
|
|
|
|
@ -52,6 +52,7 @@ export default function Editor({id, name}: { id: number, name: string }) {
|
|
|
|
|
setPlayers(players => {
|
|
|
|
|
return [...players, {
|
|
|
|
|
id: players.length,
|
|
|
|
|
team: element.props.team,
|
|
|
|
|
position: element.props.text,
|
|
|
|
|
right_percentage: xPercent,
|
|
|
|
|
bottom_percentage: yPercent
|
|
|
|
@ -85,8 +86,8 @@ export default function Editor({id, name}: { id: number, name: string }) {
|
|
|
|
|
</div>
|
|
|
|
|
<div id="edit-div">
|
|
|
|
|
<div id="racks">
|
|
|
|
|
<Rack id="team-rack"
|
|
|
|
|
objects={[team, setTeams]}
|
|
|
|
|
<Rack id="allies-rack"
|
|
|
|
|
objects={[allies, setAllies]}
|
|
|
|
|
canDetach={canDetach}
|
|
|
|
|
onElementDetached={onElementDetach}/>
|
|
|
|
|
<Rack id="opponent-rack"
|
|
|
|
@ -96,7 +97,26 @@ export default function Editor({id, name}: { id: number, name: string }) {
|
|
|
|
|
</div>
|
|
|
|
|
<div id="court-div">
|
|
|
|
|
<div ref={courtDivContentRef}>
|
|
|
|
|
<BasketCourt players={players}/>
|
|
|
|
|
<BasketCourt
|
|
|
|
|
players={players}
|
|
|
|
|
onPlayerRemove={(player) => {
|
|
|
|
|
setPlayers(players => {
|
|
|
|
|
const idx = players.indexOf(player)
|
|
|
|
|
return players.toSpliced(idx, 1)
|
|
|
|
|
})
|
|
|
|
|
const piece = <PlayerPiece team={player.team} key={player.position} text={player.position}/>
|
|
|
|
|
switch (player.team) {
|
|
|
|
|
case "opponents":
|
|
|
|
|
setOpponents(opponents => (
|
|
|
|
|
[...opponents, piece]
|
|
|
|
|
))
|
|
|
|
|
break
|
|
|
|
|
case "allies":
|
|
|
|
|
setAllies(allies => (
|
|
|
|
|
[...allies, piece]
|
|
|
|
|
))
|
|
|
|
|
}
|
|
|
|
|
}}/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|