UNPKG

2.66 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.Composition = void 0;
4const react_1 = require("react");
5const CompositionManager_1 = require("./CompositionManager");
6const nonce_1 = require("./nonce");
7const register_root_1 = require("./register-root");
8const use_lazy_component_1 = require("./use-lazy-component");
9const validate_composition_id_1 = require("./validation/validate-composition-id");
10const validate_dimensions_1 = require("./validation/validate-dimensions");
11const validate_duration_in_frames_1 = require("./validation/validate-duration-in-frames");
12const validate_fps_1 = require("./validation/validate-fps");
13const Composition = ({ width, height, fps, durationInFrames, id, defaultProps, ...compProps }) => {
14 const { registerComposition, unregisterComposition } = (0, react_1.useContext)(CompositionManager_1.CompositionManager);
15 const lazy = (0, use_lazy_component_1.useLazyComponent)(compProps);
16 const nonce = (0, nonce_1.useNonce)();
17 (0, react_1.useEffect)(() => {
18 // Ensure it's a URL safe id
19 if (!id) {
20 throw new Error('No id for composition passed.');
21 }
22 (0, validate_composition_id_1.validateCompositionId)(id);
23 (0, validate_dimensions_1.validateDimension)(width, 'width', 'of the <Composition/> component');
24 (0, validate_dimensions_1.validateDimension)(height, 'height', 'of the <Composition/> component');
25 (0, validate_duration_in_frames_1.validateDurationInFrames)(durationInFrames, 'of the <Composition/> component');
26 (0, validate_fps_1.validateFps)(fps, 'as a prop of the <Composition/> component');
27 registerComposition({
28 durationInFrames,
29 fps,
30 height,
31 width,
32 id,
33 component: lazy,
34 defaultProps,
35 nonce,
36 });
37 if ((0, register_root_1.getIsEvaluation)()) {
38 (0, register_root_1.addStaticComposition)({
39 component: lazy,
40 durationInFrames,
41 fps,
42 height,
43 id,
44 width,
45 nonce,
46 defaultProps,
47 });
48 }
49 return () => {
50 unregisterComposition(id);
51 (0, register_root_1.removeStaticComposition)(id);
52 };
53 }, [
54 durationInFrames,
55 fps,
56 height,
57 lazy,
58 id,
59 defaultProps,
60 registerComposition,
61 unregisterComposition,
62 width,
63 nonce,
64 ]);
65 return null;
66};
67exports.Composition = Composition;
68//# sourceMappingURL=Composition.js.map
\No newline at end of file