diff --git a/src/settings/actions/setting.js b/src/settings/actions/setting.js
index 0277159..8844252 100644
--- a/src/settings/actions/setting.js
+++ b/src/settings/actions/setting.js
@@ -1,8 +1,8 @@
import actions from 'settings/actions';
import * as validator from 'shared/settings/validator';
-import KeymapsForm from '../components/form/keymaps-form';
import * as settingsValues from 'shared/settings/values';
import * as settingsStorage from 'shared/settings/storage';
+import keymaps from '../keymaps';
const load = async() => {
let settings = await settingsStorage.loadRaw();
@@ -29,8 +29,7 @@ const save = async(settings) => {
const switchToForm = (json) => {
try {
validator.validate(JSON.parse(json));
- // AllowdOps filters operations, this is dirty dependency
- let form = settingsValues.formFromJson(json, KeymapsForm.AllowdOps);
+ let form = settingsValues.formFromJson(json, keymaps.allowedOps);
return {
type: actions.SETTING_SWITCH_TO_FORM,
form,
diff --git a/src/settings/components/form/blacklist-form.jsx b/src/settings/components/form/BlacklistForm.jsx
similarity index 87%
rename from src/settings/components/form/blacklist-form.jsx
rename to src/settings/components/form/BlacklistForm.jsx
index 492c3af..13571f1 100644
--- a/src/settings/components/form/blacklist-form.jsx
+++ b/src/settings/components/form/BlacklistForm.jsx
@@ -1,6 +1,6 @@
-import './blacklist-form.scss';
-import AddButton from '../ui/add-button';
-import DeleteButton from '../ui/delete-button';
+import './BlacklistForm.scss';
+import AddButton from '../ui/AddButton';
+import DeleteButton from '../ui/DeleteButton';
import React from 'react';
class BlacklistForm extends React.Component {
@@ -23,7 +23,7 @@ class BlacklistForm extends React.Component {
;
})
}
-
;
}
diff --git a/src/settings/components/form/blacklist-form.scss b/src/settings/components/form/BlacklistForm.scss
similarity index 100%
rename from src/settings/components/form/blacklist-form.scss
rename to src/settings/components/form/BlacklistForm.scss
diff --git a/src/settings/components/form/KeymapsForm.jsx b/src/settings/components/form/KeymapsForm.jsx
new file mode 100644
index 0000000..25a3710
--- /dev/null
+++ b/src/settings/components/form/KeymapsForm.jsx
@@ -0,0 +1,47 @@
+import './KeymapsForm.scss';
+import React from 'react';
+import Input from '../ui/Input';
+import keymaps from '../../keymaps';
+
+class KeymapsForm extends React.Component {
+
+ render() {
+ let values = this.props.value;
+ if (!values) {
+ values = {};
+ }
+ return
+ {
+ keymaps.fields.map((group, index) => {
+ return
+ {
+ group.map((field) => {
+ let name = field[0];
+ let label = field[1];
+ let value = values[name];
+ return ;
+ })
+ }
+
;
+ })
+ }
+
;
+ }
+
+ bindValue(e) {
+ if (!this.props.onChange) {
+ return;
+ }
+
+ let next = { ...this.props.value };
+ next[e.target.name] = e.target.value;
+
+ this.props.onChange(next);
+ }
+}
+
+export default KeymapsForm;
diff --git a/src/settings/components/form/keymaps-form.scss b/src/settings/components/form/KeymapsForm.scss
similarity index 100%
rename from src/settings/components/form/keymaps-form.scss
rename to src/settings/components/form/KeymapsForm.scss
diff --git a/src/settings/components/form/properties-form.jsx b/src/settings/components/form/PropertiesForm.jsx
similarity index 97%
rename from src/settings/components/form/properties-form.jsx
rename to src/settings/components/form/PropertiesForm.jsx
index 7d591d5..77991fc 100644
--- a/src/settings/components/form/properties-form.jsx
+++ b/src/settings/components/form/PropertiesForm.jsx
@@ -1,4 +1,4 @@
-import './properties-form.scss';
+import './PropertiesForm.scss';
import React from 'react';
class PropertiesForm extends React.Component {
diff --git a/src/settings/components/form/properties-form.scss b/src/settings/components/form/PropertiesForm.scss
similarity index 100%
rename from src/settings/components/form/properties-form.scss
rename to src/settings/components/form/PropertiesForm.scss
diff --git a/src/settings/components/form/search-form.jsx b/src/settings/components/form/SearchForm.jsx
similarity index 93%
rename from src/settings/components/form/search-form.jsx
rename to src/settings/components/form/SearchForm.jsx
index 81204f3..f52fd5f 100644
--- a/src/settings/components/form/search-form.jsx
+++ b/src/settings/components/form/SearchForm.jsx
@@ -1,7 +1,7 @@
-import './search-form.scss';
+import './SearchForm.scss';
import React from 'react';
-import AddButton from '../ui/add-button';
-import DeleteButton from '../ui/delete-button';
+import AddButton from '../ui/AddButton';
+import DeleteButton from '../ui/DeleteButton';
class SearchForm extends React.Component {
@@ -40,7 +40,7 @@ class SearchForm extends React.Component {
;
})
}
-
;
}
diff --git a/src/settings/components/form/search-form.scss b/src/settings/components/form/SearchForm.scss
similarity index 100%
rename from src/settings/components/form/search-form.scss
rename to src/settings/components/form/SearchForm.scss
diff --git a/src/settings/components/index.jsx b/src/settings/components/index.jsx
index 9dae25e..affa2e9 100644
--- a/src/settings/components/index.jsx
+++ b/src/settings/components/index.jsx
@@ -1,11 +1,11 @@
import './site.scss';
import React from 'react';
import { connect } from 'react-redux';
-import Input from './ui/input';
-import SearchForm from './form/search-form';
-import KeymapsForm from './form/keymaps-form';
-import BlacklistForm from './form/blacklist-form';
-import PropertiesForm from './form/properties-form';
+import Input from './ui/Input';
+import SearchForm from './form/SearchForm';
+import KeymapsForm from './form/KeymapsForm';
+import BlacklistForm from './form/BlacklistForm';
+import PropertiesForm from './form/PropertiesForm';
import * as properties from 'shared/settings/properties';
import * as settingActions from 'settings/actions/setting';
@@ -136,7 +136,7 @@ class SettingsComponent extends React.Component {
this.props.dispatch(settingActions.switchToForm(this.props.json));
}
- let settings = this.props.getState();
+ let settings = this.props.store.getState();
this.props.dispatch(settingActions.save(settings));
}
}
diff --git a/src/settings/components/ui/add-button.jsx b/src/settings/components/ui/AddButton.jsx
similarity index 88%
rename from src/settings/components/ui/add-button.jsx
rename to src/settings/components/ui/AddButton.jsx
index 031d28b..185a03b 100644
--- a/src/settings/components/ui/add-button.jsx
+++ b/src/settings/components/ui/AddButton.jsx
@@ -1,4 +1,4 @@
-import './add-button.scss';
+import './AddButton.scss';
import React from 'react';
class AddButton extends React.Component {
diff --git a/src/settings/components/ui/add-button.scss b/src/settings/components/ui/AddButton.scss
similarity index 100%
rename from src/settings/components/ui/add-button.scss
rename to src/settings/components/ui/AddButton.scss
diff --git a/src/settings/components/ui/delete-button.jsx b/src/settings/components/ui/DeleteButton.jsx
similarity index 88%
rename from src/settings/components/ui/delete-button.jsx
rename to src/settings/components/ui/DeleteButton.jsx
index 3dfe14a..75811cd 100644
--- a/src/settings/components/ui/delete-button.jsx
+++ b/src/settings/components/ui/DeleteButton.jsx
@@ -1,4 +1,4 @@
-import './delete-button.scss';
+import './DeleteButton.scss';
import React from 'react';
class DeleteButton extends React.Component {
diff --git a/src/settings/components/ui/delete-button.scss b/src/settings/components/ui/DeleteButton.scss
similarity index 100%
rename from src/settings/components/ui/delete-button.scss
rename to src/settings/components/ui/DeleteButton.scss
diff --git a/src/settings/components/ui/input.jsx b/src/settings/components/ui/Input.jsx
similarity index 98%
rename from src/settings/components/ui/input.jsx
rename to src/settings/components/ui/Input.jsx
index 2f42b62..d090f5b 100644
--- a/src/settings/components/ui/input.jsx
+++ b/src/settings/components/ui/Input.jsx
@@ -1,5 +1,5 @@
import React from 'react';
-import './input.scss';
+import './Input.scss';
class Input extends React.Component {
diff --git a/src/settings/components/ui/input.scss b/src/settings/components/ui/Input.scss
similarity index 100%
rename from src/settings/components/ui/input.scss
rename to src/settings/components/ui/Input.scss
diff --git a/src/settings/index.jsx b/src/settings/index.jsx
index 9df1073..6aec7a0 100644
--- a/src/settings/index.jsx
+++ b/src/settings/index.jsx
@@ -1,4 +1,5 @@
-import { render } from 'react';
+import React from 'react';
+import ReactDOM from 'react-dom';
import SettingsComponent from './components';
import reducer from './reducers/setting';
import { Provider } from 'react-redux';
@@ -12,9 +13,9 @@ const store = createStore(
document.addEventListener('DOMContentLoaded', () => {
let wrapper = document.getElementById('vimvixen-settings');
- render(
+ ReactDOM.render(
-
+
,
wrapper
);
diff --git a/src/settings/components/form/keymaps-form.jsx b/src/settings/keymaps.js
similarity index 70%
rename from src/settings/components/form/keymaps-form.jsx
rename to src/settings/keymaps.js
index 8c0a83f..ccfc74c 100644
--- a/src/settings/components/form/keymaps-form.jsx
+++ b/src/settings/keymaps.js
@@ -1,8 +1,4 @@
-import './keymaps-form.scss';
-import React from 'react';
-import Input from '../ui/input';
-
-const KeyMapFields = [
+const fields = [
[
['scroll.vertically?{"count":1}', 'Scroll down'],
['scroll.vertically?{"count":-1}', 'Scroll up'],
@@ -70,49 +66,9 @@ const KeyMapFields = [
]
];
-const AllowdOps = [].concat(...KeyMapFields.map(group => group.map(e => e[0])));
-
-class KeymapsForm extends React.Component {
-
- render() {
- let values = this.props.value;
- if (!values) {
- values = {};
- }
- return
- {
- KeyMapFields.map((group, index) => {
- return
- {
- group.map((field) => {
- let name = field[0];
- let label = field[1];
- let value = values[name];
- return ;
- })
- }
-
;
- })
- }
-
;
- }
-
- bindValue(e) {
- if (!this.props.onChange) {
- return;
- }
-
- let next = { ...this.props.value };
- next[e.target.name] = e.target.value;
-
- this.props.onChange(next);
- }
-}
-
-KeymapsForm.AllowdOps = AllowdOps;
+const allowedOps = [].concat(...fields.map(group => group.map(e => e[0])));
-export default KeymapsForm;
+export default {
+ fields,
+ allowedOps,
+};