1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.Composition = void 0;
|
4 | const react_1 = require("react");
|
5 | const CompositionManager_1 = require("./CompositionManager");
|
6 | const nonce_1 = require("./nonce");
|
7 | const register_root_1 = require("./register-root");
|
8 | const use_lazy_component_1 = require("./use-lazy-component");
|
9 | const validate_composition_id_1 = require("./validation/validate-composition-id");
|
10 | const validate_dimensions_1 = require("./validation/validate-dimensions");
|
11 | const validate_duration_in_frames_1 = require("./validation/validate-duration-in-frames");
|
12 | const validate_fps_1 = require("./validation/validate-fps");
|
13 | const 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 |
|
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 | };
|
67 | exports.Composition = Composition;
|
68 |
|
\ | No newline at end of file |