@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
54 lines (50 loc) • 1.57 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import React from 'react';
// Ignored via go/ees005
// eslint-disable-next-line import/no-namespace
import ChromeCollapsed from '../ui/ChromeCollapsed';
// eslint-disable-next-line @typescript-eslint/no-explicit-any
// Ignored via go/ees005
// eslint-disable-next-line @repo/internal/react/no-class-components
export default class CollapsedEditor extends React.Component {
constructor(...args) {
super(...args);
_defineProperty(this, "state", {
editorModules: CollapsedEditor.editorModules
});
}
componentDidMount() {
if (!this.state.editorModules) {
this.loadEditorModules();
}
}
loadEditorModules() {
import( /* webpackChunkName:"@atlaskit-internal_editor-core-async" */'../').then(modules => {
CollapsedEditor.editorModules = modules;
this.setState({
editorModules: modules
});
});
}
render() {
if (!this.props.isExpanded) {
return /*#__PURE__*/React.createElement(ChromeCollapsed, {
onFocus: this.props.onClickToExpand,
text: this.props.placeholder
});
}
if (!this.state.editorModules) {
// Ignored via go/ees007
// eslint-disable-next-line @atlaskit/editor/enforce-todo-comment-format
// TODO: Proper loading state
return /*#__PURE__*/React.createElement(ChromeCollapsed, {
text: "Loading..."
});
}
const {
Editor,
...rest
} = this.state.editorModules;
return this.props.renderEditor(Editor, rest);
}
}