diff --git a/packages/editor/src/editor/Canvas.tsx b/packages/editor/src/editor/Canvas.tsx index 0910cb0..7fdc2cf 100644 --- a/packages/editor/src/editor/Canvas.tsx +++ b/packages/editor/src/editor/Canvas.tsx @@ -1,5 +1,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import type { Screen, WidgetNode } from '@astralview/sdk'; +import { assertNever } from '@astralview/sdk'; import { Button, Space, Typography } from 'antd'; import type { ResizeHandle } from './types'; import { rectFromPoints } from './geometry'; @@ -232,7 +233,7 @@ export function Canvas(props: CanvasProps) { const p = clientToWorld(e.clientX, e.clientY); if (!p) return; - const additive = e.ctrlKey || e.metaKey; + const additive = e.ctrlKey || e.metaKey || e.shiftKey; if (!additive) props.onSelectSingle(undefined); props.onBeginBoxSelect(e, p.x, p.y, additive); setBox(rectFromPoints({ x: p.x, y: p.y }, { x: p.x, y: p.y })); @@ -555,120 +556,137 @@ function NodeView(props: { borderStyle: node.hidden ? 'dashed' : 'solid', }} > - {node.type === 'text' ? ( -
- { - if (!node.props.link) return; - const head = node.props.linkHead ?? 'http://'; - window.open(`${head}${node.props.link}`); - }} - > - {node.props.text} - -
- ) : node.type === 'image' ? ( -
- -
- ) : node.type === 'iframe' ? ( -
-