Przeglądaj źródła

adding error handling

zahmis 5 lat temu
rodzic
commit
bba156ec82

+ 9 - 5
src/client/js/components/Page/PageManagement.jsx

@@ -18,12 +18,11 @@ const PageManagement = (props) => {
 
 
   const { currentUser } = appContainer;
   const { currentUser } = appContainer;
   const isTopPagePath = isTopPage(path);
   const isTopPagePath = isTopPage(path);
-
   const [isPageRenameModalShown, setIsPageRenameModalShown] = useState(false);
   const [isPageRenameModalShown, setIsPageRenameModalShown] = useState(false);
   const [isPageDuplicateModalShown, setIsPageDuplicateModalShown] = useState(false);
   const [isPageDuplicateModalShown, setIsPageDuplicateModalShown] = useState(false);
   const [isPageTemplateModalShown, setIsPageTempleteModalShown] = useState(false);
   const [isPageTemplateModalShown, setIsPageTempleteModalShown] = useState(false);
   const [isPageDeleteModalShown, setIsPageDeleteModalShown] = useState(false);
   const [isPageDeleteModalShown, setIsPageDeleteModalShown] = useState(false);
-  const [duplicateModalPath, setDuplicateModalPath] = useState(false);
+  const [duplicateModalPaths, setDuplicateModalPaths] = useState(false);
 
 
   function openPageRenameModalHandler() {
   function openPageRenameModalHandler() {
     setIsPageRenameModalShown(true);
     setIsPageRenameModalShown(true);
@@ -35,8 +34,13 @@ const PageManagement = (props) => {
 
 
   async function openPageDuplicateModalHandler() {
   async function openPageDuplicateModalHandler() {
     setIsPageDuplicateModalShown(true);
     setIsPageDuplicateModalShown(true);
-    const res = await appContainer.apiv3Get('/pages/duplicate', { path });
-    setDuplicateModalPath(res.data.duplicatePath);
+    try {
+      const res = await appContainer.apiv3Get('/pages/duplicate', { path });
+      setDuplicateModalPaths(res.data.duplicatePaths);
+    }
+    catch (err) {
+      console.log('エラーやで');
+    }
   }
   }
 
 
   function closePageDuplicateModalHandler() {
   function closePageDuplicateModalHandler() {
@@ -97,7 +101,7 @@ const PageManagement = (props) => {
         <PageDuplicateModal
         <PageDuplicateModal
           isOpen={isPageDuplicateModalShown}
           isOpen={isPageDuplicateModalShown}
           onClose={closePageDuplicateModalHandler}
           onClose={closePageDuplicateModalHandler}
-          pageDuplicateModalPath={duplicateModalPath}
+          pageDuplicateModalPaths={duplicateModalPaths}
         />
         />
         <CreateTemplateModal
         <CreateTemplateModal
           isOpen={isPageTemplateModalShown}
           isOpen={isPageTemplateModalShown}

+ 6 - 2
src/client/js/components/PageDuplicateModal.jsx

@@ -108,7 +108,11 @@ const PageDuplicateModal = (props) => {
         </div>
         </div>
       </ModalBody>
       </ModalBody>
       <ModalFooter>
       <ModalFooter>
-        <ApiErrorMessage errorCode={errorCode} errorMessage={errorMessage} targetPath={pageNameInput} />
+        <ApiErrorMessage
+          errorCode={errorCode}
+          errorMessage={errorMessage}
+          targetPath={pageNameInput}
+        />
         <button type="button" className="btn btn-primary" onClick={duplicate}>
         <button type="button" className="btn btn-primary" onClick={duplicate}>
           Duplicate page
           Duplicate page
         </button>
         </button>
@@ -131,7 +135,7 @@ PageDuplicateModal.propTypes = {
 
 
   isOpen: PropTypes.bool.isRequired,
   isOpen: PropTypes.bool.isRequired,
   onClose: PropTypes.func.isRequired,
   onClose: PropTypes.func.isRequired,
-  pageDuplicateModalPath: PropTypes.array,
+  pageDuplicateModalPaths: PropTypes.array,
 };
 };
 
 
 export default withTranslation()(PageDuplicateModallWrapper);
 export default withTranslation()(PageDuplicateModallWrapper);

+ 5 - 5
src/server/routes/apiv3/pages.js

@@ -82,13 +82,13 @@ module.exports = (crowi) => {
     }
     }
   });
   });
 
 
-  router.get('/duplicate', async(req, res) => {
+  router.get('/duplicate', loginRequired, async(req, res) => {
     const { path } = req.query;
     const { path } = req.query;
     const searchWord = new RegExp(`^${path}`);
     const searchWord = new RegExp(`^${path}`);
-    const duplicateData = await Page.find({ path: { $in: searchWord } });
-    const duplicatePath = duplicateData.map(element => element.path);
-    console.log(duplicatePath);
-    return res.apiv3({ duplicatePath });
+    const duplicateData = await Page.find({ path: searchWord });
+    const duplicatePaths = duplicateData.map(element => element.path);
+    console.log(duplicatePaths);
+    return res.apiv3({ duplicatePaths });
   });
   });
 
 
   return router;
   return router;