diff options
Diffstat (limited to 'packages/main/src/stores/Service.ts')
-rw-r--r-- | packages/main/src/stores/Service.ts | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/packages/main/src/stores/Service.ts b/packages/main/src/stores/Service.ts index 9b2bf1e..26e3517 100644 --- a/packages/main/src/stores/Service.ts +++ b/packages/main/src/stores/Service.ts | |||
@@ -30,6 +30,7 @@ import { Instance, getSnapshot, cast } from 'mobx-state-tree'; | |||
30 | import type { ServiceView } from '../infrastructure/electron/types'; | 30 | import type { ServiceView } from '../infrastructure/electron/types'; |
31 | import { getLogger } from '../utils/log'; | 31 | import { getLogger } from '../utils/log'; |
32 | 32 | ||
33 | import { getEnv } from './MainEnv'; | ||
33 | import ServiceSettings from './ServiceSettings'; | 34 | import ServiceSettings from './ServiceSettings'; |
34 | import type ServiceConfig from './config/ServiceConfig'; | 35 | import type ServiceConfig from './config/ServiceConfig'; |
35 | 36 | ||
@@ -88,6 +89,22 @@ const Service = defineServiceModel(ServiceSettings) | |||
88 | self.indirectMessageCount = indirect; | 89 | self.indirectMessageCount = indirect; |
89 | } | 90 | } |
90 | }, | 91 | }, |
92 | goBack(): void { | ||
93 | self.serviceView?.goBack(); | ||
94 | }, | ||
95 | goForward(): void { | ||
96 | self.serviceView?.goForward(); | ||
97 | }, | ||
98 | stop(): void { | ||
99 | self.serviceView?.stop(); | ||
100 | }, | ||
101 | openCurrentURLInExternalBrowser(): void { | ||
102 | if (self.currentUrl === undefined) { | ||
103 | log.error('Cannot open empty URL in external browser'); | ||
104 | return; | ||
105 | } | ||
106 | getEnv(self).openURLInExternalBrowser(self.currentUrl); | ||
107 | }, | ||
91 | })) | 108 | })) |
92 | .actions((self) => { | 109 | .actions((self) => { |
93 | function setState(state: ServiceStateSnapshotIn): void { | 110 | function setState(state: ServiceStateSnapshotIn): void { |
@@ -134,12 +151,6 @@ const Service = defineServiceModel(ServiceSettings) | |||
134 | }); | 151 | }); |
135 | } | 152 | } |
136 | }, | 153 | }, |
137 | goBack(): void { | ||
138 | self.serviceView?.goBack(); | ||
139 | }, | ||
140 | goForward(): void { | ||
141 | self.serviceView?.goForward(); | ||
142 | }, | ||
143 | reload(ignoreCache = false): void { | 154 | reload(ignoreCache = false): void { |
144 | if (self.serviceView === undefined) { | 155 | if (self.serviceView === undefined) { |
145 | setState({ type: 'initializing' }); | 156 | setState({ type: 'initializing' }); |
@@ -147,9 +158,6 @@ const Service = defineServiceModel(ServiceSettings) | |||
147 | self.serviceView?.reload(ignoreCache); | 158 | self.serviceView?.reload(ignoreCache); |
148 | } | 159 | } |
149 | }, | 160 | }, |
150 | stop(): void { | ||
151 | self.serviceView?.stop(); | ||
152 | }, | ||
153 | go(url: string): void { | 161 | go(url: string): void { |
154 | if (self.serviceView === undefined) { | 162 | if (self.serviceView === undefined) { |
155 | self.currentUrl = url; | 163 | self.currentUrl = url; |
@@ -207,6 +215,9 @@ const Service = defineServiceModel(ServiceSettings) | |||
207 | case 'temporarily-trust-current-certificate': | 215 | case 'temporarily-trust-current-certificate': |
208 | self.temporarilyTrustCurrentCertificate(action.fingerprint); | 216 | self.temporarilyTrustCurrentCertificate(action.fingerprint); |
209 | break; | 217 | break; |
218 | case 'open-current-url-in-external-browser': | ||
219 | self.openCurrentURLInExternalBrowser(); | ||
220 | break; | ||
210 | default: | 221 | default: |
211 | log.error('Unknown action to dispatch', action); | 222 | log.error('Unknown action to dispatch', action); |
212 | break; | 223 | break; |