@atlaskit/editor-plugin-layout
Version:
Layout plugin for @atlaskit/editor-core
34 lines (33 loc) • 1.23 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.LayoutSSRReactContextsProvider = LayoutSSRReactContextsProvider;
var _react = _interopRequireDefault(require("react"));
var _reactIntl = require("react-intl");
var _coreUtils = require("@atlaskit/editor-common/core-utils");
/**
* Wraps the layout section nodeview children with the editor's actual
* IntlProvider during SSR streaming (renderToStaticMarkup). This ensures any
* descendants that call `useIntl()` (e.g. `BreakoutResizer`'s ARIA labels)
* have a valid intl context and do not throw during the static render pass.
*
* Outside of SSR streaming this is a no-op passthrough.
*
* Follows the same pattern as `MediaSSRReactContextsProvider` and
* `SyncBlockSSRReactContextsProvider`.
*/
function LayoutSSRReactContextsProvider(_ref) {
var children = _ref.children,
intl = _ref.intl;
if (!(0, _coreUtils.isSSRStreaming)() || !(0, _coreUtils.isSSR)()) {
return children;
}
if (!intl) {
return children;
}
return /*#__PURE__*/_react.default.createElement(_reactIntl.RawIntlProvider, {
value: intl
}, children);
}