Skip to content

Commit b97fceb

Browse files
committed
react-api: Add useWorkspace hook
1 parent 98aa0bb commit b97fceb

File tree

11 files changed

+70
-8
lines changed

11 files changed

+70
-8
lines changed

.changeset/afraid-moments-punch.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@pulse-editor/shared-utils": patch
3+
"@pulse-editor/react-api": patch
4+
---
5+
6+
Add useWorkspace hook

.changeset/pre.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"@pulse-editor/web": "0.1.1-alpha.13"
1010
},
1111
"changesets": [
12+
"afraid-moments-punch",
1213
"angry-llamas-smash",
1314
"beige-pandas-rhyme",
1415
"bumpy-parents-pull",

npm-packages/react-api/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# @pulse-editor/react-api
22

3+
## 0.1.1-beta.56
4+
5+
### Patch Changes
6+
7+
- Add useWorkspace hook
8+
- Updated dependencies
9+
- @pulse-editor/shared-utils@0.1.1-beta.56
10+
311
## 0.1.1-beta.55
412

513
### Patch Changes

npm-packages/react-api/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pulse-editor/react-api",
3-
"version": "0.1.1-beta.55",
3+
"version": "0.1.1-beta.56",
44
"main": "dist/main.js",
55
"files": [
66
"dist"
@@ -37,7 +37,7 @@
3737
"typescript-eslint": "^8.30.1"
3838
},
3939
"peerDependencies": {
40-
"@pulse-editor/shared-utils": "0.1.1-beta.55",
40+
"@pulse-editor/shared-utils": "0.1.1-beta.56",
4141
"react": "^19.0.0",
4242
"react-dom": "^19.0.0"
4343
}

npm-packages/react-api/src/hooks/editor/use-toolbar.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { IMCMessage, IMCMessageTypeEnum } from "@pulse-editor/shared-utils";
2+
import { useEffect, useState } from "react";
3+
import useIMC from "../imc/use-imc";
4+
5+
export default function useWorkspace() {
6+
const [workspaceId, setWorkspaceId] = useState<string | undefined>(undefined);
7+
8+
const receiverHandlerMap = new Map<
9+
IMCMessageTypeEnum,
10+
(senderWindow: Window, message: IMCMessage) => Promise<void>
11+
>();
12+
13+
const { imc, isReady } = useIMC(receiverHandlerMap, "theme");
14+
15+
// Upon initial load, request theme from main app
16+
useEffect(() => {
17+
if (isReady) {
18+
imc
19+
?.sendMessage(IMCMessageTypeEnum.EditorAppRequestWorkspace)
20+
.then((result) => {
21+
const { id }: { id: string } = result;
22+
setWorkspaceId((prev) => id);
23+
});
24+
}
25+
}, [isReady]);
26+
27+
return {
28+
workspaceId,
29+
};
30+
}

npm-packages/react-api/src/main.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import useLoading from "./hooks/editor/use-loading";
55
import useNotification from "./hooks/editor/use-notification";
66
import useRegisterAction from "./hooks/editor/use-register-action";
77
import useTheme from "./hooks/editor/use-theme";
8-
import useToolbar from "./hooks/editor/use-toolbar";
98

109
import useImageGen from "./hooks/ai-modality/use-image-gen";
1110
import useLLM from "./hooks/ai-modality/use-llm";
@@ -17,6 +16,7 @@ import usePulseEnv from "./hooks/editor/use-env";
1716
import useOwnedAppView from "./hooks/editor/use-owned-app-view";
1817
import useReceiveFile from "./hooks/editor/use-receive-file";
1918
import useSnapshotState from "./hooks/editor/use-snapshot-state";
19+
import useWorkspace from "./hooks/editor/use-workspace";
2020
import useTerminal from "./hooks/terminal/use-terminal";
2121
import ReceiveFileProvider from "./providers/receive-file-provider";
2222
import SnapshotProvider from "./providers/snapshot-provider";
@@ -41,6 +41,6 @@ export {
4141
useTTS,
4242
useTerminal,
4343
useTheme,
44-
useToolbar,
4544
useVideoGen,
45+
useWorkspace,
4646
};

npm-packages/shared-utils/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# @pulse-editor/shared-utils
22

3+
## 0.1.1-beta.56
4+
5+
### Patch Changes
6+
7+
- Add useWorkspace hook
8+
39
## 0.1.1-beta.55
410

511
### Patch Changes

npm-packages/shared-utils/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pulse-editor/shared-utils",
3-
"version": "0.1.1-beta.55",
3+
"version": "0.1.1-beta.56",
44
"main": "dist/main.js",
55
"files": [
66
"dist"

npm-packages/shared-utils/src/types/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ export enum IMCMessageTypeEnum {
4444
EditorAppReceiveFileUri = "editor-app-receive-file-uri",
4545
// App uses owned app
4646
EditorAppUseOwnedApp = "editor-app-use-owned-app",
47+
// App requests workspace info
48+
EditorAppRequestWorkspace = "editor-app-request-workspace",
4749
// #endregion
4850

4951
// #region Platform API interaction messages (require OS-like environment)

0 commit comments

Comments
 (0)