Explorar el Código

set container for each layout

itizawa hace 6 años
padre
commit
06f0ed1a06

+ 19 - 5
src/client/js/components/Admin/Customize/layout/CustomizeCrowiLayout.jsx

@@ -2,14 +2,25 @@ import React from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 import { withTranslation } from 'react-i18next';
 import { withTranslation } from 'react-i18next';
 
 
+import AppContainer from '../../../../services/AppContainer';
+import AdminCustomizeContainer from '../../../../services/AdminCustomizeContainer';
+import { createSubscribedElement } from '../../../UnstatedUtils';
+
 class CustomizeCrowiLayout extends React.Component {
 class CustomizeCrowiLayout extends React.Component {
 
 
   render() {
   render() {
+    const { adminCustomizeContainer } = this.props;
+
     return (
     return (
       <div className="col-sm-4">
       <div className="col-sm-4">
         <h4>
         <h4>
           <div className="radio radio-primary">
           <div className="radio radio-primary">
-            <input type="radio" id="radioLayoutCrowi" checked={this.props.currentLayout === 'crowi'} onChange={() => this.props.onChangeLayout('crowi')} />
+            <input
+              type="radio"
+              id="radioLayoutCrowi"
+              checked={adminCustomizeContainer.state.currentLayout === 'crowi'}
+              onChange={() => adminCustomizeContainer.switchLayoutType('crowi')}
+            />
             <label htmlFor="radioLayoutCrowi">
             <label htmlFor="radioLayoutCrowi">
                 Crowi Classic Layout
                 Crowi Classic Layout
             </label>
             </label>
@@ -31,11 +42,14 @@ class CustomizeCrowiLayout extends React.Component {
 
 
 }
 }
 
 
+const CustomizeCrowiLayoutWrapper = (props) => {
+  return createSubscribedElement(CustomizeCrowiLayout, props, [AppContainer, AdminCustomizeContainer]);
+};
+
 CustomizeCrowiLayout.propTypes = {
 CustomizeCrowiLayout.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   t: PropTypes.func.isRequired, // i18next
-
-  currentLayout: PropTypes.string.isRequired,
-  onChangeLayout: PropTypes.func.isRequired,
+  appContainer: PropTypes.instanceOf(AppContainer).isRequired,
+  adminCustomizeContainer: PropTypes.instanceOf(AdminCustomizeContainer).isRequired,
 };
 };
 
 
-export default withTranslation()(CustomizeCrowiLayout);
+export default withTranslation()(CustomizeCrowiLayoutWrapper);

+ 20 - 5
src/client/js/components/Admin/Customize/layout/CustomizeGrowiLayout.jsx

@@ -2,14 +2,25 @@ import React from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 import { withTranslation } from 'react-i18next';
 import { withTranslation } from 'react-i18next';
 
 
+import AppContainer from '../../../../services/AppContainer';
+import AdminCustomizeContainer from '../../../../services/AdminCustomizeContainer';
+import { createSubscribedElement } from '../../../UnstatedUtils';
+
 class CustomizeGrowiLayout extends React.Component {
 class CustomizeGrowiLayout extends React.Component {
 
 
   render() {
   render() {
+    const { adminCustomizeContainer } = this.props;
+
     return (
     return (
       <div className="col-sm-4">
       <div className="col-sm-4">
         <h4>
         <h4>
           <div className="radio radio-primary">
           <div className="radio radio-primary">
-            <input type="radio" id="radioLayoutGrowi" checked={this.props.currentLayout === 'growi'} onChange={() => this.props.onChangeLayout('growi')} />
+            <input
+              type="radio"
+              id="radioLayoutGrowi"
+              checked={adminCustomizeContainer.state.currentLayout === 'growi'}
+              onChange={() => adminCustomizeContainer.switchLayoutType('growi')}
+            />
             <label htmlFor="radioLayoutGrowi">
             <label htmlFor="radioLayoutGrowi">
               GROWI Enhanced Layout <small className="text-success">(Recommended)</small>
               GROWI Enhanced Layout <small className="text-success">(Recommended)</small>
             </label>
             </label>
@@ -31,11 +42,15 @@ class CustomizeGrowiLayout extends React.Component {
 
 
 }
 }
 
 
+
+const CustomizeGrowiLayoutWrapper = (props) => {
+  return createSubscribedElement(CustomizeGrowiLayout, props, [AppContainer, AdminCustomizeContainer]);
+};
+
 CustomizeGrowiLayout.propTypes = {
 CustomizeGrowiLayout.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   t: PropTypes.func.isRequired, // i18next
-
-  currentLayout: PropTypes.string.isRequired,
-  onChangeLayout: PropTypes.func.isRequired,
+  appContainer: PropTypes.instanceOf(AppContainer).isRequired,
+  adminCustomizeContainer: PropTypes.instanceOf(AdminCustomizeContainer).isRequired,
 };
 };
 
 
-export default withTranslation()(CustomizeGrowiLayout);
+export default withTranslation()(CustomizeGrowiLayoutWrapper);

+ 19 - 5
src/client/js/components/Admin/Customize/layout/CustomizeKibelaLayout.jsx

@@ -2,14 +2,25 @@ import React from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 import { withTranslation } from 'react-i18next';
 import { withTranslation } from 'react-i18next';
 
 
+import AppContainer from '../../../../services/AppContainer';
+import AdminCustomizeContainer from '../../../../services/AdminCustomizeContainer';
+import { createSubscribedElement } from '../../../UnstatedUtils';
+
 class CustomizeKibelaLayout extends React.Component {
 class CustomizeKibelaLayout extends React.Component {
 
 
   render() {
   render() {
+    const { adminCustomizeContainer } = this.props;
+
     return (
     return (
       <div className="col-sm-4">
       <div className="col-sm-4">
         <h4>
         <h4>
           <div className="radio radio-primary">
           <div className="radio radio-primary">
-            <input type="radio" id="radioLayoutKibela" checked={this.props.currentLayout === 'kibela'} onChange={() => this.props.onChangeLayout('kibela')} />
+            <input
+              type="radio"
+              id="radioLayoutKibela"
+              checked={adminCustomizeContainer.state.currentLayout === 'kibela'}
+              onChange={() => adminCustomizeContainer.switchLayoutType('kibela')}
+            />
             <label htmlFor="radioLayoutKibela">
             <label htmlFor="radioLayoutKibela">
               Kibela Like Layout
               Kibela Like Layout
             </label>
             </label>
@@ -31,11 +42,14 @@ class CustomizeKibelaLayout extends React.Component {
 
 
 }
 }
 
 
+const CustomizeKibelaLayoutWrapper = (props) => {
+  return createSubscribedElement(CustomizeKibelaLayout, props, [AppContainer, AdminCustomizeContainer]);
+};
+
 CustomizeKibelaLayout.propTypes = {
 CustomizeKibelaLayout.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   t: PropTypes.func.isRequired, // i18next
-
-  currentLayout: PropTypes.string.isRequired,
-  onChangeLayout: PropTypes.func.isRequired,
+  appContainer: PropTypes.instanceOf(AppContainer).isRequired,
+  adminCustomizeContainer: PropTypes.instanceOf(AdminCustomizeContainer).isRequired,
 };
 };
 
 
-export default withTranslation()(CustomizeKibelaLayout);
+export default withTranslation()(CustomizeKibelaLayoutWrapper);