From f719ce52a36024887e4976082c2ef2b136f2f5ca Mon Sep 17 00:00:00 2001
From: Shin'ya UEOKA <ueokande@i-beam.org>
Date: Thu, 29 Aug 2019 04:23:42 +0000
Subject: Save on checkbox changed

---
 src/settings/components/form/PropertiesForm.tsx | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'src/settings/components/form/PropertiesForm.tsx')

diff --git a/src/settings/components/form/PropertiesForm.tsx b/src/settings/components/form/PropertiesForm.tsx
index 0be5f5c..ee98b7e 100644
--- a/src/settings/components/form/PropertiesForm.tsx
+++ b/src/settings/components/form/PropertiesForm.tsx
@@ -25,12 +25,19 @@ class PropertiesForm extends React.Component<Props> {
         Object.keys(types).map((name) => {
           let type = types[name];
           let inputType = '';
+          let onChange = this.bindValue.bind(this);
           if (type === 'string') {
             inputType = 'text';
           } else if (type === 'number') {
             inputType = 'number';
           } else if (type === 'boolean') {
             inputType = 'checkbox';
+
+            // Settings are saved onBlur, but checkbox does not fire it
+            onChange = (e) => {
+              this.bindValue(e);
+              this.props.onBlur();
+            };
           } else {
             return null;
           }
@@ -40,7 +47,7 @@ class PropertiesForm extends React.Component<Props> {
               <input type={inputType} name={name}
                 className='column-input'
                 value={value[name] ? value[name] : ''}
-                onChange={this.bindValue.bind(this)}
+                onChange={onChange}
                 onBlur={this.props.onBlur}
                 checked={value[name]}
               />
-- 
cgit v1.2.3

