@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
43 lines (42 loc) • 1.72 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useUniversalPreset;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _hooks = require("@atlaskit/editor-common/hooks");
var _createUniversalPreset = require("../create-editor/create-universal-preset");
var _presetUtils = require("../create-editor/preset-utils");
function useUniversalPreset(_ref) {
var props = _ref.props,
initialPluginConfiguration = _ref.initialPluginConfiguration;
var previousEditorProps = (0, _hooks.usePreviousState)(props);
var _useState = (0, _react.useState)(function () {
return (0, _createUniversalPreset.createUniversalPreset)({
props: props,
prevProps: previousEditorProps,
initialPluginConfiguration: initialPluginConfiguration
});
}),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
preset = _useState2[0],
setPreset = _useState2[1];
(0, _react.useLayoutEffect)(function () {
if (!previousEditorProps) {
return;
}
var recreate = (0, _presetUtils.shouldRecreatePreset)(previousEditorProps, props);
if (!recreate) {
return;
}
// we are not comparing the previous initialPluginConfiguration to the new one assuming that it never changes
setPreset((0, _createUniversalPreset.createUniversalPreset)({
props: props,
prevProps: previousEditorProps,
initialPluginConfiguration: initialPluginConfiguration
}));
}, [props, previousEditorProps, initialPluginConfiguration]);
return preset;
}