feat: The Big One UI #47
@@ -13,9 +13,6 @@ import switchStyles from './InferredBeliefNode.module.css';
|
||||
import {MultiConnectionHandle, SingleConnectionHandle} from "../components/RuleBasedHandle.tsx";
|
||||
import {allowOnlyConnectionsFromType} from "../HandleRules.ts";
|
||||
import useFlowStore from "../VisProgStores.tsx";
|
||||
import type {BasicBeliefType} from "./BasicBeliefNode.tsx";
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The default data structure for an InferredBelief node
|
||||
@@ -27,31 +24,14 @@ export type InferredBeliefNodeData = {
|
||||
hasReduce: boolean;
|
||||
};
|
||||
|
||||
|
||||
|
||||
type Belief = ReducedInferredBelief | BasicBeliefType;
|
||||
|
||||
type ReducedInferredBelief = {
|
||||
id: string,
|
||||
left: Belief,
|
||||
operator: "AND" | "OR"
|
||||
right: Belief
|
||||
};
|
||||
|
||||
type InferredBelief = {
|
||||
left: string | undefined,
|
||||
operator: boolean,
|
||||
right: string | undefined,
|
||||
}
|
||||
|
||||
// helper validation function for InferredBelief objects
|
||||
// const isValidInferredBelief = (inferredBelief: InferredBelief) : boolean => {
|
||||
// return !(inferredBelief.left && inferredBelief.right);
|
||||
// };
|
||||
|
||||
export type InferredBeliefNode = Node<InferredBeliefNodeData>;
|
||||
|
||||
|
||||
/**
|
||||
* This function is called whenever a connection is made with this node type as the target
|
||||
* @param _thisNode the node of this node type which function is called
|
||||
@@ -107,6 +87,7 @@ export function InferredBeliefDisconnectionSource(_thisNode: Node, _targetNodeId
|
||||
*/
|
||||
const noBeliefCycles : HandleRule = (connection, _): RuleResult => {
|
||||
const { nodes, edges } = useFlowStore.getState();
|
||||
|
||||
function checkForCycle(targetNodeId: string, current: string) : RuleResult {
|
||||
const outgoingBeliefs = getOutgoers({id: current}, nodes, edges).filter(node => node.type === 'inferred_belief');
|
||||
if (outgoingBeliefs.length === 0) return ruleResult.satisfied;
|
||||
|
||||
Reference in New Issue
Block a user