@remotion/studio
Version:
APIs for interacting with the Remotion Studio
35 lines (34 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TriggerWebRender = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const web_renderer_1 = require("@remotion/web-renderer");
const react_1 = require("react");
const remotion_1 = require("remotion");
const Button_1 = require("../Button");
const imperative_state_1 = require("../Timeline/imperative-state");
const button = {
paddingLeft: 7,
paddingRight: 7,
paddingTop: 7,
paddingBottom: 7,
};
const TriggerWebRender = () => {
const video = remotion_1.Internals.useVideo();
const frame = (0, imperative_state_1.getCurrentFrame)();
const onClick = (0, react_1.useCallback)(() => {
if (!video) {
throw new Error('No video found');
}
(0, web_renderer_1.renderStillOnWeb)({
Component: video.component,
width: video.width,
height: video.height,
fps: video.fps,
durationInFrames: video.durationInFrames,
frame,
});
}, [video, frame]);
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { id: "render-modal-button", onClick: onClick, buttonContainerStyle: button, disabled: false, children: (0, jsx_runtime_1.jsx)("span", { children: "Render" }) }));
};
exports.TriggerWebRender = TriggerWebRender;