@remotion/studio
Version:
APIs for interacting with the Remotion Studio
22 lines (21 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.visualControl = void 0;
const react_1 = require("react");
const remotion_1 = require("remotion");
const visual_control_store_1 = require("../visual-controls/visual-control-store");
const VisualControls_1 = require("../visual-controls/VisualControls");
const visualControl = (key, value, schema) => {
// Subscribe to store changes so the calling component
// re-renders when a visual control value is edited in the sidebar.
// eslint-disable-next-line react-hooks/rules-of-hooks
(0, react_1.useSyncExternalStore)(visual_control_store_1.visualControlStore.subscribe, visual_control_store_1.visualControlStore.getSnapshot, visual_control_store_1.visualControlStore.getSnapshot);
if ((0, remotion_1.getRemotionEnvironment)().isRendering) {
return value;
}
if (!VisualControls_1.visualControlRef.current) {
return value;
}
return VisualControls_1.visualControlRef.current.globalVisualControl(key, value, schema);
};
exports.visualControl = visualControl;