import React from 'react'; import PropTypes from 'prop-types'; import { Modal, ModalHeader, ModalBody } from 'reactstrap'; import PublishLink from './PublishLink'; import PageContainer from '../../services/PageContainer'; import { withUnstatedContainers } from '../UnstatedUtils'; class LinkEditModal extends React.PureComponent { constructor(props) { super(props); this.state = { show: false, isUseRelativePath: false, linkInputValue: '', labelInputValue: '', linkerType: 'pukiwikiLink', }; this.cancel = this.cancel.bind(this); this.toggleIsUseRelativePath = this.toggleIsUseRelativePath.bind(this); this.handleChangeLinkInput = this.handleChangeLinkInput.bind(this); this.handleChangeLabelInput = this.handleChangeLabelInput.bind(this); this.handleSelecteLinkerType = this.handleSelecteLinkerType.bind(this); this.showLog = this.showLog.bind(this); } show() { this.setState({ show: true }); } cancel() { this.hide(); } hide() { this.setState({ show: false, }); } toggleIsUseRelativePath() { if (this.state.linkerType === 'growiLink') { return; } this.setState({ isUseRelativePath: !this.state.isUseRelativePath }); } renderPreview() { // TODO GW-2658 } insertLinkIntoEditor() { // TODO GW-2659 } showLog() { console.log(this.state.linkInputValue); } handleChangeLinkInput(linkValue) { this.setState({ linkInputValue: linkValue }); } handleChangeLabelInput(labelValue) { this.setState({ labelInputValue: labelValue }); } handleSelecteLinkerType(linkerType) { if (this.state.isUseRelativePath && linkerType === 'growiLink') { this.toggleIsUseRelativePath(); } this.setState({ linkerType }); } render() { const { pageContainer } = this.props; return ( Edit Links
this.handleChangeLinkInput(e.target.value)} />
{this.renderPreview} render preview
this.handleChangeLabelInput(e.target.value)} disabled={this.state.linkerType === 'growiLink'} />
{this.renderPreview} render preview
); } } LinkEditModal.propTypes = { pageContainer: PropTypes.instanceOf(PageContainer).isRequired, }; /** * Wrapper component for using unstated */ const LinkEditModalWrapper = withUnstatedContainers(LinkEditModal, [PageContainer]); export default LinkEditModalWrapper;