@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
24 lines (23 loc) • 1.15 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useElementWidth = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireDefault(require("react"));
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
var useElementWidth = exports.useElementWidth = function useElementWidth(ref, _ref) {
var skip = _ref.skip;
var _React$useState = _react.default.useState(undefined),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
elementWidth = _React$useState2[0],
setWidth = _React$useState2[1];
_react.default.useEffect(function () {
if (!skip && ref.current && !(0, _platformFeatureFlags.fg)('platform_editor_prevent_toolbar_width_reflow')) {
// eslint-disable-next-line @atlassian/perf-linting/no-chain-state-updates -- Ignored via go/ees017 (to be fixed)
setWidth(Math.round(ref.current.getBoundingClientRect().width));
}
}, [skip, setWidth, ref]);
return elementWidth;
};