aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--QA.md14
-rw-r--r--src/content/actions/setting.js7
-rw-r--r--src/content/components/common/keymapper.js2
-rw-r--r--src/content/reducers/setting.js3
-rw-r--r--src/content/scrolls.js4
-rw-r--r--test/content/actions/setting.test.js4
6 files changed, 24 insertions, 10 deletions
diff --git a/QA.md b/QA.md
index d495aa8..c1f413d 100644
--- a/QA.md
+++ b/QA.md
@@ -27,8 +27,11 @@ The behaviors of the console are tested in [Console section](#consoles).
- [ ] <kbd>d</kbd>: delete current tab
- [ ] <kbd>u</kbd>: reopen close tab
- [ ] <kbd>K</kbd>, <kbd>J</kbd>: select prev and next tab
+- [ ] <kbd>g0</kbd>, <kbd>g$</kbd>: select first and last tab
- [ ] <kbd>r</kbd>: reload current tab
- [ ] <kbd>R</kbd>: reload current tab without cache
+- [ ] <kbd>zd</kbd>: duplicate current tab
+- [ ] <kbd>zp</kbd>: toggle pin/unpin state on current tab
#### Navigation
@@ -141,6 +144,17 @@ The behaviors of the console are tested in [Console section](#consoles).
- [ ] Fucus text box on Twitter or Slack, press <kbd>j</kbd>, then <kbd>j</kbd> is typed in the box
- [ ] Focus the text box on Twitter or Slack on following mode
+## Find mode
+
+- [ ] open console with <kbd>/</kbd>
+- [ ] highlight a word on <kbd>Enter</kb> pressed in find console
+- [ ] Search next/prev by <kbd>n</kbd>/<kbd>N</kbd>
+- [ ] Wrap search by <kbd>n</kbd>/<kbd>N</kbd>
+- [ ] Find with last keyword if keyword is empty
+
## Misc
- [ ] Work after plugin reload
+- [ ] Work on `about:blank`
+- [ ] Able to map `<A-Z>` key.
+- [ ] Open file menu by <kbd>Alt</kbd>+<kbd>F</kbd> (Other than Mac OS)
diff --git a/src/content/actions/setting.js b/src/content/actions/setting.js
index 353dd24..0238c71 100644
--- a/src/content/actions/setting.js
+++ b/src/content/actions/setting.js
@@ -2,21 +2,20 @@ import actions from 'content/actions';
import * as keyUtils from 'shared/utils/keys';
const set = (value) => {
- let maps = new Map();
+ let entries = [];
if (value.keymaps) {
- let entries = Object.entries(value.keymaps).map((entry) => {
+ entries = Object.entries(value.keymaps).map((entry) => {
return [
keyUtils.fromMapKeys(entry[0]),
entry[1],
];
});
- maps = new Map(entries);
}
return {
type: actions.SETTING_SET,
value: Object.assign({}, value, {
- keymaps: maps,
+ keymaps: entries,
})
};
};
diff --git a/src/content/components/common/keymapper.js b/src/content/components/common/keymapper.js
index 0abbc91..fb8fabe 100644
--- a/src/content/components/common/keymapper.js
+++ b/src/content/components/common/keymapper.js
@@ -25,7 +25,7 @@ export default class KeymapperComponent {
let state = this.store.getState();
let input = state.input;
- let keymaps = state.setting.keymaps;
+ let keymaps = new Map(state.setting.keymaps);
let matched = Array.from(keymaps.keys()).filter((mapping) => {
return mapStartsWith(mapping, input.keys);
diff --git a/src/content/reducers/setting.js b/src/content/reducers/setting.js
index a54f5a3..a23027f 100644
--- a/src/content/reducers/setting.js
+++ b/src/content/reducers/setting.js
@@ -1,7 +1,8 @@
import actions from 'content/actions';
const defaultState = {
- keymaps: new Map(),
+ // keymaps is and arrays of key-binding pairs, which is entries of Map
+ keymaps: [],
};
export default function reducer(state = defaultState, action = {}) {
diff --git a/src/content/scrolls.js b/src/content/scrolls.js
index d88320f..ef38273 100644
--- a/src/content/scrolls.js
+++ b/src/content/scrolls.js
@@ -104,14 +104,14 @@ const scrollBottom = (win) => {
const scrollHome = (win) => {
let target = scrollTarget(win);
let x = 0;
- let y = target.scrollLeft;
+ let y = target.scrollTop;
target.scrollTo(x, y);
};
const scrollEnd = (win) => {
let target = scrollTarget(win);
let x = target.scrollWidth;
- let y = target.scrollLeft;
+ let y = target.scrollTop;
target.scrollTo(x, y);
};
diff --git a/test/content/actions/setting.test.js b/test/content/actions/setting.test.js
index 0228fea..1248edf 100644
--- a/test/content/actions/setting.test.js
+++ b/test/content/actions/setting.test.js
@@ -20,8 +20,8 @@ describe("setting actions", () => {
}
});
let keymaps = action.value.keymaps;
-
- expect(action.value.keymaps).to.have.deep.all.keys(
+ let map = new Map(keymaps);
+ expect(map).to.have.deep.all.keys(
[
[{ key: 'd', shiftKey: false, ctrlKey: false, altKey: false, metaKey: false },
{ key: 'd', shiftKey: false, ctrlKey: false, altKey: false, metaKey: false }],