aboutsummaryrefslogtreecommitdiffstats
path: root/src/containers
diff options
context:
space:
mode:
Diffstat (limited to 'src/containers')
-rw-r--r--src/containers/auth/ChangeServerScreen.js50
-rw-r--r--src/containers/auth/LoginScreen.js1
-rw-r--r--src/containers/auth/SignupScreen.js1
-rw-r--r--src/containers/auth/WelcomeScreen.js1
-rw-r--r--src/containers/settings/EditServiceScreen.js52
-rw-r--r--src/containers/settings/EditSettingsScreen.js80
-rw-r--r--src/containers/settings/TeamScreen.js3
7 files changed, 152 insertions, 36 deletions
diff --git a/src/containers/auth/ChangeServerScreen.js b/src/containers/auth/ChangeServerScreen.js
new file mode 100644
index 000000000..5c58087a3
--- /dev/null
+++ b/src/containers/auth/ChangeServerScreen.js
@@ -0,0 +1,50 @@
1import React, { Component } from 'react';
2import PropTypes from 'prop-types';
3import { inject, observer } from 'mobx-react';
4import { RouterStore } from 'mobx-react-router';
5import ChangeServer from '../../components/auth/ChangeServer';
6import SettingsStore from '../../stores/SettingsStore';
7
8export default @inject('stores', 'actions') @observer class ChangeServerScreen extends Component {
9 constructor(props) {
10 super(props);
11
12 this.onSubmit = this.onSubmit.bind(this);
13 }
14
15 onSubmit(values) {
16 const { server } = values;
17
18 this.props.actions.settings.update({
19 type: 'app',
20 data: {
21 server,
22 },
23 });
24 this.props.stores.router.push('/auth');
25 }
26
27 render() {
28 const { stores } = this.props;
29 const { server } = stores.settings.all.app;
30
31 return (
32 <ChangeServer
33 onSubmit={this.onSubmit}
34 server={server}
35 />
36 );
37 }
38}
39
40ChangeServerScreen.wrappedComponent.propTypes = {
41 actions: PropTypes.shape({
42 settings: PropTypes.shape({
43 update: PropTypes.func.isRequired,
44 }).isRequired,
45 }).isRequired,
46 stores: PropTypes.shape({
47 settings: PropTypes.instanceOf(SettingsStore).isRequired,
48 router: PropTypes.instanceOf(RouterStore).isRequired,
49 }).isRequired,
50};
diff --git a/src/containers/auth/LoginScreen.js b/src/containers/auth/LoginScreen.js
index e5ee10785..d17820ad6 100644
--- a/src/containers/auth/LoginScreen.js
+++ b/src/containers/auth/LoginScreen.js
@@ -21,6 +21,7 @@ export default @inject('stores', 'actions') @observer class LoginScreen extends
21 isServerLogout={stores.user.logoutReason === stores.user.logoutReasonTypes.SERVER} 21 isServerLogout={stores.user.logoutReason === stores.user.logoutReasonTypes.SERVER}
22 signupRoute={stores.user.signupRoute} 22 signupRoute={stores.user.signupRoute}
23 passwordRoute={stores.user.passwordRoute} 23 passwordRoute={stores.user.passwordRoute}
24 changeServerRoute={stores.user.changeServerRoute}
24 error={error} 25 error={error}
25 /> 26 />
26 ); 27 );
diff --git a/src/containers/auth/SignupScreen.js b/src/containers/auth/SignupScreen.js
index f93498be2..803fe1cd9 100644
--- a/src/containers/auth/SignupScreen.js
+++ b/src/containers/auth/SignupScreen.js
@@ -36,6 +36,7 @@ export default @inject('stores', 'actions') @observer class SignupScreen extends
36 onSubmit={values => this.onSignup(values)} 36 onSubmit={values => this.onSignup(values)}
37 isSubmitting={stores.user.signupRequest.isExecuting} 37 isSubmitting={stores.user.signupRequest.isExecuting}
38 loginRoute={stores.user.loginRoute} 38 loginRoute={stores.user.loginRoute}
39 changeServerRoute={stores.user.changeServerRoute}
39 error={error} 40 error={error}
40 /> 41 />
41 ); 42 );
diff --git a/src/containers/auth/WelcomeScreen.js b/src/containers/auth/WelcomeScreen.js
index 75182345a..6f2d0eee6 100644
--- a/src/containers/auth/WelcomeScreen.js
+++ b/src/containers/auth/WelcomeScreen.js
@@ -14,6 +14,7 @@ export default @inject('stores', 'actions') @observer class LoginScreen extends
14 <Welcome 14 <Welcome
15 loginRoute={user.loginRoute} 15 loginRoute={user.loginRoute}
16 signupRoute={user.signupRoute} 16 signupRoute={user.signupRoute}
17 changeServerRoute={user.changeServerRoute}
17 recipes={recipePreviews.featured} 18 recipes={recipePreviews.featured}
18 /> 19 />
19 ); 20 );
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js
index a7d33a3ea..14c1ef41e 100644
--- a/src/containers/settings/EditServiceScreen.js
+++ b/src/containers/settings/EditServiceScreen.js
@@ -33,6 +33,10 @@ const messages = defineMessages({
33 id: 'settings.service.form.enableService', 33 id: 'settings.service.form.enableService',
34 defaultMessage: '!!!Enable service', 34 defaultMessage: '!!!Enable service',
35 }, 35 },
36 disableHibernation: {
37 id: 'settings.service.form.disableHibernation',
38 defaultMessage: '!!!Disable hibernation',
39 },
36 enableNotification: { 40 enableNotification: {
37 id: 'settings.service.form.enableNotification', 41 id: 'settings.service.form.enableNotification',
38 defaultMessage: '!!!Enable Notifications', 42 defaultMessage: '!!!Enable Notifications',
@@ -65,6 +69,18 @@ const messages = defineMessages({
65 id: 'settings.service.form.enableDarkMode', 69 id: 'settings.service.form.enableDarkMode',
66 defaultMessage: '!!!Enable Dark Mode', 70 defaultMessage: '!!!Enable Dark Mode',
67 }, 71 },
72 darkReaderBrightness: {
73 id: 'settings.service.form.darkReaderBrightness',
74 defaultMessage: '!!!Darkreader Brightness',
75 },
76 darkReaderContrast: {
77 id: 'settings.service.form.darkReaderContrast',
78 defaultMessage: '!!!Darkreader Contrast',
79 },
80 darkReaderSepia: {
81 id: 'settings.service.form.darkReaderSepia',
82 defaultMessage: '!!!Darkreader Sepia',
83 },
68 enableProxy: { 84 enableProxy: {
69 id: 'settings.service.form.proxy.isEnabled', 85 id: 'settings.service.form.proxy.isEnabled',
70 defaultMessage: '!!!Use Proxy', 86 defaultMessage: '!!!Use Proxy',
@@ -96,6 +112,14 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
96 const { action } = this.props.router.params; 112 const { action } = this.props.router.params;
97 const { recipes, services } = this.props.stores; 113 const { recipes, services } = this.props.stores;
98 const { createService, updateService } = this.props.actions.service; 114 const { createService, updateService } = this.props.actions.service;
115 data.darkReaderSettings = {
116 brightness: data.darkReaderBrightness,
117 contrast: data.darkReaderContrast,
118 sepia: data.darkReaderSepia,
119 };
120 delete data.darkReaderContrast;
121 delete data.darkReaderBrightness;
122 delete data.darkReaderSepia;
99 123
100 const serviceData = data; 124 const serviceData = data;
101 serviceData.isMuted = !serviceData.isMuted; 125 serviceData.isMuted = !serviceData.isMuted;
@@ -114,8 +138,11 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
114 138
115 const { 139 const {
116 stores, 140 stores,
141 router,
117 } = this.props; 142 } = this.props;
118 143
144 const { action } = router.params;
145
119 let defaultSpellcheckerLanguage = SPELLCHECKER_LOCALES[stores.settings.app.spellcheckerLanguage]; 146 let defaultSpellcheckerLanguage = SPELLCHECKER_LOCALES[stores.settings.app.spellcheckerLanguage];
120 147
121 if (stores.settings.app.spellcheckerLanguage === 'automatic') { 148 if (stores.settings.app.spellcheckerLanguage === 'automatic') {
@@ -140,6 +167,11 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
140 value: service.isEnabled, 167 value: service.isEnabled,
141 default: true, 168 default: true,
142 }, 169 },
170 disableHibernation: {
171 label: intl.formatMessage(messages.disableHibernation),
172 value: action !== 'edit' ? false : service.disableHibernation,
173 default: false,
174 },
143 isNotificationEnabled: { 175 isNotificationEnabled: {
144 label: intl.formatMessage(messages.enableNotification), 176 label: intl.formatMessage(messages.enableNotification),
145 value: service.isNotificationEnabled, 177 value: service.isNotificationEnabled,
@@ -166,6 +198,21 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
166 value: service.isDarkModeEnabled, 198 value: service.isDarkModeEnabled,
167 default: stores.settings.app.darkMode, 199 default: stores.settings.app.darkMode,
168 }, 200 },
201 darkReaderBrightness: {
202 label: intl.formatMessage(messages.darkReaderBrightness),
203 value: service.darkReaderSettings ? service.darkReaderSettings.brightness : undefined,
204 default: 100,
205 },
206 darkReaderContrast: {
207 label: intl.formatMessage(messages.darkReaderContrast),
208 value: service.darkReaderSettings ? service.darkReaderSettings.contrast : undefined,
209 default: 90,
210 },
211 darkReaderSepia: {
212 label: intl.formatMessage(messages.darkReaderSepia),
213 value: service.darkReaderSettings ? service.darkReaderSettings.sepia : undefined,
214 default: 10,
215 },
169 spellcheckerLanguage: { 216 spellcheckerLanguage: {
170 label: intl.formatMessage(globalMessages.spellcheckerLanguage), 217 label: intl.formatMessage(globalMessages.spellcheckerLanguage),
171 value: service.spellcheckerLanguage, 218 value: service.spellcheckerLanguage,
@@ -292,7 +339,9 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
292 } 339 }
293 340
294 render() { 341 render() {
295 const { recipes, services, user } = this.props.stores; 342 const {
343 recipes, services, user, settings,
344 } = this.props.stores;
296 const { action } = this.props.router.params; 345 const { action } = this.props.router.params;
297 346
298 let recipe; 347 let recipe;
@@ -346,6 +395,7 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex
346 isProxyFeatureEnabled={proxyFeature.isEnabled} 395 isProxyFeatureEnabled={proxyFeature.isEnabled}
347 isServiceProxyIncludedInCurrentPlan={proxyFeature.isIncludedInCurrentPlan} 396 isServiceProxyIncludedInCurrentPlan={proxyFeature.isIncludedInCurrentPlan}
348 isSpellcheckerIncludedInCurrentPlan={spellcheckerFeature.isIncludedInCurrentPlan} 397 isSpellcheckerIncludedInCurrentPlan={spellcheckerFeature.isIncludedInCurrentPlan}
398 isHibernationFeatureActive={settings.app.hibernate}
349 /> 399 />
350 </ErrorBoundary> 400 </ErrorBoundary>
351 ); 401 );
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 5221b0694..74ec1909e 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -11,7 +11,7 @@ import TodosStore from '../../features/todos/store';
11import Form from '../../lib/Form'; 11import Form from '../../lib/Form';
12import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages'; 12import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages';
13import { 13import {
14 DEFAULT_APP_SETTINGS, HIBERNATION_STRATEGIES, SIDEBAR_WIDTH, ICON_SIZES, NAVIGATION_BAR_BEHAVIOURS, 14 DEFAULT_APP_SETTINGS, HIBERNATION_STRATEGIES, SIDEBAR_WIDTH, ICON_SIZES, NAVIGATION_BAR_BEHAVIOURS, TODO_APPS,
15} from '../../config'; 15} from '../../config';
16import { config as spellcheckerConfig } from '../../features/spellchecker'; 16import { config as spellcheckerConfig } from '../../features/spellchecker';
17 17
@@ -20,8 +20,6 @@ import { getSelectOptions } from '../../helpers/i18n-helpers';
20import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; 20import EditSettingsForm from '../../components/settings/settings/EditSettingsForm';
21import ErrorBoundary from '../../components/util/ErrorBoundary'; 21import ErrorBoundary from '../../components/util/ErrorBoundary';
22 22
23import { API, TODOS_FRONTEND } from '../../environment';
24
25import globalMessages from '../../i18n/globalMessages'; 23import globalMessages from '../../i18n/globalMessages';
26import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos'; 24import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos';
27import WorkspacesStore from '../../features/workspaces/store'; 25import WorkspacesStore from '../../features/workspaces/store';
@@ -42,7 +40,7 @@ const messages = defineMessages({
42 }, 40 },
43 startMinimized: { 41 startMinimized: {
44 id: 'settings.app.form.startMinimized', 42 id: 'settings.app.form.startMinimized',
45 defaultMessage: '!!!Start minimized in tray', 43 defaultMessage: '!!!Start minimized',
46 }, 44 },
47 enableSystemTray: { 45 enableSystemTray: {
48 id: 'settings.app.form.enableSystemTray', 46 id: 'settings.app.form.enableSystemTray',
@@ -76,14 +74,14 @@ const messages = defineMessages({
76 id: 'settings.app.form.hibernationStrategy', 74 id: 'settings.app.form.hibernationStrategy',
77 defaultMessage: '!!!Hibernation strategy', 75 defaultMessage: '!!!Hibernation strategy',
78 }, 76 },
79 server: { 77 predefinedTodoServer: {
80 id: 'settings.app.form.server', 78 id: 'settings.app.form.predefinedTodoServer',
81 defaultMessage: '!!!Server',
82 },
83 todoServer: {
84 id: 'settings.app.form.todoServer',
85 defaultMessage: '!!!Todo Server', 79 defaultMessage: '!!!Todo Server',
86 }, 80 },
81 customTodoServer: {
82 id: 'settings.app.form.customTodoServer',
83 defaultMessage: '!!!Custom TodoServer',
84 },
87 enableLock: { 85 enableLock: {
88 id: 'settings.app.form.enableLock', 86 id: 'settings.app.form.enableLock',
89 defaultMessage: '!!!Enable Password Lock', 87 defaultMessage: '!!!Enable Password Lock',
@@ -122,7 +120,7 @@ const messages = defineMessages({
122 }, 120 },
123 adaptableDarkMode: { 121 adaptableDarkMode: {
124 id: 'settings.app.form.adaptableDarkMode', 122 id: 'settings.app.form.adaptableDarkMode',
125 defaultMessage: '!!!Synchronize dark mode with my Mac\'s dark mode setting', 123 defaultMessage: '!!!Synchronize dark mode with my OS\'s dark mode setting',
126 }, 124 },
127 universalDarkMode: { 125 universalDarkMode: {
128 id: 'settings.app.form.universalDarkMode', 126 id: 'settings.app.form.universalDarkMode',
@@ -148,6 +146,10 @@ const messages = defineMessages({
148 id: 'settings.app.form.showMessagesBadgesWhenMuted', 146 id: 'settings.app.form.showMessagesBadgesWhenMuted',
149 defaultMessage: '!!!Show unread message badge when notifications are disabled', 147 defaultMessage: '!!!Show unread message badge when notifications are disabled',
150 }, 148 },
149 showDragArea: {
150 id: 'settings.app.form.showDragArea',
151 defaultMessage: '!!!Show draggable area on window',
152 },
151 enableSpellchecking: { 153 enableSpellchecking: {
152 id: 'settings.app.form.enableSpellchecking', 154 id: 'settings.app.form.enableSpellchecking',
153 defaultMessage: '!!!Enable spell checking', 155 defaultMessage: '!!!Enable spell checking',
@@ -160,9 +162,9 @@ const messages = defineMessages({
160 id: 'settings.app.form.beta', 162 id: 'settings.app.form.beta',
161 defaultMessage: '!!!Include beta versions', 163 defaultMessage: '!!!Include beta versions',
162 }, 164 },
163 noUpdates: { 165 automaticUpdates: {
164 id: 'settings.app.form.noUpdates', 166 id: 'settings.app.form.automaticUpdates',
165 defaultMessage: '!!!Disable updates', 167 defaultMessage: '!!!Enable updates',
166 }, 168 },
167 enableTodos: { 169 enableTodos: {
168 id: 'settings.app.form.enableTodos', 170 id: 'settings.app.form.enableTodos',
@@ -207,8 +209,8 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
207 sentry: settingsData.sentry, 209 sentry: settingsData.sentry,
208 hibernate: settingsData.hibernate, 210 hibernate: settingsData.hibernate,
209 hibernationStrategy: settingsData.hibernationStrategy, 211 hibernationStrategy: settingsData.hibernationStrategy,
210 server: settingsData.server, 212 predefinedTodoServer: settingsData.predefinedTodoServer,
211 todoServer: settingsData.todoServer, 213 customTodoServer: settingsData.customTodoServer,
212 lockingFeatureEnabled: settingsData.lockingFeatureEnabled, 214 lockingFeatureEnabled: settingsData.lockingFeatureEnabled,
213 lockedPassword: settingsData.lockedPassword, 215 lockedPassword: settingsData.lockedPassword,
214 useTouchIdToUnlock: settingsData.useTouchIdToUnlock, 216 useTouchIdToUnlock: settingsData.useTouchIdToUnlock,
@@ -225,17 +227,18 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
225 iconSize: settingsData.iconSize, 227 iconSize: settingsData.iconSize,
226 accentColor: settingsData.accentColor, 228 accentColor: settingsData.accentColor,
227 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, 229 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted,
230 showDragArea: settingsData.showDragArea,
228 enableSpellchecking: settingsData.enableSpellchecking, 231 enableSpellchecking: settingsData.enableSpellchecking,
229 spellcheckerLanguage: settingsData.spellcheckerLanguage, 232 spellcheckerLanguage: settingsData.spellcheckerLanguage,
230 beta: settingsData.beta, // we need this info in the main process as well 233 beta: settingsData.beta, // we need this info in the main process as well
231 noUpdates: settingsData.noUpdates, // we need this info in the main process as well 234 automaticUpdates: settingsData.automaticUpdates, // we need this info in the main process as well
232 locale: settingsData.locale, // we need this info in the main process as well 235 locale: settingsData.locale, // we need this info in the main process as well
233 }, 236 },
234 }); 237 });
235 238
236 user.update({ 239 user.update({
237 userData: { 240 userData: {
238 noUpdates: settingsData.noUpdates, 241 automaticUpdates: settingsData.automaticUpdates,
239 beta: settingsData.beta, 242 beta: settingsData.beta,
240 locale: settingsData.locale, 243 locale: settingsData.locale,
241 }, 244 },
@@ -280,6 +283,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
280 sort: false, 283 sort: false,
281 }); 284 });
282 285
286 const todoApp = getSelectOptions({
287 locales: TODO_APPS,
288 sort: false,
289 });
290
283 const sidebarWidth = getSelectOptions({ 291 const sidebarWidth = getSelectOptions({
284 locales: SIDEBAR_WIDTH, 292 locales: SIDEBAR_WIDTH,
285 sort: false, 293 sort: false,
@@ -359,15 +367,16 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
359 options: hibernationStrategies, 367 options: hibernationStrategies,
360 default: DEFAULT_APP_SETTINGS.hibernationStrategy, 368 default: DEFAULT_APP_SETTINGS.hibernationStrategy,
361 }, 369 },
362 server: { 370 predefinedTodoServer: {
363 label: intl.formatMessage(messages.server), 371 label: intl.formatMessage(messages.predefinedTodoServer),
364 value: settings.all.app.server || API, 372 value: settings.all.app.predefinedTodoServer,
365 default: API, 373 default: DEFAULT_APP_SETTINGS.predefinedTodoServer,
374 options: todoApp,
366 }, 375 },
367 todoServer: { 376 customTodoServer: {
368 label: intl.formatMessage(messages.todoServer), 377 label: intl.formatMessage(messages.customTodoServer),
369 value: settings.all.app.todoServer, 378 value: settings.all.app.customTodoServer,
370 default: TODOS_FRONTEND, 379 default: DEFAULT_APP_SETTINGS.customTodoServer,
371 }, 380 },
372 lockingFeatureEnabled: { 381 lockingFeatureEnabled: {
373 label: intl.formatMessage(messages.enableLock), 382 label: intl.formatMessage(messages.enableLock),
@@ -418,6 +427,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
418 value: settings.all.app.showMessageBadgeWhenMuted, 427 value: settings.all.app.showMessageBadgeWhenMuted,
419 default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted, 428 default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted,
420 }, 429 },
430 showDragArea: {
431 label: intl.formatMessage(messages.showDragArea),
432 value: settings.all.app.showDragArea,
433 default: DEFAULT_APP_SETTINGS.showDragArea,
434 },
421 enableSpellchecking: { 435 enableSpellchecking: {
422 label: intl.formatMessage(messages.enableSpellchecking), 436 label: intl.formatMessage(messages.enableSpellchecking),
423 value: !this.props.stores.user.data.isPremium && !spellcheckerConfig.isIncludedInCurrentPlan ? false : settings.all.app.enableSpellchecking, 437 value: !this.props.stores.user.data.isPremium && !spellcheckerConfig.isIncludedInCurrentPlan ? false : settings.all.app.enableSpellchecking,
@@ -477,10 +491,10 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
477 value: user.data.beta, 491 value: user.data.beta,
478 default: DEFAULT_APP_SETTINGS.beta, 492 default: DEFAULT_APP_SETTINGS.beta,
479 }, 493 },
480 noUpdates: { 494 automaticUpdates: {
481 label: intl.formatMessage(messages.noUpdates), 495 label: intl.formatMessage(messages.automaticUpdates),
482 value: settings.app.noUpdates, 496 value: settings.app.automaticUpdates,
483 default: DEFAULT_APP_SETTINGS.noUpdates, 497 default: DEFAULT_APP_SETTINGS.automaticUpdates,
484 }, 498 },
485 }, 499 },
486 }; 500 };
@@ -541,13 +555,13 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e
541 isSpellcheckerIncludedInCurrentPlan={spellcheckerConfig.isIncludedInCurrentPlan} 555 isSpellcheckerIncludedInCurrentPlan={spellcheckerConfig.isIncludedInCurrentPlan}
542 isTodosEnabled={todos.isFeatureActive} 556 isTodosEnabled={todos.isFeatureActive}
543 isWorkspaceEnabled={workspaces.isFeatureActive} 557 isWorkspaceEnabled={workspaces.isFeatureActive}
544 server={this.props.stores.settings.app.server}
545 lockingFeatureEnabled={lockingFeatureEnabled} 558 lockingFeatureEnabled={lockingFeatureEnabled}
546 noUpdates={this.props.stores.settings.app.noUpdates} 559 automaticUpdates={this.props.stores.settings.app.automaticUpdates}
547 hibernationEnabled={this.props.stores.settings.app.hibernate} 560 hibernationEnabled={this.props.stores.settings.app.hibernate}
548 isDarkmodeEnabled={this.props.stores.settings.app.darkMode} 561 isDarkmodeEnabled={this.props.stores.settings.app.darkMode}
549 isTrayEnabled={this.props.stores.settings.app.enableSystemTray}
550 isAdaptableDarkModeEnabled={this.props.stores.settings.app.adaptableDarkMode} 562 isAdaptableDarkModeEnabled={this.props.stores.settings.app.adaptableDarkMode}
563 isTodosActivated={this.props.stores.todos.isFeatureEnabledByUser}
564 isUsingCustomTodoService={this.props.stores.todos.isUsingCustomTodoService}
551 openProcessManager={() => this.openProcessManager()} 565 openProcessManager={() => this.openProcessManager()}
552 /> 566 />
553 </ErrorBoundary> 567 </ErrorBoundary>
diff --git a/src/containers/settings/TeamScreen.js b/src/containers/settings/TeamScreen.js
index d0196923a..3e21ca2d9 100644
--- a/src/containers/settings/TeamScreen.js
+++ b/src/containers/settings/TeamScreen.js
@@ -8,13 +8,12 @@ import SettingsStore from '../../stores/SettingsStore';
8 8
9import TeamDashboard from '../../components/settings/team/TeamDashboard'; 9import TeamDashboard from '../../components/settings/team/TeamDashboard';
10import ErrorBoundary from '../../components/util/ErrorBoundary'; 10import ErrorBoundary from '../../components/util/ErrorBoundary';
11import { WEBSITE } from '../../environment';
12 11
13export default @inject('stores', 'actions') @observer class TeamScreen extends Component { 12export default @inject('stores', 'actions') @observer class TeamScreen extends Component {
14 handleWebsiteLink(route) { 13 handleWebsiteLink(route) {
15 const { actions, stores } = this.props; 14 const { actions, stores } = this.props;
16 15
17 const url = `${WEBSITE}${route}?authToken=${stores.user.authToken}&utm_source=app&utm_medium=account_dashboard`; 16 const url = `https://meetfranz.com/${route}?authToken=${stores.user.authToken}&utm_source=app&utm_medium=account_dashboard`;
18 17
19 actions.app.openExternalUrl({ url }); 18 actions.app.openExternalUrl({ url });
20 } 19 }