Skip to content

Commit b2a7a5f

Browse files
sanitize
1 parent d82399d commit b2a7a5f

5 files changed

Lines changed: 27 additions & 47 deletions

File tree

editor-packages/editor-canvas/canvas-event-target/canvas-event-target.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import type {
55
WebKitGestureEvent,
66
SharedGestureState,
77
} from "@use-gesture/react";
8-
import styled from "@emotion/styled";
98

109
export type OnPanningHandler = Handler<"wheel", WheelEvent>;
1110

@@ -135,26 +134,23 @@ export function CanvasEventTarget({
135134
);
136135

137136
return (
138-
<EventTargetContainer
137+
<div
139138
style={{
139+
position: "absolute",
140+
inset: 0,
141+
background: "transparent",
142+
overflow: "hidden",
143+
touchAction: "none",
140144
cursor: isSpacebarPressed ? "grab" : "default",
141145
}}
142146
id="gesture-event-listener"
143147
ref={interactionEventTargetRef}
144148
>
145149
{children}
146-
</EventTargetContainer>
150+
</div>
147151
);
148152
}
149153

150-
const EventTargetContainer = styled.div`
151-
position: absolute;
152-
inset: 0px;
153-
background: transparent;
154-
overflow: hidden;
155-
touch-action: none;
156-
`;
157-
158154
type PlatformName = "mac" | "win" | "linux" | "other";
159155

160156
const getCurrentPlatform = (navigator?: { platform: string }): PlatformName =>

editor-packages/editor-canvas/canvas/canvas.tsx

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
import React, {
2-
useEffect,
3-
useLayoutEffect,
4-
useRef,
5-
useState,
6-
useMemo,
7-
} from "react";
1+
import React, { useEffect, useRef, useState, useMemo } from "react";
82
import { ReflectSceneNode } from "@design-sdk/figma-node";
93
import styled from "@emotion/styled";
104
import {
@@ -14,7 +8,7 @@ import {
148
OnPointerMoveHandler,
159
OnPointerDownHandler,
1610
} from "../canvas-event-target";
17-
import { get_hovering_target, centerOf } from "../math";
11+
import { get_hovering_target } from "../math";
1812
import { utils } from "@design-sdk/core";
1913
import { LazyFrame } from "@code-editor/canvas/lazy-frame";
2014
import { HudCustomRenderers, HudSurface } from "./hud-surface";
@@ -37,6 +31,7 @@ interface CanvasState {
3731
highlightedLayer?: string;
3832
selectedNodes: string[];
3933
readonly?: boolean;
34+
initialTransform?: CanvasTransform;
4035
}
4136

4237
type CanvasCustomRenderers = HudCustomRenderers & {
@@ -61,6 +56,10 @@ export function Canvas({
6156
onSelectNode,
6257
onClearSelection,
6358
nodes,
59+
initialTransform = {
60+
xy: INITIAL_XY,
61+
scale: INITIAL_SCALE,
62+
},
6463
highlightedLayer,
6564
selectedNodes,
6665
readonly = true,
@@ -73,14 +72,9 @@ export function Canvas({
7372
CanvasState & {
7473
config?: CanvsPreferences;
7574
}) {
76-
const { center: _inicial_xy, scale: _initial_scale } = useMemo(
77-
() => centerOf(null, ...nodes),
78-
[nodes]
79-
);
80-
81-
const [zoom, setZoom] = useState(_initial_scale);
75+
const [zoom, setZoom] = useState(initialTransform.scale);
8276
const [isZooming, setIsZooming] = useState(false);
83-
const [offset, setOffset] = useState<[number, number]>(_inicial_xy);
77+
const [offset, setOffset] = useState<[number, number]>(initialTransform.xy);
8478
const nonscaled_offset: XY = [offset[0] / zoom, offset[1] / zoom]; // offset;
8579
const [isPanning, setIsPanning] = useState(false);
8680

editor/scaffolds/canvas/canvas.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,7 @@ export function VisualContentArea({ fileid }: { fileid: string }) {
6060
}}
6161
nodes={thisPageNodes}
6262
renderItem={(node) => {
63-
return (
64-
<Preview key={node.id} root={design?.input} target={node} />
65-
);
63+
return <Preview key={node.id} target={node} />;
6664
}}
6765
renderFrameTitle={(p) => (
6866
<FrameTitleRenderer

editor/scaffolds/preview/index.tsx

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import React, { useEffect, useState } from "react";
2-
import styled from "@emotion/styled";
32
import { vanilla_presets } from "@grida/builder-config-preset";
43
import { designToCode, Result } from "@designto/code";
54
import { config } from "@designto/config";
@@ -8,23 +7,14 @@ import {
87
MainImageRepository,
98
} from "@design-sdk/core/assets-repository";
109
import type { ReflectSceneNode } from "@design-sdk/figma-node";
11-
import { DesignInput } from "@designto/config/input";
1210
import { VanillaRunner } from "components/app-runner/vanilla-app-runner";
11+
import { colorFromFills } from "@design-sdk/core/utils/colors";
1312

14-
export function Preview({
15-
target,
16-
root,
17-
}: {
18-
root: DesignInput;
19-
target: ReflectSceneNode;
20-
}) {
13+
export function Preview({ target }: { target: ReflectSceneNode }) {
2114
const [preview, setPreview] = useState<Result>();
2215

2316
const on_preview_result = (result: Result) => {
24-
//@ts-ignore
25-
// if (result.id == targetStateRef?.current?.id) {
2617
setPreview(result);
27-
// }
2818
};
2919

3020
useEffect(() => {
@@ -80,16 +70,18 @@ export function Preview({
8070
}
8171
}, [target?.id]);
8272

73+
const bg = colorFromFills(target.fills);
74+
8375
if (!preview) {
8476
return (
8577
<div
8678
style={{
87-
width: "100%",
88-
height: "100%",
89-
borderRadius: 4,
90-
boxShadow: "0px 0px 48px #00000020",
79+
width: target.width,
80+
height: target.height,
81+
backgroundColor: bg ? "#" + bg.hex : "transparent",
82+
borderRadius: 1,
9183
}}
92-
></div>
84+
/>
9385
);
9486
}
9587

externals/design-sdk

0 commit comments

Comments
 (0)