Просмотр исходного кода

Merge pull request #1105 from weseek/imprv/reactify-full-text-search-manager-3

Send http request with axios
Yuki Takei 6 лет назад
Родитель
Сommit
bff4aa7d57

+ 3 - 1
src/client/js/app.js

@@ -205,7 +205,9 @@ const adminFullTextSearchManagementElem = document.getElementById('admin-full-te
 if (adminFullTextSearchManagementElem != null) {
 
   ReactDOM.render(
-    <FullTextSearchManagement />,
+    <Provider inject={[appContainer]}>
+      <FullTextSearchManagement />
+    </Provider>,
     adminFullTextSearchManagementElem,
   );
 }

+ 27 - 3
src/client/js/components/Admin/FullTextSearchManagement/FullTextSearchPage.jsx

@@ -1,19 +1,43 @@
 import React, { Fragment } from 'react';
+import PropTypes from 'prop-types';
+
+import { createSubscribedElement } from '../../UnstatedUtils';
+import AppContainer from '../../../services/AppContainer';
 
 class FullTextSearchManagement extends React.Component {
 
   constructor(props) {
-    super();
+    super(props);
+
+    this.Buildindex = this.Buildindex.bind(this);
+  }
+
+  Buildindex() {
+
+    const { appContainer } = this.props;
+    const pageId = this.pageId;
+
+    appContainer.apiPost('/admin/search/build', { page_id: pageId });
   }
 
   render() {
     return (
       <Fragment>
-        <button type="submit" className="btn btn-inverse">Build Now</button>
+        <div>
+          <button type="submit" className="btn btn-inverse" onClick={this.Buildindex}>Build Now</button>
+        </div>
       </Fragment>
     );
   }
 
 }
 
-export default FullTextSearchManagement;
+const FullTextSearchManagementWrapper = (props) => {
+  return createSubscribedElement(FullTextSearchManagement, props, [AppContainer]);
+};
+
+FullTextSearchManagement.propTypes = {
+  appContainer: PropTypes.instanceOf(AppContainer).isRequired,
+};
+
+export default FullTextSearchManagementWrapper;