Browse Source

success to add dropdown size to isOpen state but cannot close the dropdown menu when clicked except dropdown area

kaori 5 năm trước cách đây
mục cha
commit
b7612f6a05

+ 14 - 10
src/client/js/components/Admin/Customize/CustomizeFunctionSetting.jsx

@@ -52,11 +52,12 @@ class CustomizeFunctionSetting extends React.Component {
     super(props);
     super(props);
 
 
     this.state = {
     this.state = {
-      // isDropdownOpen: false, //
-      isDropdownOpenS: false, // S
-      isDropdownOpenM: false, // M
-      isDropdownOpenL: false, // L
-      isDropdownOpenXL: false, // XL
+      // isDropdownOpenS: false, // S
+      // isDropdownOpenM: false, // M
+      // isDropdownOpenL: false, // L
+      // isDropdownOpenXL: false, // XL
+
+      isDropdownOpen: '',
     };
     };
 
 
     this.onToggleDropdown = this.onToggleDropdown.bind(this);
     this.onToggleDropdown = this.onToggleDropdown.bind(this);
@@ -64,7 +65,10 @@ class CustomizeFunctionSetting extends React.Component {
   }
   }
 
 
   onToggleDropdown(size) {
   onToggleDropdown(size) {
-    this.setState({ [`isDropdownOpen${size}`]: !this.state[`isDropdownOpen${size}`] });
+    this.setState({
+      // [`isDropdownOpen${size}`]: !this.state[`isDropdownOpen${size}`],
+      isDropdownOpen: size,
+    });
   }
   }
 
 
   async onClickSubmit() {
   async onClickSubmit() {
@@ -175,7 +179,7 @@ class CustomizeFunctionSetting extends React.Component {
                 <div className="my-0 w-100">
                 <div className="my-0 w-100">
                   <label>{t('admin:customize_setting.function_options.list_num_s')}</label>
                   <label>{t('admin:customize_setting.function_options.list_num_s')}</label>
                 </div>
                 </div>
-                <Dropdown isOpen={this.state.isDropdownOpenS} toggle={() => this.onToggleDropdown('S')}>
+                <Dropdown isOpen={this.state.isDropdownOpen === 'S'} toggle={() => this.onToggleDropdown('S')}>
                   <DropdownToggle className="text-right col-6" caret>
                   <DropdownToggle className="text-right col-6" caret>
                     <span className="float-left">{adminCustomizeContainer.state.pageLimitationS}</span>
                     <span className="float-left">{adminCustomizeContainer.state.pageLimitationS}</span>
                   </DropdownToggle>
                   </DropdownToggle>
@@ -203,7 +207,7 @@ class CustomizeFunctionSetting extends React.Component {
                 <div className="my-0 w-100">
                 <div className="my-0 w-100">
                   <label>{t('admin:customize_setting.function_options.list_num_m')}</label>
                   <label>{t('admin:customize_setting.function_options.list_num_m')}</label>
                 </div>
                 </div>
-                <Dropdown isOpen={this.state.isDropdownOpenM} toggle={() => this.onToggleDropdown('M')}>
+                <Dropdown isOpen={this.state.isDropdownOpen === 'M'} toggle={() => this.onToggleDropdown('M')}>
                   <DropdownToggle className="text-right col-6" caret>
                   <DropdownToggle className="text-right col-6" caret>
                     <span className="float-left">{adminCustomizeContainer.state.pageLimitationM}</span>
                     <span className="float-left">{adminCustomizeContainer.state.pageLimitationM}</span>
                   </DropdownToggle>
                   </DropdownToggle>
@@ -231,7 +235,7 @@ class CustomizeFunctionSetting extends React.Component {
                 <div className="my-0 w-100">
                 <div className="my-0 w-100">
                   <label>{t('admin:customize_setting.function_options.list_num_l')}</label>
                   <label>{t('admin:customize_setting.function_options.list_num_l')}</label>
                 </div>
                 </div>
-                <Dropdown isOpen={this.state.isDropdownOpenL} toggle={() => this.onToggleDropdown('L')}>
+                <Dropdown isOpen={this.state.isDropdownOpen === 'L'} toggle={() => this.onToggleDropdown('L')}>
                   <DropdownToggle className="text-right col-6" caret>
                   <DropdownToggle className="text-right col-6" caret>
                     <span className="float-left">{adminCustomizeContainer.state.pageLimitationL}</span>
                     <span className="float-left">{adminCustomizeContainer.state.pageLimitationL}</span>
                   </DropdownToggle>
                   </DropdownToggle>
@@ -259,7 +263,7 @@ class CustomizeFunctionSetting extends React.Component {
                 <div className="my-0 w-100">
                 <div className="my-0 w-100">
                   <label>{t('admin:customize_setting.function_options.list_num_xl')}</label>
                   <label>{t('admin:customize_setting.function_options.list_num_xl')}</label>
                 </div>
                 </div>
-                <Dropdown isOpen={this.state.isDropdownOpenXL} toggle={() => this.onToggleDropdown('XL')}>
+                <Dropdown isOpen={this.state.isDropdownOpen === 'XL'} toggle={() => this.onToggleDropdown('XL')}>
                   <DropdownToggle className="text-right col-6" caret>
                   <DropdownToggle className="text-right col-6" caret>
                     <span className="float-left">{adminCustomizeContainer.state.pageLimitationXL}</span>
                     <span className="float-left">{adminCustomizeContainer.state.pageLimitationXL}</span>
                   </DropdownToggle>
                   </DropdownToggle>