From d02b2b2efb13b8daea0128e9c14e1472d3c87eb2 Mon Sep 17 00:00:00 2001 From: Tobias Jacksteit Date: Mon, 8 Jun 2020 22:01:26 +0800 Subject: [PATCH] review changes --- src/js/components/Options.js | 35 +++++++++++++-------------------- src/js/content.js | 4 +--- src/js/utils/browser.js | 4 +--- src/js/utils/messageHandlers.js | 4 +--- src/js/utils/settings.js | 17 ---------------- src/js/utils/urlMatcher.js | 2 +- 6 files changed, 18 insertions(+), 48 deletions(-) delete mode 100644 src/js/utils/settings.js diff --git a/src/js/components/Options.js b/src/js/components/Options.js index 7f35194..91804da 100644 --- a/src/js/components/Options.js +++ b/src/js/components/Options.js @@ -4,8 +4,7 @@ import { observer } from "mobx-react" import { isChrome, getSettings, setStorage } from "utils/browser" import ApiClient from "api/Client" import remoteServices from "../remoteServices" -import { map, sortedUniqBy, filter } from "lodash" -import { getHostOverridesFromSettings } from "../utils/settings" +import { pipe, prop, map, sortedUniqBy, filter } from "lodash/fp" @observer class Options extends Component { @@ -18,25 +17,19 @@ class Options extends Component { @observable showHostOverrideOptions = false componentDidMount() { - this.servicesHostOverrideList = sortedUniqBy( - map( - filter(remoteServices, (remoteService) => { - return remoteService.allowHostOverride - }), - (remoteService) => { - return { - name: remoteService.name, - host: remoteService.host, - } - }, - ), - "name", - ) + this.servicesHostOverrideList = pipe( + filter(prop("allowHostOverride")), + map((remoteService) => ({ + name: remoteService.name, + host: remoteService.host, + })), + sortedUniqBy("name"), + )(remoteServices) getSettings(false).then((storeData) => { this.subdomain = storeData.subdomain || "" this.apiKey = storeData.apiKey || "" - this.hostOverrides = getHostOverridesFromSettings(storeData) || {} + this.hostOverrides = storeData.hostOverrides || {} }) } @@ -49,7 +42,7 @@ class Options extends Component { this.hostOverrides[event.target.name] = this.removePathFromUrl(event.target.value.trim()) } - toggleHostOverrideOptions = (event) => { + toggleHostOverrideOptions = () => { this.showHostOverrideOptions = !this.showHostOverrideOptions } @@ -61,7 +54,7 @@ class Options extends Component { subdomain: this.subdomain, apiKey: this.apiKey, settingTimeTrackingHHMM: false, - ...this.hostOverrides, + hostOverrides: this.hostOverrides, }).then(() => { const { version } = chrome.runtime.getManifest() const apiClient = new ApiClient({ @@ -142,8 +135,8 @@ class Options extends Component { { - const hostOverrides = getHostOverridesFromSettings(settings, true) - findService = createServiceFinder(remoteServices, hostOverrides)(document) + findService = createServiceFinder(remoteServices, settings.hostOverrides)(document) }) chrome.runtime.onConnect.addListener(function (port) { diff --git a/src/js/utils/browser.js b/src/js/utils/browser.js index 38d19b5..92d81cf 100644 --- a/src/js/utils/browser.js +++ b/src/js/utils/browser.js @@ -1,5 +1,4 @@ import { head } from "lodash/fp" -import remoteServices from "../remoteServices" export const isChrome = () => typeof browser === "undefined" && chrome export const isFirefox = () => typeof browser !== "undefined" && chrome @@ -7,8 +6,7 @@ export const isFirefox = () => typeof browser !== "undefined" && chrome const DEFAULT_SUBDOMAIN = "unset" export const getSettings = (withDefaultSubdomain = true) => { - const keys = ["subdomain", "apiKey", "settingTimeTrackingHHMM", - ...Object.values(remoteServices).map(remoteService => `hostOverrides:${remoteService.name}`)] + const keys = ["subdomain", "apiKey", "settingTimeTrackingHHMM", "hostOverrides"] const { version } = chrome.runtime.getManifest() if (isChrome()) { return new Promise(resolve => { diff --git a/src/js/utils/messageHandlers.js b/src/js/utils/messageHandlers.js index 058c4b5..d006a83 100644 --- a/src/js/utils/messageHandlers.js +++ b/src/js/utils/messageHandlers.js @@ -11,13 +11,11 @@ import { get, forEach, reject, isNil } from "lodash/fp" import { createMatcher } from "utils/urlMatcher" import remoteServices from "remoteServices" import { queryTabs, isBrowserTab, getSettings, setStorage } from "utils/browser" -import { getHostOverridesFromSettings } from "./settings" let matcher const initMatcher = (settings) => { - const hostOverrides = getHostOverridesFromSettings(settings, true) - matcher = createMatcher(remoteServices, hostOverrides) + matcher = createMatcher(remoteServices, settings.hostOverrides) } getSettings().then((settings) => { diff --git a/src/js/utils/settings.js b/src/js/utils/settings.js deleted file mode 100644 index 5cbc464..0000000 --- a/src/js/utils/settings.js +++ /dev/null @@ -1,17 +0,0 @@ -import { filter, fromPairs, map, toPairs } from "lodash" - -export const getHostOverridesFromSettings = (settings, removePrefix) => { - return fromPairs( - map( - filter(toPairs(settings), (item) => { - return item[0].indexOf("hostOverrides") !== -1 - }), - (item) => { - if (removePrefix) { - item[0] = item[0].replace("hostOverrides:", "") - } - return item - }, - ), - ) -} diff --git a/src/js/utils/urlMatcher.js b/src/js/utils/urlMatcher.js index a6879dc..f4fb98a 100644 --- a/src/js/utils/urlMatcher.js +++ b/src/js/utils/urlMatcher.js @@ -44,7 +44,7 @@ const prepareHostForRegExp = (host) => { return } - return host.replace(":", "\\:")//.replace(/\//g, "\\/") + return host.replace(":", "\\:") } const replaceHostInPattern = (host, pattern) => {