Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion packages/media-parser/src/writers/node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ const createContent = (filename: string): CreateContent => {
},
getBlob: async () => {
const file = await fs.promises.readFile(filename);
// @ts-expect-error
Comment thread
0x-mayank marked this conversation as resolved.
return new Blob([file]);
},
};
Expand Down
74 changes: 45 additions & 29 deletions packages/studio/src/components/SelectedOutlineElement.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ type SelectedOutlineElementProps = {
interaction: TimelineSelectionInteraction,
) => void;
readonly scale: number;
readonly renderControls?: boolean;
readonly renderPolygon?: boolean;
};

const SelectedOutlineElementUnmemoized: React.FC<
Expand All @@ -96,6 +98,8 @@ const SelectedOutlineElementUnmemoized: React.FC<
onSnapPointsChange,
onSelect,
scale,
renderControls = true,
renderPolygon = true,
}) => {
const {previewServerState} = useContext(StudioServerConnectionCtx);
const canConfigureApps = canUseEditorPicker(
Expand Down Expand Up @@ -506,41 +510,51 @@ const SelectedOutlineElementUnmemoized: React.FC<

return (
<>
<SelectedOutlinePolygon
compositionHeight={compositionHeight}
compositionWidth={compositionWidth}
dragging={dragging}
getAllDragOutlines={getAllDragOutlines}
getAllDragTargets={getAllDragTargets}
getLayoutTarget={getLayoutTarget}
getTarget={getTarget}
hasTarget={layoutTarget !== undefined}
hovered={hovered}
outline={outline}
onContextMenuOpen={onContextMenuOpen}
onContextMenuOpenChange={onContextMenuOpenChange}
onDraggingChange={onDraggingChange}
onHoverChange={onHoverChange}
onSnapPointsChange={onSnapPointsChange}
onSelect={onSelect}
onDoubleClickTarget={onDoubleClickTarget}
scale={scale}
showSelectedOutline={layoutTarget?.showSelectedOutline ?? false}
/>
{layoutTarget?.selectedForRotation && controlTarget?.rotationDrag ? (
{renderPolygon ? (
<SelectedOutlinePolygon
compositionHeight={compositionHeight}
compositionWidth={compositionWidth}
dragging={dragging}
getAllDragOutlines={getAllDragOutlines}
getAllDragTargets={getAllDragTargets}
getLayoutTarget={getLayoutTarget}
getTarget={getTarget}
hasTarget={layoutTarget !== undefined}
hovered={hovered}
outline={outline}
onContextMenuOpen={onContextMenuOpen}
onContextMenuOpenChange={onContextMenuOpenChange}
onDraggingChange={onDraggingChange}
onHoverChange={onHoverChange}
onSnapPointsChange={onSnapPointsChange}
onSelect={onSelect}
onDoubleClickTarget={onDoubleClickTarget}
scale={scale}
showSelectedOutline={layoutTarget?.showSelectedOutline ?? false}
/>
) : null}

{renderControls &&
layoutTarget?.selectedForRotation &&
controlTarget?.rotationDrag ? (
<SelectedOutlineCanvasRotation
getLatestTargetByKey={getLatestTargetByKey}
layoutTarget={layoutTarget}
onDraggingChange={onDraggingChange}
outline={outline}
/>
) : null}
<SelectedOutlineCropControls
outline={outline}
onDraggingChange={onDraggingChange}
target={controlTarget}
/>
{controlTarget?.cropDrag === null &&

{renderControls ? (
<SelectedOutlineCropControls
outline={outline}
onDraggingChange={onDraggingChange}
target={controlTarget}
/>
) : null}
Comment on lines +500 to +506

{renderControls &&
controlTarget?.cropDrag === null &&
(layoutTarget?.containsSelection || hovered)
? controlLayout.scaleEdges.map((edge) => (
<SelectedOutlineScaleEdgeLine
Expand All @@ -563,7 +577,9 @@ const SelectedOutlineElementUnmemoized: React.FC<
/>
))
: null}
{controlTarget?.cropDrag === null &&

{renderControls &&
controlTarget?.cropDrag === null &&
(layoutTarget?.containsSelection || hovered)
? controlLayout.rotationCorners.map(({corner, point}) => (
<SelectedOutlineRotationCornerHandle
Expand Down
23 changes: 23 additions & 0 deletions packages/studio/src/components/SelectedOutlineRenderer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,29 @@ const SelectedOutlineRendererUnmemoized: React.FC<{
onSelect={onSelect}
scale={scale}
layoutTarget={targetsByKey.get(outline.key)}
renderControls={false}
/>
))}
{/* Render all transform handles after all polygons so later polygons cannot cover them. */}
{outlinesForRendering.map((outline) => (
Comment thread
0x-mayank marked this conversation as resolved.
<SelectedOutlineElement
key={`${outline.key}-controls`}
compositionHeight={compositionHeight}
compositionWidth={compositionWidth}
dragging={dragging}
getAllDragOutlines={getAllDragOutlines}
getAllDragTargets={getAllDragTargets}
getAllRotationDragTargets={getAllRotationDragTargets}
getAllScaleDragTargets={getAllScaleDragTargets}
getLatestTargetByKey={getLatestOutlineTargetByKey}
outline={outline}
onDraggingChange={onDraggingChange}
onContextMenuOpenChange={onContextMenuOpenChange}
onSnapPointsChange={onSnapPointsChange}
onSelect={onSelect}
scale={scale}
layoutTarget={targetsByKey.get(outline.key)}
renderPolygon={false}
/>
Comment on lines +363 to 381
))}
{/* Keep UV controls above every transparent outline polygon so SVG hit-testing reaches the handles first. */}
Expand Down
Loading