Files
story-studio/remotion/node_modules/@remotion/studio/dist/helpers/use-studio-canvas-dimensions.js
2026-02-21 10:33:18 +01:00

60 lines
2.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useStudioCanvasDimensions = void 0;
const player_1 = require("@remotion/player");
const react_1 = require("react");
const remotion_1 = require("remotion");
const useStudioCanvasDimensions = ({ canvasSize, contentDimensions, assetMetadata, }) => {
const { size: previewSize } = (0, react_1.useContext)(remotion_1.Internals.PreviewSizeContext);
const { centerX, centerY, scale } = (0, react_1.useMemo)(() => {
if (contentDimensions === 'none' ||
contentDimensions === null ||
(assetMetadata && assetMetadata.type === 'not-found') ||
!canvasSize) {
return {
centerX: previewSize.translation.x,
centerY: previewSize.translation.y,
scale: 1,
};
}
return player_1.PlayerInternals.calculateCanvasTransformation({
canvasSize,
compositionHeight: contentDimensions.height,
compositionWidth: contentDimensions.width,
previewSize: previewSize.size,
});
}, [
canvasSize,
contentDimensions,
previewSize.size,
previewSize.translation.y,
previewSize.translation.x,
assetMetadata,
]);
const canvasPosition = (0, react_1.useMemo)(() => {
return {
left: centerX - previewSize.translation.x,
top: centerY - previewSize.translation.y,
width: contentDimensions === 'none' || !contentDimensions
? (canvasSize === null || canvasSize === void 0 ? void 0 : canvasSize.width) || 0
: contentDimensions.width * scale,
height: contentDimensions === 'none' || !contentDimensions
? (canvasSize === null || canvasSize === void 0 ? void 0 : canvasSize.height) || 0
: contentDimensions.height * scale,
};
}, [
scale,
centerX,
previewSize.translation.x,
previewSize.translation.y,
centerY,
canvasSize,
contentDimensions,
]);
return {
canvasPosition,
scale,
};
};
exports.useStudioCanvasDimensions = useStudioCanvasDimensions;