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