From 023b6c7480163397bdf2e055388e8f2c615f4a20 Mon Sep 17 00:00:00 2001 From: imanjra Date: Mon, 4 Mar 2024 11:27:44 -0500 Subject: [PATCH 1/2] fix on_startup operator not executing on startup --- app/packages/operators/src/OperatorCore.tsx | 2 ++ .../operators/src/StartupOperatorExecutor.tsx | 15 +++++++++++++++ app/packages/operators/src/loader.tsx | 8 +------- 3 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 app/packages/operators/src/StartupOperatorExecutor.tsx diff --git a/app/packages/operators/src/OperatorCore.tsx b/app/packages/operators/src/OperatorCore.tsx index 711ec32fef..3379da92ad 100644 --- a/app/packages/operators/src/OperatorCore.tsx +++ b/app/packages/operators/src/OperatorCore.tsx @@ -1,12 +1,14 @@ import OperatorBrowser from "./OperatorBrowser"; import OperatorInvocationRequestExecutor from "./OperatorInvocationRequestExecutor"; import OperatorPrompt, { OperatorViewModal } from "./OperatorPrompt"; +import StartupOperatorExecutor from "./StartupOperatorExecutor"; export default function OperatorCore() { return ( <> + diff --git a/app/packages/operators/src/StartupOperatorExecutor.tsx b/app/packages/operators/src/StartupOperatorExecutor.tsx new file mode 100644 index 0000000000..97d04c9b1f --- /dev/null +++ b/app/packages/operators/src/StartupOperatorExecutor.tsx @@ -0,0 +1,15 @@ +import { useEffect } from "react"; +import { executeStartupOperators } from "./operators"; + +let startupOperatorsExecuted = false; + +export default function StartupOperatorExecutor() { + useEffect(() => { + if (!startupOperatorsExecuted) { + executeStartupOperators(); + startupOperatorsExecuted = true; + } + }, []); + + return null; +} diff --git a/app/packages/operators/src/loader.tsx b/app/packages/operators/src/loader.tsx index a1717092d9..d93eb4a557 100644 --- a/app/packages/operators/src/loader.tsx +++ b/app/packages/operators/src/loader.tsx @@ -4,21 +4,15 @@ import { useEffect, useState } from "react"; import { useRecoilValue, useSetRecoilState } from "recoil"; import { registerBuiltInOperators } from "./built-in-operators"; import { useOperatorPlacementsResolver } from "./hooks"; -import { executeStartupOperators, loadOperatorsFromServer } from "./operators"; +import { loadOperatorsFromServer } from "./operators"; import { availableOperatorsRefreshCount, operatorsInitializedAtom, } from "./state"; -let startupOperatorsExecuted = false; - async function loadOperators(datasetName: string) { registerBuiltInOperators(); await loadOperatorsFromServer(datasetName); - if (!startupOperatorsExecuted) { - executeStartupOperators(); - startupOperatorsExecuted = true; - } } /** From 46980d5455c78cfaae2f8a7bba5a86354bd20cfe Mon Sep 17 00:00:00 2001 From: Benjamin Kane Date: Wed, 6 Mar 2024 13:45:51 -0600 Subject: [PATCH 2/2] lint --- app/packages/operators/src/loader.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/packages/operators/src/loader.tsx b/app/packages/operators/src/loader.tsx index d93eb4a557..ab1471a42e 100644 --- a/app/packages/operators/src/loader.tsx +++ b/app/packages/operators/src/loader.tsx @@ -16,8 +16,7 @@ async function loadOperators(datasetName: string) { } /** - * Load built-in and installed JavaScript and Python operators and queue all - * start-up operators for execution. + * Load built-in and installed JavaScript and Python operators and initialize */ export function useOperators(datasetLess?: boolean) { const [ready, setReady] = useState(false);