Skip to content

Commit b94538e

Browse files
committed
fix some nits
1 parent 9b7af02 commit b94538e

4 files changed

Lines changed: 25 additions & 17 deletions

File tree

frontend/preview/mock/mock-node-model.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export function makeMockNodeModel(opts: MockNodeModelOpts): NodeModel {
2828
isResizing: atom(false),
2929
isFocused: isFocusedAtom,
3030
isMagnified: isMagnifiedAtom,
31-
anyMagnified: atom(false),
31+
anyMagnified: atom((get) => get(isMagnifiedAtom)),
3232
isEphemeral: atom(false),
3333
ready: atom(true),
3434
disablePointerEvents: atom(false),

frontend/preview/mock/mockwaveenv.ts

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ export const SysinfoBlockId = crypto.randomUUID();
3939
// - rpc.UpdateWorkspaceTabIdsCommand -- updates .tabids on the Workspace WaveObj in the mock WOS
4040
//
4141
// Any other RPC call falls through to a console.log and resolves null.
42-
// Override specific calls via MockEnv.rpc (keys are the Command method names, e.g. "GetMetaCommand").
42+
// Override specific calls via MockEnv.rpc (keys are Command method names, e.g. "GetMetaCommand").
43+
// Override specific streaming calls via MockEnv.rpcStreaming (same key names, handler returns AsyncGenerator).
4344
//
4445
// Backend service calls (handled in callBackendService):
4546
// Any call falls through to a console.log and resolves null.
@@ -50,7 +51,11 @@ export type RpcHandlerType = (...args: any[]) => Promise<any>;
5051
export type RpcStreamHandlerType = (...args: any[]) => AsyncGenerator<any, void, boolean>;
5152

5253
export type RpcOverrides = {
53-
[K in keyof RpcApiType as K extends `${string}Command` ? K : never]?: RpcHandlerType | RpcStreamHandlerType;
54+
[K in keyof RpcApiType as K extends `${string}Command` ? K : never]?: RpcHandlerType;
55+
};
56+
57+
export type RpcStreamOverrides = {
58+
[K in keyof RpcApiType as K extends `${string}Command` ? K : never]?: RpcStreamHandlerType;
5459
};
5560

5661
type ServiceOverrides = {
@@ -65,6 +70,7 @@ export type MockEnv = {
6570
platform?: NodeJS.Platform;
6671
settings?: Partial<SettingsType>;
6772
rpc?: RpcOverrides;
73+
rpcStreaming?: RpcStreamOverrides;
6874
services?: ServiceOverrides;
6975
atoms?: Partial<GlobalAtomsType>;
7076
electron?: Partial<ElectronApi>;
@@ -77,7 +83,7 @@ export type MockEnv = {
7783
export type MockWaveEnv = WaveEnv & {
7884
mockEnv: MockEnv;
7985
addRpcOverride: <K extends keyof RpcOverrides>(command: K, handler: RpcHandlerType) => void;
80-
addRpcStreamOverride: <K extends keyof RpcOverrides>(command: K, handler: RpcStreamHandlerType) => void;
86+
addRpcStreamOverride: <K extends keyof RpcStreamOverrides>(command: K, handler: RpcStreamHandlerType) => void;
8187
};
8288

8389
function mergeRecords<T>(base: Record<string, T>, overrides: Record<string, T>): Record<string, T> {
@@ -104,6 +110,7 @@ export function mergeMockEnv(base: MockEnv, overrides: MockEnv): MockEnv {
104110
platform: overrides.platform ?? base.platform,
105111
settings: mergeRecords(base.settings, overrides.settings),
106112
rpc: mergeRecords(base.rpc as any, overrides.rpc as any) as RpcOverrides,
113+
rpcStreaming: mergeRecords(base.rpcStreaming as any, overrides.rpcStreaming as any) as RpcStreamOverrides,
107114
services: mergedServices,
108115
atoms: overrides.atoms != null || base.atoms != null ? { ...base.atoms, ...overrides.atoms } : undefined,
109116
electron:
@@ -198,6 +205,7 @@ type MockWosFns = {
198205

199206
export function makeMockRpc(
200207
overrides: RpcOverrides,
208+
streamOverrides: RpcStreamOverrides,
201209
wos: MockWosFns
202210
): {
203211
rpc: RpcApiType;
@@ -311,11 +319,13 @@ export function makeMockRpc(
311319
if (overrides) {
312320
for (const key of Object.keys(overrides) as (keyof RpcOverrides)[]) {
313321
const cmdName = key.slice(0, -"Command".length).toLowerCase();
314-
if (cmdName === "filereadstream" || cmdName === "fileliststream") {
315-
setStreamHandler(cmdName, overrides[key] as (...args: any[]) => AsyncGenerator<any, void, boolean>);
316-
} else {
317-
setCallHandler(cmdName, overrides[key] as (...args: any[]) => Promise<any>);
318-
}
322+
setCallHandler(cmdName, overrides[key] as RpcHandlerType);
323+
}
324+
}
325+
if (streamOverrides) {
326+
for (const key of Object.keys(streamOverrides) as (keyof RpcStreamOverrides)[]) {
327+
const cmdName = key.slice(0, -"Command".length).toLowerCase();
328+
setStreamHandler(cmdName, streamOverrides[key] as RpcStreamHandlerType);
319329
}
320330
}
321331
const rpc = new RpcApiType();
@@ -451,7 +461,7 @@ export function makeMockWaveEnv(mockEnv?: MockEnv): MockWaveEnv {
451461
globalStore.set(waveObjectValueAtomCache.get(oref), obj);
452462
},
453463
};
454-
const { rpc, setRpcHandler, setRpcStreamHandler } = makeMockRpc(mergedOverrides.rpc, mockWosFns);
464+
const { rpc, setRpcHandler, setRpcStreamHandler } = makeMockRpc(mergedOverrides.rpc, mergedOverrides.rpcStreaming, mockWosFns);
455465
const env = {
456466
isMock: true,
457467
mockEnv: mergedOverrides,
@@ -566,7 +576,7 @@ export function makeMockWaveEnv(mockEnv?: MockEnv): MockWaveEnv {
566576
addRpcOverride: <K extends keyof RpcOverrides>(command: K, handler: RpcHandlerType) => {
567577
setRpcHandler(command as string, handler);
568578
},
569-
addRpcStreamOverride: <K extends keyof RpcOverrides>(command: K, handler: RpcStreamHandlerType) => {
579+
addRpcStreamOverride: <K extends keyof RpcStreamOverrides>(command: K, handler: RpcStreamHandlerType) => {
570580
setRpcStreamHandler(command as string, handler);
571581
},
572582
} as MockWaveEnv;

frontend/preview/mock/use-rpc-override.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import { useWaveEnv } from "@/app/waveenv/waveenv";
55
import * as React from "react";
6-
import { MockWaveEnv, RpcHandlerType, RpcOverrides, RpcStreamHandlerType } from "./mockwaveenv";
6+
import { MockWaveEnv, RpcHandlerType, RpcOverrides, RpcStreamHandlerType, RpcStreamOverrides } from "./mockwaveenv";
77

88
export function useRpcOverride<K extends keyof RpcOverrides>(command: K, handler: RpcHandlerType): void {
99
const mockEnv = useWaveEnv() as MockWaveEnv;
@@ -14,7 +14,7 @@ export function useRpcOverride<K extends keyof RpcOverrides>(command: K, handler
1414
}
1515
}
1616

17-
export function useRpcStreamOverride<K extends keyof RpcOverrides>(command: K, handler: RpcStreamHandlerType): void {
17+
export function useRpcStreamOverride<K extends keyof RpcStreamOverrides>(command: K, handler: RpcStreamHandlerType): void {
1818
const mockEnv = useWaveEnv() as MockWaveEnv;
1919
const registeredRef = React.useRef(false);
2020
if (!registeredRef.current) {

frontend/preview/preview.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,8 @@ function PreviewRoot() {
9999
<Provider store={globalStore}>
100100
<WaveEnvContext.Provider value={waveEnvRef.current}>
101101
<TabModelContext.Provider value={getTabModelByTabId(PreviewTabId, waveEnvRef.current)}>
102-
<>
103-
<PreviewApp />
104-
<PreviewContextMenu />
105-
</>
102+
<PreviewApp />
103+
<PreviewContextMenu />
106104
</TabModelContext.Provider>
107105
</WaveEnvContext.Provider>
108106
</Provider>

0 commit comments

Comments
 (0)