Skip to content

Commit 037aabd

Browse files
authored
feat: Allow for configuration of port and number of commands kept in history
1 parent bc3bd86 commit 037aabd

7 files changed

Lines changed: 113 additions & 7 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"electron-debug": "^1.4.0",
4646
"electron-devtools-installer": "^2.2.4",
4747
"electron-log": "^2.2.17",
48+
"electron-store": "^3.1.0",
4849
"electron-updater": "^4.0.5",
4950
"electron-window-state": "^5.0.3",
5051
"font-awesome": "^4.7.0",

src/Foundation/App.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Provider, observer } from "mobx-react"
22
import React, { Component } from "react"
33
import { ipcRenderer } from "electron"
4+
import config from "../Lib/config"
45
import FilterTimelineDialog from "../Dialogs/FilterTimelineDialog"
56
import ExportTimelineDialog from "../Dialogs/ExportTimelineDialog"
67
import RenameStateDialog from "../Dialogs/RenameStateDialog"
@@ -19,7 +20,7 @@ import Timeline from "../Timeline/Timeline"
1920
import Sidebar from "./Sidebar"
2021
import StatusBar from "./StatusBar"
2122

22-
const session = new SessionStore()
23+
const session = new SessionStore(config.get("server.port", 9090))
2324

2425
const Styles = {
2526
container: { ...AppStyles.Layout.vbox },

src/Foundation/Sidebar.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ class Sidebar extends Component {
3939
this.handleClickHelp = () => {
4040
this.props.session.ui.switchTab("help")
4141
}
42-
this.handleClickSettings = () => {
43-
this.props.session.ui.switchTab("settings")
44-
}
4542
this.handleClickNative = () => {
4643
this.props.session.ui.switchTab("native")
4744
}
@@ -51,7 +48,9 @@ class Sidebar extends Component {
5148
const { session } = this.props
5249
const { ui } = session
5350
const isHome = ui.tab === "home"
54-
const imageFilter = { filter: `grayscale(${ isHome ? 0 : 100 }%) brightness(${ isHome ? 100 : 70 }%)` }
51+
const imageFilter = {
52+
filter: `grayscale(${isHome ? 0 : 100}%) brightness(${isHome ? 100 : 70}%)`,
53+
}
5554

5655
return (
5756
<div

src/Lib/commands.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { action, observable, computed } from "mobx"
22
import { pipe, reject, contains, propEq } from "ramda"
33
import { dotPath } from "ramdasauce"
4+
import config from "./config"
45

5-
export const MAX_COMMANDS = 500
6+
export const MAX_COMMANDS = config.get("commandHistory", 500)
67

78
// how often to flush the buffer of commands into the main list
89
const FLUSH_TIME = 50

src/Lib/config.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import Store from "electron-store"
2+
3+
const schema = {
4+
server: {
5+
port: {
6+
type: "number",
7+
default: 9090,
8+
},
9+
},
10+
commandHistory: {
11+
type: "number",
12+
default: 500,
13+
},
14+
}
15+
16+
const configStore = new Store({ schema })
17+
18+
// Setup defaults
19+
if (!configStore.has("server.port")) {
20+
configStore.set("server.port", 9090)
21+
}
22+
if (!configStore.has("commandHistory")) {
23+
configStore.set("commandHistory", 500)
24+
}
25+
26+
export default configStore

src/menu.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import { app, Menu, shell, BrowserWindow } from "electron"
2+
import Store from "electron-store"
3+
4+
const configStore = new Store()
25

36
export default class MenuBuilder {
47
constructor(mainWindow) {
@@ -56,6 +59,13 @@ export default class MenuBuilder {
5659
},
5760
{ label: "Show All", selector: "unhideAllApplications:" },
5861
{ type: "separator" },
62+
{
63+
label: "Preferences",
64+
click: () => {
65+
configStore.openInEditor()
66+
},
67+
},
68+
{ type: "separator" },
5969
{
6070
label: "Quit",
6171
accelerator: "Command+Q",

yarn.lock

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,16 @@ ajv@^6.1.0:
503503
json-schema-traverse "^0.3.0"
504504
uri-js "^3.0.2"
505505

506+
ajv@^6.10.0:
507+
version "6.10.0"
508+
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
509+
integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
510+
dependencies:
511+
fast-deep-equal "^2.0.1"
512+
fast-json-stable-stringify "^2.0.0"
513+
json-schema-traverse "^0.4.1"
514+
uri-js "^4.2.2"
515+
506516
ajv@^6.5.5:
507517
version "6.6.1"
508518
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.1.tgz#6360f5ed0d80f232cc2b294c362d5dc2e538dd61"
@@ -2391,6 +2401,19 @@ concurrently@^4.1.0:
23912401
tree-kill "^1.1.0"
23922402
yargs "^12.0.1"
23932403

2404+
conf@^4.0.0:
2405+
version "4.0.0"
2406+
resolved "https://registry.yarnpkg.com/conf/-/conf-4.0.0.tgz#c675f84ce1b8efeab21cd1399021b4f03b75ded2"
2407+
integrity sha512-g3kLYbvtnC6w1IEBalWQoetLq8WUsYVncW7mTBPsPKw4SkNGBj3AaEiRXYPCCW9DPqKdhs1S+f6babEZju0EhA==
2408+
dependencies:
2409+
ajv "^6.10.0"
2410+
dot-prop "^4.2.0"
2411+
env-paths "^2.1.0"
2412+
json-schema-typed "^7.0.0"
2413+
make-dir "^3.0.0"
2414+
pkg-up "^3.0.1"
2415+
write-file-atomic "^2.4.2"
2416+
23942417
config-chain@^1.1.12:
23952418
version "1.1.12"
23962419
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
@@ -3147,7 +3170,7 @@ dot-prop@^3.0.0:
31473170
dependencies:
31483171
is-obj "^1.0.0"
31493172

3150-
dot-prop@^4.1.0, dot-prop@^4.1.1:
3173+
dot-prop@^4.1.0, dot-prop@^4.1.1, dot-prop@^4.2.0:
31513174
version "4.2.0"
31523175
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
31533176
integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
@@ -3313,6 +3336,13 @@ electron-publish@20.38.2:
33133336
lazy-val "^1.0.3"
33143337
mime "^2.4.0"
33153338

3339+
electron-store@^3.1.0:
3340+
version "3.1.0"
3341+
resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-3.1.0.tgz#952a655d3468095ffc40c0a307a0ab8cce8383c0"
3342+
integrity sha512-PB04EM46LFsZV+KAy7Ahd3vAnt9iRJLaOVkqlTJCODjzq73Xt0I5g6eVxprEu4otuI+YKJRaojCQ/HTCh6RzzA==
3343+
dependencies:
3344+
conf "^4.0.0"
3345+
33163346
electron-to-chromium@^1.3.86:
33173347
version "1.3.88"
33183348
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.88.tgz#f36ab32634f49ef2b0fdc1e82e2d1cc17feb29e7"
@@ -3418,6 +3448,11 @@ env-paths@^1.0.0:
34183448
version "1.0.0"
34193449
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
34203450

3451+
env-paths@^2.1.0:
3452+
version "2.2.0"
3453+
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43"
3454+
integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==
3455+
34213456
err-code@^1.0.0:
34223457
version "1.1.2"
34233458
resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960"
@@ -5123,6 +5158,11 @@ json-schema-traverse@^0.4.1:
51235158
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
51245159
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
51255160

5161+
json-schema-typed@^7.0.0:
5162+
version "7.0.0"
5163+
resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.0.tgz#714f3bb539637644b8cb9c99a097c4ee8f8e8c8f"
5164+
integrity sha512-ikVqF4dlAgRvAb3MDAgDQRtB/GIC8+iq+z5bczPh9bUT7bAZCdGfGCypJHBquzZNoxebql1UgPxWbImnvkSuJg==
5165+
51265166
json-schema@0.2.3:
51275167
version "0.2.3"
51285168
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
@@ -5521,6 +5561,13 @@ make-dir@^1.0.0:
55215561
dependencies:
55225562
pify "^3.0.0"
55235563

5564+
make-dir@^3.0.0:
5565+
version "3.0.0"
5566+
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801"
5567+
integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==
5568+
dependencies:
5569+
semver "^6.0.0"
5570+
55245571
"make-fetch-happen@^2.5.0 || 3 || 4", make-fetch-happen@^4.0.1:
55255572
version "4.0.1"
55265573
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz#141497cb878f243ba93136c83d8aba12c216c083"
@@ -6971,6 +7018,13 @@ pkg-dir@^3.0.0:
69717018
dependencies:
69727019
find-up "^3.0.0"
69737020

7021+
pkg-up@^3.0.1:
7022+
version "3.0.1"
7023+
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.0.1.tgz#91ea5597c5585fe438d32689ac8943f1b5f17900"
7024+
integrity sha512-M8N4levGL4P4tHD+l9/glzZuRJqDhwnL5hAMoz7dIpgHhw0NmOjrcvF2plRCy/c7hkylftdehtnJZNkkBeKpzQ==
7025+
dependencies:
7026+
find-up "^3.0.0"
7027+
69747028
plist@^3.0.1:
69757029
version "3.0.1"
69767030
resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.1.tgz#a9b931d17c304e8912ef0ba3bdd6182baf2e1f8c"
@@ -8270,6 +8324,11 @@ semver-regex@^2.0.0:
82708324
version "5.5.0"
82718325
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
82728326

8327+
semver@^6.0.0:
8328+
version "6.0.0"
8329+
resolved "https://registry.yarnpkg.com/semver/-/semver-6.0.0.tgz#05e359ee571e5ad7ed641a6eec1e547ba52dea65"
8330+
integrity sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==
8331+
82738332
semver@~5.3.0:
82748333
version "5.3.0"
82758334
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@@ -9813,6 +9872,15 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.3.0:
98139872
imurmurhash "^0.1.4"
98149873
signal-exit "^3.0.2"
98159874

9875+
write-file-atomic@^2.4.2:
9876+
version "2.4.2"
9877+
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9"
9878+
integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==
9879+
dependencies:
9880+
graceful-fs "^4.1.11"
9881+
imurmurhash "^0.1.4"
9882+
signal-exit "^3.0.2"
9883+
98169884
ws@^6.0.0:
98179885
version "6.1.2"
98189886
resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8"

0 commit comments

Comments
 (0)