Skip to content

Commit e293e0e

Browse files
update editor state with global preview data
1 parent 535fce9 commit e293e0e

1 file changed

Lines changed: 42 additions & 2 deletions

File tree

editor/core/states/editor-state.ts

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import type { ReflectSceneNode } from "@design-sdk/figma-node";
22
import type { FrameworkConfig } from "@designto/config";
3-
import { ComponentNode } from "@design-sdk/figma-types";
4-
import { DesignInput } from "@designto/config/input";
3+
import type { WidgetKey } from "@reflect-ui/core";
4+
import type { ComponentNode } from "@design-sdk/figma-types";
5+
import type { DesignInput } from "@designto/config/input";
56

67
/**
78
* View mode of the canvas.
@@ -23,6 +24,7 @@ export interface EditorState {
2324
design: FigmaReflectRepository;
2425
canvasMode: TCanvasMode;
2526
canvasMode_previous?: TCanvasMode;
27+
currentPreview?: ScenePreviewData;
2628
code?: CodeRepository;
2729
editingModule?: EditingModule;
2830
}
@@ -54,6 +56,44 @@ export interface FigmaReflectRepository {
5456
input: DesignInput;
5557
}
5658

59+
export type ScenePreviewData =
60+
| IScenePreviewDataVanillaPreview
61+
| IScenePreviewDataFlutterPreview
62+
| IScenePreviewDataEsbuildPreview;
63+
64+
export interface IScenePreviewData<T> {
65+
viewtype: "page" | "component" | "layer" | "unknown";
66+
widgetKey: WidgetKey;
67+
componentName: string;
68+
fallbackSource: string;
69+
source: T;
70+
initialSize: { width: number; height: number };
71+
isBuilding: boolean;
72+
meta: {
73+
bundler: "vanilla" | "esbuild-wasm" | "dart-services";
74+
framework: FrameworkConfig["framework"];
75+
};
76+
updatedAt: number;
77+
}
78+
79+
interface IScenePreviewDataVanillaPreview extends IScenePreviewData<string> {
80+
loader: "vanilla-html";
81+
source: string;
82+
}
83+
84+
interface IScenePreviewDataFlutterPreview extends IScenePreviewData<string> {
85+
loader: "vanilla-flutter-template";
86+
source: string;
87+
}
88+
89+
interface IScenePreviewDataEsbuildPreview
90+
extends IScenePreviewData<{
91+
html: string;
92+
javascript: string;
93+
}> {
94+
loader: "vanilla-esbuild-template";
95+
}
96+
5797
export interface CodeRepository {
5898
// TODO:
5999
// files: { [key: string]: string };

0 commit comments

Comments
 (0)