diff options
author | 2019-02-11 15:11:50 +0100 | |
---|---|---|
committer | 2019-02-11 15:11:50 +0100 | |
commit | c7a39ffef3904c6215b7f17c5d3a221b70099be1 (patch) | |
tree | 3f08628c69c1916437c54989da86b50179a0c876 | |
parent | Update electron-window-state (diff) | |
parent | Fix typo (diff) | |
download | ferdium-app-c7a39ffef3904c6215b7f17c5d3a221b70099be1.tar.gz ferdium-app-c7a39ffef3904c6215b7f17c5d3a221b70099be1.tar.zst ferdium-app-c7a39ffef3904c6215b7f17c5d3a221b70099be1.zip |
Merge branch 'master' into develop
-rw-r--r-- | .github/stale.yml | 2 | ||||
-rw-r--r-- | CHANGELOG.md | 15 | ||||
-rw-r--r-- | package-lock.json | 2 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | src/components/services/content/ErrorHandlers/WebviewErrorHandler.js | 2 | ||||
-rw-r--r-- | src/components/services/content/ErrorHandlers/styles.js | 6 | ||||
-rw-r--r-- | src/components/services/content/ServiceWebview.js | 3 | ||||
-rw-r--r-- | src/components/services/content/Services.js | 3 | ||||
-rw-r--r-- | src/containers/layout/AppLayoutContainer.js | 1 | ||||
-rw-r--r-- | src/models/Service.js | 2 | ||||
-rw-r--r-- | src/stores/ServicesStore.js | 15 | ||||
-rw-r--r-- | src/styles/layout.scss | 2 | ||||
-rw-r--r-- | src/theme/dark/index.js | 3 | ||||
-rw-r--r-- | src/theme/default/index.js | 3 |
14 files changed, 46 insertions, 15 deletions
diff --git a/.github/stale.yml b/.github/stale.yml index 59a443d96..88f863d74 100644 --- a/.github/stale.yml +++ b/.github/stale.yml | |||
@@ -11,6 +11,8 @@ daysUntilClose: -1 # Close the issue almost immediately. See: https://github.com | |||
11 | exemptLabels: | 11 | exemptLabels: |
12 | - blocker | 12 | - blocker |
13 | - security | 13 | - security |
14 | - feature request | ||
15 | - bug | ||
14 | 16 | ||
15 | # Label to use when marking an issue as stale | 17 | # Label to use when marking an issue as stale |
16 | staleLabel: "[Status] Stale" | 18 | staleLabel: "[Status] Stale" |
diff --git a/CHANGELOG.md b/CHANGELOG.md index 480dd0f00..08fd79aaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
@@ -1,3 +1,14 @@ | |||
1 | # [5.0.0-beta.24](https://github.com/meetfranz/franz/compare/v5.0.0-beta.23...v5.0.0-beta.24) (2019-02-03) | ||
2 | |||
3 | |||
4 | ### Bug Fixes | ||
5 | |||
6 | * **Service:** Fix unnecessary webview resize / Slack scroll issue ([4b7d3e2](https://github.com/meetfranz/franz/commit/4b7d3e2)) | ||
7 | * **Service:** Improve focus when switching services ([d130f26](https://github.com/meetfranz/franz/commit/d130f26)), closes [#1255](https://github.com/meetfranz/franz/issues/1255) | ||
8 | * **Service:** Fix dark mode in services ([d529410](https://github.com/meetfranz/franz/commit/d529410)) | ||
9 | |||
10 | |||
11 | |||
1 | # [5.0.0-beta.23](https://github.com/meetfranz/franz/compare/5.0.0-beta.20...5.0.0-beta.23) (2019-02-01) | 12 | # [5.0.0-beta.23](https://github.com/meetfranz/franz/compare/5.0.0-beta.20...5.0.0-beta.23) (2019-02-01) |
2 | 13 | ||
3 | ### General | 14 | ### General |
@@ -57,14 +68,18 @@ | |||
57 | 68 | ||
58 | ### Features | 69 | ### Features |
59 | 70 | ||
71 | * **Windows:** Add taskbar action to reset Franz window ([08fa75a](https://github.com/meetfranz/franz/commit/08fa75a)) | ||
60 | * **Context Menu:** Add "Go Back" and "Go Forward" ([5c18595](https://github.com/meetfranz/franz/commit/5c18595)) | 72 | * **Context Menu:** Add "Go Back" and "Go Forward" ([5c18595](https://github.com/meetfranz/franz/commit/5c18595)) |
61 | * **Context Menu:** Add Lookup, Search Google for ([5d5aa0c](https://github.com/meetfranz/franz/commit/5d5aa0c)) | 73 | * **Context Menu:** Add Lookup, Search Google for ([5d5aa0c](https://github.com/meetfranz/franz/commit/5d5aa0c)) |
74 | * **App:** Add `--devtools` command line arg to automatically open Dev Tools ([84fc3a0](https://github.com/meetfranz/franz/commit/84fc3a0)) | ||
62 | 75 | ||
63 | ### Bug Fixes | 76 | ### Bug Fixes |
64 | 77 | ||
65 | * **App:** Use system proxy for services ([8ddae4a](https://github.com/meetfranz/franz/commit/8ddae4a)) | 78 | * **App:** Use system proxy for services ([8ddae4a](https://github.com/meetfranz/franz/commit/8ddae4a)) |
66 | * **App:** Fix service request url ([7751c17](https://github.com/meetfranz/franz/commit/7751c17)) | 79 | * **App:** Fix service request url ([7751c17](https://github.com/meetfranz/franz/commit/7751c17)) |
80 | * **App:** Do not install App updates without user confirmation ([72fcaef](https://github.com/meetfranz/franz/commit/72fcaef)) | ||
67 | * **Windows:** Fix quit app, really! ([ca1d618](https://github.com/meetfranz/franz/commit/ca1d618)) | 81 | * **Windows:** Fix quit app, really! ([ca1d618](https://github.com/meetfranz/franz/commit/ca1d618)) |
82 | * **Context Menu:** Fix empty context menu item ([18040d4](https://github.com/meetfranz/franz/commit/18040d4)) | ||
68 | 83 | ||
69 | 84 | ||
70 | <a name="5.0.0-beta.19"></a> | 85 | <a name="5.0.0-beta.19"></a> |
diff --git a/package-lock.json b/package-lock.json index 50383111c..b665aef82 100644 --- a/package-lock.json +++ b/package-lock.json | |||
@@ -1,6 +1,6 @@ | |||
1 | { | 1 | { |
2 | "name": "franz", | 2 | "name": "franz", |
3 | "version": "5.0.0-beta.23", | 3 | "version": "5.0.0-beta.24", |
4 | "lockfileVersion": 1, | 4 | "lockfileVersion": 1, |
5 | "requires": true, | 5 | "requires": true, |
6 | "dependencies": { | 6 | "dependencies": { |
diff --git a/package.json b/package.json index 03267c136..17e1c2bc9 100644 --- a/package.json +++ b/package.json | |||
@@ -2,7 +2,7 @@ | |||
2 | "name": "franz", | 2 | "name": "franz", |
3 | "productName": "Franz", | 3 | "productName": "Franz", |
4 | "appId": "com.meetfranz.franz", | 4 | "appId": "com.meetfranz.franz", |
5 | "version": "5.0.0-beta.23", | 5 | "version": "5.0.0-beta.24", |
6 | "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", | 6 | "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", |
7 | "copyright": "adlk x franz - Stefan Malzner", | 7 | "copyright": "adlk x franz - Stefan Malzner", |
8 | "main": "index.js", | 8 | "main": "index.js", |
diff --git a/src/components/services/content/ErrorHandlers/WebviewErrorHandler.js b/src/components/services/content/ErrorHandlers/WebviewErrorHandler.js index 415a8d1b5..37ccc8e51 100644 --- a/src/components/services/content/ErrorHandlers/WebviewErrorHandler.js +++ b/src/components/services/content/ErrorHandlers/WebviewErrorHandler.js | |||
@@ -31,7 +31,7 @@ const messages = defineMessages({ | |||
31 | }, | 31 | }, |
32 | }); | 32 | }); |
33 | 33 | ||
34 | export default @injectSheet(styles) @observer class WebviewCrashHandler extends Component { | 34 | export default @injectSheet(styles) @observer class WebviewErrorHandler extends Component { |
35 | static propTypes = { | 35 | static propTypes = { |
36 | name: PropTypes.string.isRequired, | 36 | name: PropTypes.string.isRequired, |
37 | reload: PropTypes.func.isRequired, | 37 | reload: PropTypes.func.isRequired, |
diff --git a/src/components/services/content/ErrorHandlers/styles.js b/src/components/services/content/ErrorHandlers/styles.js index f11386798..9e2509ee5 100644 --- a/src/components/services/content/ErrorHandlers/styles.js +++ b/src/components/services/content/ErrorHandlers/styles.js | |||
@@ -1,4 +1,4 @@ | |||
1 | export default { | 1 | export default theme => ({ |
2 | component: { | 2 | component: { |
3 | left: 0, | 3 | left: 0, |
4 | position: 'absolute', | 4 | position: 'absolute', |
@@ -6,7 +6,7 @@ export default { | |||
6 | width: '100%', | 6 | width: '100%', |
7 | zIndex: 0, | 7 | zIndex: 0, |
8 | alignItems: 'center', | 8 | alignItems: 'center', |
9 | // background: $theme-gray-lighter; | 9 | background: theme.colorWebviewErrorHandlerBackground, |
10 | display: 'flex', | 10 | display: 'flex', |
11 | flexDirection: 'column', | 11 | flexDirection: 'column', |
12 | justifyContent: 'center', | 12 | justifyContent: 'center', |
@@ -22,4 +22,4 @@ export default { | |||
22 | margin: [0, 10, 0, 10], | 22 | margin: [0, 10, 0, 10], |
23 | }, | 23 | }, |
24 | }, | 24 | }, |
25 | }; | 25 | }); |
diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js index b1a2c0207..bb577e4cc 100644 --- a/src/components/services/content/ServiceWebview.js +++ b/src/components/services/content/ServiceWebview.js | |||
@@ -18,7 +18,6 @@ export default @observer class ServiceWebview extends Component { | |||
18 | setWebviewReference: PropTypes.func.isRequired, | 18 | setWebviewReference: PropTypes.func.isRequired, |
19 | reload: PropTypes.func.isRequired, | 19 | reload: PropTypes.func.isRequired, |
20 | edit: PropTypes.func.isRequired, | 20 | edit: PropTypes.func.isRequired, |
21 | isAppMuted: PropTypes.bool.isRequired, | ||
22 | enable: PropTypes.func.isRequired, | 21 | enable: PropTypes.func.isRequired, |
23 | isActive: PropTypes.bool, | 22 | isActive: PropTypes.bool, |
24 | }; | 23 | }; |
@@ -69,7 +68,6 @@ export default @observer class ServiceWebview extends Component { | |||
69 | setWebviewReference, | 68 | setWebviewReference, |
70 | reload, | 69 | reload, |
71 | edit, | 70 | edit, |
72 | isAppMuted, | ||
73 | enable, | 71 | enable, |
74 | } = this.props; | 72 | } = this.props; |
75 | 73 | ||
@@ -137,7 +135,6 @@ export default @observer class ServiceWebview extends Component { | |||
137 | })} | 135 | })} |
138 | onUpdateTargetUrl={this.updateTargetUrl} | 136 | onUpdateTargetUrl={this.updateTargetUrl} |
139 | useragent={service.userAgent} | 137 | useragent={service.userAgent} |
140 | muted={isAppMuted || service.isMuted} | ||
141 | allowpopups | 138 | allowpopups |
142 | /> | 139 | /> |
143 | )} | 140 | )} |
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js index 1aeb17e03..54f16ba12 100644 --- a/src/components/services/content/Services.js +++ b/src/components/services/content/Services.js | |||
@@ -26,7 +26,6 @@ export default @observer class Services extends Component { | |||
26 | openWindow: PropTypes.func.isRequired, | 26 | openWindow: PropTypes.func.isRequired, |
27 | reload: PropTypes.func.isRequired, | 27 | reload: PropTypes.func.isRequired, |
28 | openSettings: PropTypes.func.isRequired, | 28 | openSettings: PropTypes.func.isRequired, |
29 | isAppMuted: PropTypes.bool.isRequired, | ||
30 | update: PropTypes.func.isRequired, | 29 | update: PropTypes.func.isRequired, |
31 | }; | 30 | }; |
32 | 31 | ||
@@ -46,7 +45,6 @@ export default @observer class Services extends Component { | |||
46 | openWindow, | 45 | openWindow, |
47 | reload, | 46 | reload, |
48 | openSettings, | 47 | openSettings, |
49 | isAppMuted, | ||
50 | update, | 48 | update, |
51 | } = this.props; | 49 | } = this.props; |
52 | const { intl } = this.context; | 50 | const { intl } = this.context; |
@@ -81,7 +79,6 @@ export default @observer class Services extends Component { | |||
81 | openWindow={openWindow} | 79 | openWindow={openWindow} |
82 | reload={() => reload({ serviceId: service.id })} | 80 | reload={() => reload({ serviceId: service.id })} |
83 | edit={() => openSettings({ path: `services/edit/${service.id}` })} | 81 | edit={() => openSettings({ path: `services/edit/${service.id}` })} |
84 | isAppMuted={isAppMuted} | ||
85 | enable={() => update({ | 82 | enable={() => update({ |
86 | serviceId: service.id, | 83 | serviceId: service.id, |
87 | serviceData: { | 84 | serviceData: { |
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js index 430b49b55..749912c59 100644 --- a/src/containers/layout/AppLayoutContainer.js +++ b/src/containers/layout/AppLayoutContainer.js | |||
@@ -108,7 +108,6 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e | |||
108 | openWindow={openWindow} | 108 | openWindow={openWindow} |
109 | reload={reload} | 109 | reload={reload} |
110 | openSettings={openSettings} | 110 | openSettings={openSettings} |
111 | isAppMuted={settings.all.app.isAppMuted} | ||
112 | update={updateService} | 111 | update={updateService} |
113 | /> | 112 | /> |
114 | ); | 113 | ); |
diff --git a/src/models/Service.js b/src/models/Service.js index 936f3a53f..8a2a8d3d8 100644 --- a/src/models/Service.js +++ b/src/models/Service.js | |||
@@ -15,7 +15,7 @@ export default class Service { | |||
15 | 15 | ||
16 | events = {}; | 16 | events = {}; |
17 | 17 | ||
18 | isAttached = false; | 18 | @observable isAttached = false; |
19 | 19 | ||
20 | @observable isActive = false; // Is current webview active | 20 | @observable isActive = false; // Is current webview active |
21 | 21 | ||
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 0ab57312a..efd57a09d 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -70,6 +70,7 @@ export default class ServicesStore extends Store { | |||
70 | this._mapActiveServiceToServiceModelReaction.bind(this), | 70 | this._mapActiveServiceToServiceModelReaction.bind(this), |
71 | this._saveActiveService.bind(this), | 71 | this._saveActiveService.bind(this), |
72 | this._logoutReaction.bind(this), | 72 | this._logoutReaction.bind(this), |
73 | this._handleMuteSettings.bind(this), | ||
73 | ]); | 74 | ]); |
74 | 75 | ||
75 | // Just bind this | 76 | // Just bind this |
@@ -627,6 +628,20 @@ export default class ServicesStore extends Store { | |||
627 | } | 628 | } |
628 | } | 629 | } |
629 | 630 | ||
631 | _handleMuteSettings() { | ||
632 | const { enabled } = this; | ||
633 | const { isAppMuted } = this.stores.settings.app; | ||
634 | |||
635 | enabled.forEach((service) => { | ||
636 | const { isAttached } = service; | ||
637 | const isMuted = isAppMuted || service.isMuted; | ||
638 | |||
639 | if (isAttached) { | ||
640 | service.webview.setAudioMuted(isMuted); | ||
641 | } | ||
642 | }); | ||
643 | } | ||
644 | |||
630 | _shareSettingsWithServiceProcess() { | 645 | _shareSettingsWithServiceProcess() { |
631 | const settings = this.stores.settings.app; | 646 | const settings = this.stores.settings.app; |
632 | this.actions.service.sendIPCMessageToAllServices({ | 647 | this.actions.service.sendIPCMessageToAllServices({ |
diff --git a/src/styles/layout.scss b/src/styles/layout.scss index ebf468cf0..8b7cc512a 100644 --- a/src/styles/layout.scss +++ b/src/styles/layout.scss | |||
@@ -19,7 +19,7 @@ html { overflow: hidden; } | |||
19 | 19 | ||
20 | &:hover, | 20 | &:hover, |
21 | &:active { color: $dark-theme-gray-smoke; } | 21 | &:active { color: $dark-theme-gray-smoke; } |
22 | &.is-muted { color: $dark-theme-gray; } | 22 | &.is-muted { color: $theme-brand-primary; } |
23 | } | 23 | } |
24 | } | 24 | } |
25 | 25 | ||
diff --git a/src/theme/dark/index.js b/src/theme/dark/index.js index 429284f9e..8fdb321f3 100644 --- a/src/theme/dark/index.js +++ b/src/theme/dark/index.js | |||
@@ -8,6 +8,9 @@ export const colorBackgroundSubscriptionContainer = legacyStyles.themeBrandInfo; | |||
8 | export const colorHeadline = legacyStyles.darkThemeTextColor; | 8 | export const colorHeadline = legacyStyles.darkThemeTextColor; |
9 | export const colorText = legacyStyles.darkThemeTextColor; | 9 | export const colorText = legacyStyles.darkThemeTextColor; |
10 | 10 | ||
11 | // Error Handler | ||
12 | export const colorWebviewErrorHandlerBackground = legacyStyles.darkThemeGrayDarkest; | ||
13 | |||
11 | // Loader | 14 | // Loader |
12 | export const colorFullscreenLoaderSpinner = '#FFF'; | 15 | export const colorFullscreenLoaderSpinner = '#FFF'; |
13 | export const colorWebviewLoaderBackground = hexToRgba(legacyStyles.darkThemeGrayDarkest, 0.5); | 16 | export const colorWebviewLoaderBackground = hexToRgba(legacyStyles.darkThemeGrayDarkest, 0.5); |
diff --git a/src/theme/default/index.js b/src/theme/default/index.js index 3ce8e7f0e..61410073d 100644 --- a/src/theme/default/index.js +++ b/src/theme/default/index.js | |||
@@ -23,6 +23,9 @@ export const colorSubscriptionContainerTitle = brandPrimary; | |||
23 | export const colorSubscriptionContainerActionButtonBackground = brandPrimary; | 23 | export const colorSubscriptionContainerActionButtonBackground = brandPrimary; |
24 | export const colorSubscriptionContainerActionButtonColor = '#FFF'; | 24 | export const colorSubscriptionContainerActionButtonColor = '#FFF'; |
25 | 25 | ||
26 | // Error Handler | ||
27 | export const colorWebviewErrorHandlerBackground = legacyStyles.themeGrayLighter; | ||
28 | |||
26 | // Loader | 29 | // Loader |
27 | export const colorAppLoaderSpinner = '#FFF'; | 30 | export const colorAppLoaderSpinner = '#FFF'; |
28 | export const colorFullscreenLoaderSpinner = legacyStyles.themeGrayDark; | 31 | export const colorFullscreenLoaderSpinner = legacyStyles.themeGrayDark; |