remotion
Version:
Make videos programmatically
54 lines (53 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Artifact = void 0;
const react_1 = require("react");
const RenderAssetManager_1 = require("./RenderAssetManager");
const get_remotion_environment_1 = require("./get-remotion-environment");
const use_current_frame_1 = require("./use-current-frame");
const Artifact = ({ filename, content }) => {
const { registerRenderAsset, unregisterRenderAsset } = (0, react_1.useContext)(RenderAssetManager_1.RenderAssetManager);
const [env] = (0, react_1.useState)(() => (0, get_remotion_environment_1.getRemotionEnvironment)());
const frame = (0, use_current_frame_1.useCurrentFrame)();
const [id] = (0, react_1.useState)(() => {
return String(Math.random());
});
(0, react_1.useEffect)(() => {
if (!env.isRendering) {
return;
}
if (content instanceof Uint8Array) {
registerRenderAsset({
type: 'artifact',
id,
content: btoa(new TextDecoder('utf8').decode(content)),
filename,
frame,
binary: true,
});
}
else {
registerRenderAsset({
type: 'artifact',
id,
content,
filename,
frame,
binary: false,
});
}
return () => {
return unregisterRenderAsset(id);
};
}, [
content,
env.isRendering,
filename,
frame,
id,
registerRenderAsset,
unregisterRenderAsset,
]);
return null;
};
exports.Artifact = Artifact;