Skip to content

Commit 815cdb4

Browse files
committed
Refactor ViewOptions
1 parent 518dcf3 commit 815cdb4

File tree

7 files changed

+19
-25
lines changed

7 files changed

+19
-25
lines changed

packages/dashboard/src/components/editor/Editor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ const Editor: React.FC<{
147147
"://",
148148
// adds subdomain to the editor url
149149
`://${documentId}.`
150-
) + "?embed=true&titleBarPadding=40";
150+
) + "?type=embed&titleBarPadding=40";
151151

152152
return (
153153
<div className="text-neutral-800 flex flex-col text-xs">

packages/dashboard/src/components/editor/LocalEditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ const LocalEditor: React.FC = () => {
136136
"://",
137137
// TODO: use unique ID for subdomain?
138138
`://local.`
139-
) + "?embed=true&titleBarPadding=40";
139+
) + "?type=embed&titleBarPadding=40";
140140

141141
return (
142142
<div className="text-neutral-800 flex flex-col text-xs">

packages/editor/src/main.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import { IFrameDataConnector } from "./state/IFrameDataConnector";
66
import { projectState } from "./state/ProjectState";
77
import { viewOptions } from "./state/ViewOptions";
88

9-
if (viewOptions.embed) {
10-
new IFrameDataConnector(projectState);
11-
} else {
9+
if (viewOptions.type == "demo") {
1210
projectState.loadDemoFile();
11+
} else {
12+
new IFrameDataConnector(projectState, viewOptions.type);
1313
}
1414

1515
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(

packages/editor/src/state/IFrameDataConnector.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
} from "../types/IFrameRPC";
1010
import { throttle } from "lodash-es";
1111
import { ThumbnailTakerHost } from "./ThumbnailTakerHost";
12-
import { viewOptions } from "./ViewOptions";
1312

1413
export function vscodeParentTarget(): Target {
1514
const vscode = acquireVsCodeApi();
@@ -30,7 +29,7 @@ export function vscodeParentTarget(): Target {
3029
}
3130

3231
export class IFrameDataConnector {
33-
constructor(state: ProjectState) {
32+
constructor(state: ProjectState, type: "embed" | "vscode") {
3433
this.state = state;
3534
this.updates.push(Y.encodeStateAsUpdate(state.doc));
3635

@@ -48,7 +47,7 @@ export class IFrameDataConnector {
4847
};
4948

5049
this.rpc = new RPC<IEditorToRootRPCHandler, IRootToEditorRPCHandler>(
51-
viewOptions.vscode ? vscodeParentTarget() : parentWindowTarget(),
50+
type === "vscode" ? vscodeParentTarget() : parentWindowTarget(),
5251
{
5352
update: action(async (data: Uint8Array) => {
5453
Y.applyUpdate(state.doc, data);

packages/editor/src/state/ViewOptions.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
interface ViewOptions {
2-
embed: boolean;
2+
type: "demo" | "embed" | "vscode";
33
titleBarPadding: number;
44
uiScaling: number;
55
fontSize: number;
6-
narrowMode: boolean;
7-
vscode: boolean;
6+
layout: "twoColumn" | "threeColumn";
87
}
98

109
declare global {
@@ -16,33 +15,32 @@ declare global {
1615
function getViewOptions(): ViewOptions {
1716
if (window.uimixViewOptions) {
1817
return {
19-
embed: false,
2018
titleBarPadding: 0,
2119
uiScaling: 1,
2220
fontSize: 12,
23-
narrowMode: false,
24-
vscode: false,
21+
layout: "threeColumn",
22+
type: "demo",
2523
...window.uimixViewOptions,
2624
};
2725
}
2826

2927
const searchParams = new URLSearchParams(window.location.search);
3028

31-
const embed = searchParams.get("embed") === "true";
29+
const type = (searchParams.get("type") ?? "demo") as ViewOptions["type"];
3230
const titleBarPadding = Number.parseInt(
3331
searchParams.get("titleBarPadding") ?? "0"
3432
);
3533
const uiScaling = Number.parseFloat(searchParams.get("uiScaling") ?? "1");
3634
const fontSize = Number.parseFloat(searchParams.get("fontSize") ?? "12");
37-
const narrowMode = searchParams.get("narrowMode") === "true";
35+
const layout = (searchParams.get("layout") ??
36+
"threeColumn") as ViewOptions["layout"];
3837

3938
return {
40-
embed,
39+
type,
4140
titleBarPadding,
4241
uiScaling,
4342
fontSize,
44-
narrowMode,
45-
vscode: false,
43+
layout,
4644
};
4745
}
4846

packages/editor/src/state/ViewportState.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ export class ViewportState {
2424
@observable isSideBarsVisible = true;
2525
@observable lastSideBarLeftOffset = 0;
2626

27-
@observable layout: "twoColumn" | "threeColumn" = viewOptions.narrowMode
28-
? "twoColumn"
29-
: "threeColumn";
27+
@observable layout: "twoColumn" | "threeColumn" = viewOptions.layout;
3028
}
3129

3230
export const viewportState = new ViewportState();

packages/vscode/src/EditorSession.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,10 @@ export class EditorSession {
181181
const configScript = `
182182
<script>
183183
window.uimixViewOptions = {
184-
embed: true,
184+
type: "vscode",
185185
uiScaling: 0.75,
186186
fontSize: 11,
187-
narrowMode: true,
188-
vscode: true,
187+
layout: "twoColumn",
189188
};
190189
</script>`;
191190

0 commit comments

Comments
 (0)