From 1e25ca05862725b40ff3c086d40bd250d236a258 Mon Sep 17 00:00:00 2001 From: Riccardo Forina Date: Wed, 27 Nov 2024 09:53:34 +0100 Subject: [PATCH] Toggles for the dev tools --- packages/test-app/package.json | 5 +- packages/test-app/src/App.tsx | 71 +++++++----- packages/test-app/src/AppContext.tsx | 29 +++++ packages/test-app/src/AppMachine.ts | 117 -------------------- packages/test-app/src/components/Layout.tsx | 18 +++ packages/test-app/src/main.tsx | 11 +- packages/ui/src/OpenApiEditor.tsx | 97 ++++++++-------- yarn.lock | 3 +- 8 files changed, 147 insertions(+), 204 deletions(-) create mode 100644 packages/test-app/src/AppContext.tsx delete mode 100644 packages/test-app/src/AppMachine.ts diff --git a/packages/test-app/package.json b/packages/test-app/package.json index 8283dc1..938778c 100644 --- a/packages/test-app/package.json +++ b/packages/test-app/package.json @@ -15,13 +15,12 @@ "@patternfly/react-code-editor": "^6.0.0", "@patternfly/react-core": "^6.0.0", "@patternfly/react-icons": "^6.0.0", - "@xstate/react": "^4.1.3", + "@statelyai/inspect": "^0.4.0", "comlink": "^4.4.1", "monaco-editor": "^0.52.0", "monaco-yaml": "^5.2.3", "react": "^18.3.1", - "react-dom": "^18.3.1", - "xstate": "^5.18.2" + "react-dom": "^18.3.1" }, "devDependencies": { "@eslint/js": "^9.13.0", diff --git a/packages/test-app/src/App.tsx b/packages/test-app/src/App.tsx index 8ee1c29..b7fe288 100644 --- a/packages/test-app/src/App.tsx +++ b/packages/test-app/src/App.tsx @@ -15,7 +15,7 @@ import htmlWorker from "monaco-editor/esm/vs/language/html/html.worker?worker"; import tsWorker from "monaco-editor/esm/vs/language/typescript/ts.worker?worker"; import { worker } from "./rpc.ts"; // import * as worker from "../../ui/src/OpenApiEditorWorker.ts"; -import { useCallback, useRef, useState } from "react"; +import { useCallback, useEffect, useRef, useState } from "react"; import { Alert, Button, @@ -26,6 +26,8 @@ import { TextArea, Title, } from "@patternfly/react-core"; +import { useAppContext } from "./AppContext.tsx"; +import { createBrowserInspector } from "@statelyai/inspect"; // initialize Monaco's workers self.MonacoEnvironment = { @@ -51,6 +53,18 @@ function App() { const [spec, setSpec] = useState(null); const [captureChanges, setCaptureChanges] = useState(true); const [output, setOutput] = useState(""); + const { showDebugger, showXStateInspector } = useAppContext(); + const { inspect, start, stop } = createBrowserInspector({ + autoStart: false, + }); + + useEffect(() => { + if (showXStateInspector) { + start(); + } else { + stop(); + } + }, [showXStateInspector, start, stop]); const editorRef = useRef(null); @@ -111,35 +125,38 @@ function App() { undoChange={worker.undoChange} redoChange={worker.redoChange} onDocumentChange={onDocumentChange} + inspect={inspect} /> - - - - - <Switch - isChecked={captureChanges} - onChange={(_, v) => setCaptureChanges(v)} - label={"Listen to onDocumentChange events"} + {showDebugger && ( + <PageSection variant={"secondary"}> + <Alert + title={"Integration debugger"} + variant={"warning"} + isInline={true} + > + <Flex> + <Title headingLevel={"h6"}> + <Switch + isChecked={captureChanges} + onChange={(_, v) => setCaptureChanges(v)} + label={"Listen to onDocumentChange events"} + /> + +