import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { Modal, ModalHeader, ModalBody, ModalFooter, } from 'reactstrap'; import { withTranslation } from 'react-i18next'; import { format } from 'date-fns'; import urljoin from 'url-join'; import { userPageRoot } from '@commons/util/path-utils'; import { pathUtils } from 'growi-commons'; import { createSubscribedElement } from './UnstatedUtils'; import AppContainer from '../services/AppContainer'; import PageContainer from '../services/PageContainer'; import PagePathAutoComplete from './PagePathAutoComplete'; const RenameModal = (props) => { const { t, appContainer, pageContainer } = props; const { path, pageId, revisionId } = pageContainer.state; const config = appContainer.getConfig(); const isReachable = config.isSearchServiceReachable; const userPageRootPath = userPageRoot(appContainer.currentUser); const parentPath = pathUtils.addTrailingSlash(path); const { crowi } = appContainer.config; const [destinationPathName, setDestinationPathName] = useState(path); const [pageNameInput, setPageNameInput] = useState(parentPath); // const [pageNameInput, setPageNameInput] = useState(path); const [errorCode, setErrorCode] = useState(null); const [errorMessage, setErrorMessage] = useState(null); function onChangeNewPathHandler(value) { setDestinationPathName(value); } async function clickRenameButtonHandler() { console.log('hoge'); try { console.log('test'); setErrorCode(null); setErrorMessage(null); const res = await appContainer.apiPost('/pages.rename', { page_id: pageId, new_path: pageNameInput }); console.log(res); const { page } = res; window.location.href = encodeURI(`${page.path}?rename=${path}`); } catch (err) { console.log('fuga'); setErrorCode(err.code); setErrorMessage(err.message); } } return ( { t('modal_rename.label.Move/Rename page') }

{path}

{crowi.url}
onChangeNewPathHandler(e.target.value)} />
); }; /** * Wrapper component for using unstated */ const ModalControlWrapper = (props) => { return createSubscribedElement(RenameModal, props, [AppContainer, PageContainer]); }; RenameModal.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, pageContainer: PropTypes.instanceOf(PageContainer).isRequired, }; export default withTranslation()(ModalControlWrapper);