import { ReactElement, ReactNode, RefObject } from "react" import { Action } from "../../model/tactic/Action" import { CourtAction } from "./CourtAction" import { ComponentId, TacticComponent } from "../../model/tactic/Tactic" export interface BasketCourtProps { components: TacticComponent[] parentComponents: TacticComponent[] | null previewAction: ActionPreview | null renderComponent: (comp: TacticComponent, isFromParent: boolean) => ReactNode renderActions: (comp: TacticComponent, isFromParent: boolean) => ReactNode[] courtImage: ReactElement courtRef: RefObject } export interface ActionPreview extends Action { origin: ComponentId isInvalid: boolean } export function BasketCourt({ components, parentComponents, previewAction, renderComponent, renderActions, courtImage, courtRef, }: BasketCourtProps) { return (
{courtImage} {courtRef.current && parentComponents?.map((i) => renderComponent(i, true))} {courtRef.current && parentComponents?.flatMap((i) => renderActions(i, true))} {courtRef.current && components.map((i) => renderComponent(i, false))} {courtRef.current && components.flatMap((i) => renderActions(i, false))} {previewAction && ( {}} onActionChanges={() => {}} /> )}
) }