import React from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; class Drawio extends React.Component { constructor(props) { super(props); this.drawioContainer = React.createRef(); this.style = { borderRadius: 3, border: '1px solid #d7d7d7', margin: '20px 0', }; this.isPreview = this.props.isPreview; this.drawioContent = this.props.drawioContent; this.onEdit = this.onEdit.bind(this); } onEdit() { if (window.crowi != null) { window.crowi.launchDrawioModal('page', this.props.rangeLineNumberOfMarkdown.beginLineNumber, this.props.rangeLineNumberOfMarkdown.endLineNumber); } } componentDidMount() { const DrawioViewer = window.GraphViewer; if (DrawioViewer != null) { const mxgraphs = this.drawioContainer.getElementsByClassName('mxgraph'); if (mxgraphs.length > 0) { // GROWI では、mxgraph element は最初のものをレンダリングする前提とする const div = mxgraphs[0]; if (div != null) { div.innerHTML = ''; DrawioViewer.createViewerForElement(div); } } } } renderContents() { return this.drawioContent; } render() { return (