summaryrefslogtreecommitdiff
path: root/ext/fg/js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fg/js')
-rw-r--r--ext/fg/js/api.js4
-rw-r--r--ext/fg/js/client.js1
-rw-r--r--ext/fg/js/frame.js33
3 files changed, 17 insertions, 21 deletions
diff --git a/ext/fg/js/api.js b/ext/fg/js/api.js
index 462eafd1..ecd8dd36 100644
--- a/ext/fg/js/api.js
+++ b/ext/fg/js/api.js
@@ -17,10 +17,6 @@
*/
-//
-// Background APIs
-//
-
function bgSendMessage(action, params, callback) {
chrome.runtime.sendMessage({action, params}, callback);
}
diff --git a/ext/fg/js/client.js b/ext/fg/js/client.js
index bb25c4e4..932cd10f 100644
--- a/ext/fg/js/client.js
+++ b/ext/fg/js/client.js
@@ -104,6 +104,7 @@ class Client {
} else {
const sequence = ++this.sequence;
range.setLength(length);
+
bgRenderText(
{defs: definitions, root: this.fgRoot, options: this.options, sequence: sequence},
'term-list.html',
diff --git a/ext/fg/js/frame.js b/ext/fg/js/frame.js
index 66d3a054..a61bb9ee 100644
--- a/ext/fg/js/frame.js
+++ b/ext/fg/js/frame.js
@@ -42,26 +42,25 @@ function onDomContentLoaded() {
}
function onMessage(e) {
- const {action, params} = e.data, handlers = {
- setActionState: ({index, state, sequence}) => {
- for (const mode in state) {
- const matches = document.querySelectorAll(`.action-link[data-sequence="${sequence}"][data-index="${index}"][data-mode="${mode}"]`);
- if (matches.length === 0) {
- return;
- }
+ const {action, params} = e.data, method = window['api_' + action];
+ if (typeof(method) === 'function') {
+ method(params);
+ }
+}
- const classes = matches[0].classList;
- if (state[mode]) {
- classes.remove('disabled');
- } else {
- classes.add('disabled');
- }
- }
+function api_setActionState({index, state, sequence}) {
+ for (const mode in state) {
+ const matches = document.querySelectorAll(`.action-link[data-sequence="${sequence}"][data-index="${index}"][data-mode="${mode}"]`);
+ if (matches.length === 0) {
+ return;
}
- };
- if (handlers.hasOwnProperty(action)) {
- handlers[action](params);
+ const classes = matches[0].classList;
+ if (state[mode]) {
+ classes.remove('disabled');
+ } else {
+ classes.add('disabled');
+ }
}
}