aboutsummaryrefslogtreecommitdiffstats
path: root/packages/main/src/stores/Service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/main/src/stores/Service.ts')
-rw-r--r--packages/main/src/stores/Service.ts29
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';
30import type { ServiceView } from '../infrastructure/electron/types'; 30import type { ServiceView } from '../infrastructure/electron/types';
31import { getLogger } from '../utils/log'; 31import { getLogger } from '../utils/log';
32 32
33import { getEnv } from './MainEnv';
33import ServiceSettings from './ServiceSettings'; 34import ServiceSettings from './ServiceSettings';
34import type ServiceConfig from './config/ServiceConfig'; 35import 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;