import React, {FC} from "react"; import {convertTestableData, useNodesStore} from "./store"; import {NoPreconditions} from "./NoPreconditions"; import {Testables} from "./testables"; import {Context} from "./Context"; import {__} from "../globals"; import {RightContextButton} from "./RightContextButton"; import {getColorForComponentType} from "./Colors"; import {useOpenTestablesPopupWindow} from "./useOpenTestablesPopupWindow"; import {PopupWindowStateContext, TreeContextData} from "./atoms"; import {VerticalOrConnector} from "./VerticalOrConnector"; export type TreePreconditionsProps = {} export const TreePreconditions: FC = () => { const color = getColorForComponentType('condition') const openTestablesPopupWindow = useOpenTestablesPopupWindow() const preconditionsID = useNodesStore(store => store.preconditionsID) const addTestables = useNodesStore(store => store.addTestables) const testablesManagerRef = React.useRef() const preconditionsContextIDs: string[] = useNodesStore(({ preconditionsID, testables, testableRelations, testablePartials }) => { if (!preconditionsID) { return [] } const testablesManager = new Testables({testables, testableRelations, testablePartials}) testablesManagerRef.current = testablesManager return testablesManager.getChildren(preconditionsID).map(({id}) => id) }) /* if (testablesManagerRef.current) { const testable = new Testable(testablesManagerRef.current, preconditionsID || '') if (!testable.exists()) { testablesManagerRef.current.remove(preconditionsID!) } } */ if (preconditionsContextIDs.length === 0) { return } const openTestables = () => { // @ts-ignore const context = { id: 'preconditions-or-add', scope: 'preconditions', data: { componentType: 'condition', targetType: 'testableComposite', targetId: preconditionsID, // this is the main preconditions 'OR' group showTabs: false } } as PopupWindowStateContext openTestablesPopupWindow({ // @ts-ignore context, onClose: (data) => { if (data.status !== 'success' || !data.components) { return } addTestables([ convertTestableData(data.components), preconditionsID, true // wrap in group ], (addedIds, testablesManager, writeableStore) => { }) } }) } return

{__('Preconditions')}

{preconditionsContextIDs.map((id, index) =>
{index + 1 < preconditionsContextIDs.length && } {(index + 1 === preconditionsContextIDs.length) && (
)}
)}
};