import React, {FC} from "react"; import {Position} from "@xyflow/system"; import {colors} from "./tree/Colors"; import {Handle, NodeProps, useUpdateNodeInternals} from "@xyflow/react"; import {RenderedNodeDataInBranch, useNodesStore, WithSourceNodeId, WithTargetNodeId} from "./tree/store"; import {CalculateHorizontalPositionOptions, CalculateVerticalPositionOptions, Direction} from "./Tree"; import {StepAnchorTieredBase} from "./StepAnchorTieredBase"; import {StepAnchorHandles} from "./StepAnchorHandles"; import {motion} from 'motion/react'; import {useStoreAPI, useTreeNode} from "./tree/TreeHooks"; // Helper function to convert index to alphabetic letter const indexToLetter = (index: number | undefined): string => { if (index === undefined) return ''; return String.fromCharCode(65 + index); // 65 is ASCII for 'A' }; export type StepAnchorData = WithSourceNodeId & WithTargetNodeId & { renderedNodeType: 'step-anchor', isFirst: boolean, // this is calculated ONCE when the node is created using regexes /** * This means that the branch of the Coupons+ node is a nested branch */ nodeHasMultiNodeBranch?: true, // again here for perf. direction?: Direction, y?: CalculateHorizontalPositionOptions['y'], type?: 'tiered-base' | 'tier-row', label?: string } export const StepAnchorBranch: FC = ({id}) => { const removeTier = useStoreAPI('removeTier'); const treeNode = useTreeNode(id) return { removeTier(id); }}>
{indexToLetter(treeNode?.getParentBranch()?.getChildIndex(treeNode?.id))}
}