trying to simplify things a bit more... will get rid of 'onResolve'
This commit is contained in:
parent
897824e07d
commit
9c0c2dab90
7 changed files with 85 additions and 45 deletions
|
|
@ -58,7 +58,7 @@ function headlessCallBlock({state, setState, onResolve}: CallBlockProps) {
|
|||
}
|
||||
};
|
||||
const onFnResolve = (fnState) => {
|
||||
if (input.resolved) {
|
||||
if (fnState && input.resolved) {
|
||||
makeTheCall(input, fnState);
|
||||
}
|
||||
else {
|
||||
|
|
@ -70,7 +70,7 @@ function headlessCallBlock({state, setState, onResolve}: CallBlockProps) {
|
|||
}
|
||||
};
|
||||
const onInputResolve = (inputState) => {
|
||||
if (fn.resolved) {
|
||||
if (fn.resolved && inputState) {
|
||||
makeTheCall(inputState, fn);
|
||||
}
|
||||
else {
|
||||
|
|
@ -90,13 +90,14 @@ function headlessCallBlock({state, setState, onResolve}: CallBlockProps) {
|
|||
}
|
||||
|
||||
export function CallBlock({ state, setState, onResolve }: CallBlockProps) {
|
||||
const {unifyError, setFn, setInput, onFnResolve, onInputResolve, onInputCancel}
|
||||
const {unifyError, setFn, setInput, onFnResolve, onFnCancel, onInputResolve, onInputCancel}
|
||||
= headlessCallBlock({ state, setState, onResolve });
|
||||
return <span className={"functionBlock" + (unifyError ? " unifyError" : "")}>
|
||||
<FunctionHeader
|
||||
fn={state.fn}
|
||||
setFn={setFn}
|
||||
onFnResolve={onFnResolve}
|
||||
onFnCancel={onFnCancel}
|
||||
input={state.input} />
|
||||
<div className="functionParams">
|
||||
<div className="outputParam">
|
||||
|
|
@ -109,26 +110,29 @@ export function CallBlock({ state, setState, onResolve }: CallBlockProps) {
|
|||
|
||||
{/* Output (or Error) */}
|
||||
{state.resolved && <Value dynamic={state.resolved} />}
|
||||
{ state.resolved && <>☑</>}
|
||||
{unifyError && unifyError.toString()}
|
||||
</div>
|
||||
</div>
|
||||
</span>;
|
||||
}
|
||||
|
||||
function FunctionHeader({ fn, setFn, input, onFnResolve }) {
|
||||
function FunctionHeader({ fn, setFn, input, onFnResolve, onFnCancel }) {
|
||||
if (fn.kind === "call") {
|
||||
// if the function we're calling is itself the result of a function call,
|
||||
// then we are anonymous, and so we don't draw a function name
|
||||
|
||||
// recurse:
|
||||
const {
|
||||
onFnResolve : onFnFnResolve
|
||||
onFnResolve : onFnFnResolve,
|
||||
onFnCancel : onFnFnCancel,
|
||||
} = headlessCallBlock({state: fn, setState: setFn, onResolve: onFnResolve});
|
||||
|
||||
return <FunctionHeader
|
||||
fn={fn.fn}
|
||||
setFn={fnFn => setFn({...fn, fn: fnFn})}
|
||||
onFnResolve={onFnFnResolve}
|
||||
onFnCancel={onFnFnCancel}
|
||||
input={fn.input} />;
|
||||
}
|
||||
else {
|
||||
|
|
@ -151,15 +155,15 @@ function FunctionHeader({ fn, setFn, input, onFnResolve }) {
|
|||
}
|
||||
|
||||
// end of recursion - draw function name
|
||||
return <div className="functionName">
|
||||
return <span className="functionName">
|
||||
𝑓𝑛
|
||||
<Editor
|
||||
state={fn}
|
||||
setState={setFn}
|
||||
onResolve={onFnResolve}
|
||||
onCancel={() => {/*todo*/}}
|
||||
onCancel={onFnCancel}
|
||||
filter={filterCompatibleFns} />
|
||||
</div>;
|
||||
</span>;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue