You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
import "../../style/basket_court.css"
|
|
import { RefObject, useRef } from "react"
|
|
import CourtPlayer from "./CourtPlayer"
|
|
import { Player } from "../../tactic/Player"
|
|
|
|
export interface BasketCourtProps {
|
|
players: Player[]
|
|
onPlayerRemove: (p: Player) => void
|
|
onPlayerChange: (p: Player) => void
|
|
courtImage: string
|
|
courtRef: RefObject<HTMLDivElement>
|
|
}
|
|
|
|
export function BasketCourt({
|
|
players,
|
|
onPlayerRemove,
|
|
onPlayerChange,
|
|
courtImage,
|
|
courtRef,
|
|
}: BasketCourtProps) {
|
|
return (
|
|
<div
|
|
id="court-container"
|
|
ref={courtRef}
|
|
style={{ position: "relative" }}>
|
|
<img src={courtImage} alt={"court"} id="court-svg" />
|
|
{players.map((player) => {
|
|
return (
|
|
<CourtPlayer
|
|
key={player.team + player.role}
|
|
player={player}
|
|
onChange={onPlayerChange}
|
|
onRemove={() => onPlayerRemove(player)}
|
|
parentRef={courtRef}
|
|
/>
|
|
)
|
|
})}
|
|
</div>
|
|
)
|
|
}
|