瀏覽代碼

fix pages.js. add useState AppContainer PageContai

zahmis 5 年之前
父節點
當前提交
28473886a9
共有 2 個文件被更改,包括 24 次插入9 次删除
  1. 23 5
      src/client/js/components/PageAccessoriesModal.jsx
  2. 1 4
      src/server/routes/apiv3/pages.js

+ 23 - 5
src/client/js/components/PageAccessoriesModal.jsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 
 
 import {
 import {
@@ -6,6 +6,8 @@ import {
 } from 'reactstrap';
 } from 'reactstrap';
 
 
 import { withTranslation } from 'react-i18next';
 import { withTranslation } from 'react-i18next';
+import AppContainer from '../services/AppContainer';
+import PageContainer from '../services/PageContainer';
 
 
 import PageListIcon from './Icons/PageListIcon';
 import PageListIcon from './Icons/PageListIcon';
 import TimeLineIcon from './Icons/TimeLineIcon';
 import TimeLineIcon from './Icons/TimeLineIcon';
@@ -18,9 +20,13 @@ import PageAttachment from './PageAttachment';
 import Page from './PageList/Page';
 import Page from './PageList/Page';
 
 
 const PageAccessoriesModal = (props) => {
 const PageAccessoriesModal = (props) => {
-  const { t, pageAccessoriesContainer } = props;
+  const {
+    t, pageAccessoriesContainer, pageContainer, appContainer,
+  } = props;
+  const { path } = pageContainer;
   const { switchActiveTab } = pageAccessoriesContainer;
   const { switchActiveTab } = pageAccessoriesContainer;
   const { activeTab } = pageAccessoriesContainer.state;
   const { activeTab } = pageAccessoriesContainer.state;
+  const [pages, setPages] = useState([]);
 
 
   function closeModalHandler() {
   function closeModalHandler() {
     if (props.onClose == null) {
     if (props.onClose == null) {
@@ -29,6 +35,16 @@ const PageAccessoriesModal = (props) => {
     props.onClose();
     props.onClose();
   }
   }
 
 
+  async function getPagesList() {
+    const res = await appContainer.apiv3Get('/pages/list', { path });
+    setPages(res);
+    // return pages.map(pages => (
+    //   <li key={pages._id}>
+    //     <Page page={pages} />
+    //   </li>
+    // ));
+  }
+
   return (
   return (
     <React.Fragment>
     <React.Fragment>
       <Modal
       <Modal
@@ -74,7 +90,7 @@ const PageAccessoriesModal = (props) => {
           </Nav>
           </Nav>
           <TabContent activeTab={activeTab}>
           <TabContent activeTab={activeTab}>
             <TabPane tabId="pagelist">
             <TabPane tabId="pagelist">
-              {pageAccessoriesContainer.state.activeComponents.has('pagelist') && <Page />}
+              {pageAccessoriesContainer.state.activeComponents.has('pagelist') && getPagesList() }
             </TabPane>
             </TabPane>
             <TabPane tabId="timeline"></TabPane>
             <TabPane tabId="timeline"></TabPane>
             <TabPane tabId="recent-changes"></TabPane>
             <TabPane tabId="recent-changes"></TabPane>
@@ -92,14 +108,16 @@ const PageAccessoriesModal = (props) => {
 /**
 /**
  * Wrapper component for using unstated
  * Wrapper component for using unstated
  */
  */
-const PageAccessoriesModalWrapper = withUnstatedContainers(PageAccessoriesModal, [PageAccessoriesContainer]);
+const PageAccessoriesModalWrapper = withUnstatedContainers(PageAccessoriesModal, [PageAccessoriesContainer], [AppContainer], [PageContainer]);
 
 
 
 
 PageAccessoriesModal.propTypes = {
 PageAccessoriesModal.propTypes = {
   t: PropTypes.func.isRequired, //  i18next
   t: PropTypes.func.isRequired, //  i18next
   // pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
   // pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
   pageAccessoriesContainer: PropTypes.instanceOf(PageAccessoriesContainer).isRequired,
   pageAccessoriesContainer: PropTypes.instanceOf(PageAccessoriesContainer).isRequired,
-
+  appContainer: PropTypes.instanceOf(AppContainer),
+  pageContainer: PropTypes.instanceOf(PageContainer),
+  path: PropTypes,
   isOpen: PropTypes.bool.isRequired,
   isOpen: PropTypes.bool.isRequired,
   onClose: PropTypes.func,
   onClose: PropTypes.func,
 };
 };

+ 1 - 4
src/server/routes/apiv3/pages.js

@@ -84,10 +84,7 @@ module.exports = (crowi) => {
   });
   });
 
 
   router.get('/list', accessTokenParser, loginRequired, async(req, res) => {
   router.get('/list', accessTokenParser, loginRequired, async(req, res) => {
-
-    // path は一時的なものです。クライアントを実装した際に渡します。GW-3297 or 3298
-    const path = '/hoge';
-
+    const { path } = req.query;
     try {
     try {
       const result = await Page.findListWithDescendants(path, req.user);
       const result = await Page.findListWithDescendants(path, req.user);
       return res.apiv3(result);
       return res.apiv3(result);