diff options
Diffstat (limited to 'src/stores')
-rw-r--r-- | src/stores/AppStore.js | 16 | ||||
-rw-r--r-- | src/stores/DictionaryStore.js | 45 | ||||
-rw-r--r-- | src/stores/FeaturesStore.js | 1 | ||||
-rw-r--r-- | src/stores/GlobalErrorStore.js | 1 | ||||
-rw-r--r-- | src/stores/NewsStore.js | 1 | ||||
-rw-r--r-- | src/stores/PaymentStore.js | 3 | ||||
-rw-r--r-- | src/stores/RecipePreviewsStore.js | 2 | ||||
-rw-r--r-- | src/stores/RecipesStore.js | 2 | ||||
-rw-r--r-- | src/stores/RequestStore.js | 3 | ||||
-rw-r--r-- | src/stores/ServicesStore.js | 23 | ||||
-rw-r--r-- | src/stores/SettingsStore.js | 25 | ||||
-rw-r--r-- | src/stores/UserStore.js | 26 | ||||
-rw-r--r-- | src/stores/index.js | 2 | ||||
-rw-r--r-- | src/stores/lib/CachedRequest.js | 1 | ||||
-rw-r--r-- | src/stores/lib/Reaction.js | 2 | ||||
-rw-r--r-- | src/stores/lib/Request.js | 8 | ||||
-rw-r--r-- | src/stores/lib/Store.js | 4 |
17 files changed, 107 insertions, 58 deletions
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 6f156a96d..dd4642d70 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js | |||
@@ -38,12 +38,15 @@ export default class AppStore extends Store { | |||
38 | }; | 38 | }; |
39 | 39 | ||
40 | @observable healthCheckRequest = new Request(this.api.app, 'health'); | 40 | @observable healthCheckRequest = new Request(this.api.app, 'health'); |
41 | |||
41 | @observable getAppCacheSizeRequest = new Request(this.api.local, 'getAppCacheSize'); | 42 | @observable getAppCacheSizeRequest = new Request(this.api.local, 'getAppCacheSize'); |
43 | |||
42 | @observable clearAppCacheRequest = new Request(this.api.local, 'clearAppCache'); | 44 | @observable clearAppCacheRequest = new Request(this.api.local, 'clearAppCache'); |
43 | 45 | ||
44 | @observable autoLaunchOnStart = true; | 46 | @observable autoLaunchOnStart = true; |
45 | 47 | ||
46 | @observable isOnline = navigator.onLine; | 48 | @observable isOnline = navigator.onLine; |
49 | |||
47 | @observable timeOfflineStart; | 50 | @observable timeOfflineStart; |
48 | 51 | ||
49 | @observable updateStatus = null; | 52 | @observable updateStatus = null; |
@@ -150,19 +153,22 @@ export default class AppStore extends Store { | |||
150 | key( | 153 | key( |
151 | '⌘+pagedown, ctrl+pagedown, ⌘+alt+right, ctrl+tab', () => { | 154 | '⌘+pagedown, ctrl+pagedown, ⌘+alt+right, ctrl+tab', () => { |
152 | this.actions.service.setActiveNext(); | 155 | this.actions.service.setActiveNext(); |
153 | }); | 156 | }, |
157 | ); | ||
154 | 158 | ||
155 | // Set active the prev service | 159 | // Set active the prev service |
156 | key( | 160 | key( |
157 | '⌘+pageup, ctrl+pageup, ⌘+alt+left, ctrl+shift+tab', () => { | 161 | '⌘+pageup, ctrl+pageup, ⌘+alt+left, ctrl+shift+tab', () => { |
158 | this.actions.service.setActivePrev(); | 162 | this.actions.service.setActivePrev(); |
159 | }); | 163 | }, |
164 | ); | ||
160 | 165 | ||
161 | // Global Mute | 166 | // Global Mute |
162 | key( | 167 | key( |
163 | '⌘+shift+m ctrl+shift+m', () => { | 168 | '⌘+shift+m ctrl+shift+m', () => { |
164 | this.actions.app.toggleMuteApp(); | 169 | this.actions.app.toggleMuteApp(); |
165 | }); | 170 | }, |
171 | ); | ||
166 | 172 | ||
167 | this.locale = this._getDefaultLocale(); | 173 | this.locale = this._getDefaultLocale(); |
168 | 174 | ||
@@ -182,7 +188,9 @@ export default class AppStore extends Store { | |||
182 | } | 188 | } |
183 | 189 | ||
184 | // Actions | 190 | // Actions |
185 | @action _notify({ title, options, notificationId, serviceId = null }) { | 191 | @action _notify({ |
192 | title, options, notificationId, serviceId = null, | ||
193 | }) { | ||
186 | if (this.stores.settings.all.app.isAppMuted) return; | 194 | if (this.stores.settings.all.app.isAppMuted) return; |
187 | 195 | ||
188 | const notification = new window.Notification(title, options); | 196 | const notification = new window.Notification(title, options); |
diff --git a/src/stores/DictionaryStore.js b/src/stores/DictionaryStore.js deleted file mode 100644 index b9c5f2abf..000000000 --- a/src/stores/DictionaryStore.js +++ /dev/null | |||
@@ -1,45 +0,0 @@ | |||
1 | import { observable } from 'mobx'; | ||
2 | import { createDownloader } from 'hunspell-dict-downloader'; | ||
3 | |||
4 | import Store from './lib/Store'; | ||
5 | |||
6 | import { DICTIONARY_PATH } from '../config'; | ||
7 | |||
8 | const debug = require('debug')('Franz:DictionaryStore'); | ||
9 | |||
10 | export default class DictionaryStore extends Store { | ||
11 | @observable available = [] | ||
12 | @observable installed = [] | ||
13 | |||
14 | _dictDownloader = null | ||
15 | |||
16 | constructor(...args) { | ||
17 | super(...args); | ||
18 | |||
19 | this.registerReactions([ | ||
20 | this._downloadDictForUserLocale.bind(this), | ||
21 | ]); | ||
22 | } | ||
23 | |||
24 | async setup() { | ||
25 | this._dictDownloader = await createDownloader(DICTIONARY_PATH); | ||
26 | debug('dicts', this._dictDownloader); | ||
27 | |||
28 | this.available = this._dictDownloader.availableDictionaries; | ||
29 | this.installed = this._dictDownloader.installedDictionaries; | ||
30 | |||
31 | if (!this.installed.includes('en-us')) { | ||
32 | this._dictDownloader.installDictionary('en-us'); | ||
33 | } | ||
34 | } | ||
35 | |||
36 | _downloadDictForUserLocale() { | ||
37 | const spellcheckerLanguage = this.stores.settings.app.spellcheckerLanguage; | ||
38 | |||
39 | debug('trying to Downloading dict for', spellcheckerLanguage); | ||
40 | if (!this.installed.includes(spellcheckerLanguage) && this.available.includes(spellcheckerLanguage) && spellcheckerLanguage !== 'en-us') { | ||
41 | debug('Downloading dict for', spellcheckerLanguage); | ||
42 | this._dictDownloader.installDictionary(spellcheckerLanguage); | ||
43 | } | ||
44 | } | ||
45 | } | ||
diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index 10c893d3f..2a0713b6f 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js | |||
@@ -11,6 +11,7 @@ import { DEFAULT_FEATURES_CONFIG } from '../config'; | |||
11 | 11 | ||
12 | export default class FeaturesStore extends Store { | 12 | export default class FeaturesStore extends Store { |
13 | @observable defaultFeaturesRequest = new CachedRequest(this.api.features, 'default'); | 13 | @observable defaultFeaturesRequest = new CachedRequest(this.api.features, 'default'); |
14 | |||
14 | @observable featuresRequest = new CachedRequest(this.api.features, 'features'); | 15 | @observable featuresRequest = new CachedRequest(this.api.features, 'features'); |
15 | 16 | ||
16 | async setup() { | 17 | async setup() { |
diff --git a/src/stores/GlobalErrorStore.js b/src/stores/GlobalErrorStore.js index f4b9d7838..90bf751c3 100644 --- a/src/stores/GlobalErrorStore.js +++ b/src/stores/GlobalErrorStore.js | |||
@@ -4,6 +4,7 @@ import Request from './lib/Request'; | |||
4 | 4 | ||
5 | export default class GlobalErrorStore extends Store { | 5 | export default class GlobalErrorStore extends Store { |
6 | @observable error = null; | 6 | @observable error = null; |
7 | |||
7 | @observable response = {}; | 8 | @observable response = {}; |
8 | 9 | ||
9 | constructor(...args) { | 10 | constructor(...args) { |
diff --git a/src/stores/NewsStore.js b/src/stores/NewsStore.js index e5091834f..6984425df 100644 --- a/src/stores/NewsStore.js +++ b/src/stores/NewsStore.js | |||
@@ -8,6 +8,7 @@ import { CHECK_INTERVAL } from '../config'; | |||
8 | 8 | ||
9 | export default class NewsStore extends Store { | 9 | export default class NewsStore extends Store { |
10 | @observable latestNewsRequest = new CachedRequest(this.api.news, 'latest'); | 10 | @observable latestNewsRequest = new CachedRequest(this.api.news, 'latest'); |
11 | |||
11 | @observable hideNewsRequest = new Request(this.api.news, 'hide'); | 12 | @observable hideNewsRequest = new Request(this.api.news, 'hide'); |
12 | 13 | ||
13 | constructor(...args) { | 14 | constructor(...args) { |
diff --git a/src/stores/PaymentStore.js b/src/stores/PaymentStore.js index 9e348d14e..4cabee194 100644 --- a/src/stores/PaymentStore.js +++ b/src/stores/PaymentStore.js | |||
@@ -7,8 +7,11 @@ import { gaEvent } from '../lib/analytics'; | |||
7 | 7 | ||
8 | export default class PaymentStore extends Store { | 8 | export default class PaymentStore extends Store { |
9 | @observable plansRequest = new CachedRequest(this.api.payment, 'plans'); | 9 | @observable plansRequest = new CachedRequest(this.api.payment, 'plans'); |
10 | |||
10 | @observable createHostedPageRequest = new Request(this.api.payment, 'getHostedPage'); | 11 | @observable createHostedPageRequest = new Request(this.api.payment, 'getHostedPage'); |
12 | |||
11 | @observable createDashboardUrlRequest = new Request(this.api.payment, 'getDashboardUrl'); | 13 | @observable createDashboardUrlRequest = new Request(this.api.payment, 'getDashboardUrl'); |
14 | |||
12 | @observable ordersDataRequest = new CachedRequest(this.api.payment, 'getOrders'); | 15 | @observable ordersDataRequest = new CachedRequest(this.api.payment, 'getOrders'); |
13 | 16 | ||
14 | constructor(...args) { | 17 | constructor(...args) { |
diff --git a/src/stores/RecipePreviewsStore.js b/src/stores/RecipePreviewsStore.js index e25936f15..10b2928e3 100644 --- a/src/stores/RecipePreviewsStore.js +++ b/src/stores/RecipePreviewsStore.js | |||
@@ -8,7 +8,9 @@ import { gaEvent } from '../lib/analytics'; | |||
8 | 8 | ||
9 | export default class RecipePreviewsStore extends Store { | 9 | export default class RecipePreviewsStore extends Store { |
10 | @observable allRecipePreviewsRequest = new CachedRequest(this.api.recipePreviews, 'all'); | 10 | @observable allRecipePreviewsRequest = new CachedRequest(this.api.recipePreviews, 'all'); |
11 | |||
11 | @observable featuredRecipePreviewsRequest = new CachedRequest(this.api.recipePreviews, 'featured'); | 12 | @observable featuredRecipePreviewsRequest = new CachedRequest(this.api.recipePreviews, 'featured'); |
13 | |||
12 | @observable searchRecipePreviewsRequest = new Request(this.api.recipePreviews, 'search'); | 14 | @observable searchRecipePreviewsRequest = new Request(this.api.recipePreviews, 'search'); |
13 | 15 | ||
14 | constructor(...args) { | 16 | constructor(...args) { |
diff --git a/src/stores/RecipesStore.js b/src/stores/RecipesStore.js index f2480bc8e..ab64bf79c 100644 --- a/src/stores/RecipesStore.js +++ b/src/stores/RecipesStore.js | |||
@@ -9,7 +9,9 @@ const debug = require('debug')('Franz:RecipeStore'); | |||
9 | 9 | ||
10 | export default class RecipesStore extends Store { | 10 | export default class RecipesStore extends Store { |
11 | @observable allRecipesRequest = new CachedRequest(this.api.recipes, 'all'); | 11 | @observable allRecipesRequest = new CachedRequest(this.api.recipes, 'all'); |
12 | |||
12 | @observable installRecipeRequest = new Request(this.api.recipes, 'install'); | 13 | @observable installRecipeRequest = new Request(this.api.recipes, 'install'); |
14 | |||
13 | @observable getRecipeUpdatesRequest = new Request(this.api.recipes, 'update'); | 15 | @observable getRecipeUpdatesRequest = new Request(this.api.recipes, 'update'); |
14 | 16 | ||
15 | constructor(...args) { | 17 | constructor(...args) { |
diff --git a/src/stores/RequestStore.js b/src/stores/RequestStore.js index bbfe6f6df..2629e0a38 100644 --- a/src/stores/RequestStore.js +++ b/src/stores/RequestStore.js | |||
@@ -6,10 +6,13 @@ const debug = require('debug')('Franz:RequestsStore'); | |||
6 | 6 | ||
7 | export default class RequestStore extends Store { | 7 | export default class RequestStore extends Store { |
8 | @observable userInfoRequest; | 8 | @observable userInfoRequest; |
9 | |||
9 | @observable servicesRequest; | 10 | @observable servicesRequest; |
11 | |||
10 | @observable showRequiredRequestsError = false; | 12 | @observable showRequiredRequestsError = false; |
11 | 13 | ||
12 | retries = 0; | 14 | retries = 0; |
15 | |||
13 | retryDelay = 2000; | 16 | retryDelay = 2000; |
14 | 17 | ||
15 | constructor(...args) { | 18 | constructor(...args) { |
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 99b091589..5b70ca271 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -1,4 +1,6 @@ | |||
1 | import { action, reaction, computed, observable } from 'mobx'; | 1 | import { |
2 | action, reaction, computed, observable, | ||
3 | } from 'mobx'; | ||
2 | import { debounce, remove } from 'lodash'; | 4 | import { debounce, remove } from 'lodash'; |
3 | 5 | ||
4 | import Store from './lib/Store'; | 6 | import Store from './lib/Store'; |
@@ -11,10 +13,15 @@ const debug = require('debug')('Franz:ServiceStore'); | |||
11 | 13 | ||
12 | export default class ServicesStore extends Store { | 14 | export default class ServicesStore extends Store { |
13 | @observable allServicesRequest = new CachedRequest(this.api.services, 'all'); | 15 | @observable allServicesRequest = new CachedRequest(this.api.services, 'all'); |
16 | |||
14 | @observable createServiceRequest = new Request(this.api.services, 'create'); | 17 | @observable createServiceRequest = new Request(this.api.services, 'create'); |
18 | |||
15 | @observable updateServiceRequest = new Request(this.api.services, 'update'); | 19 | @observable updateServiceRequest = new Request(this.api.services, 'update'); |
20 | |||
16 | @observable reorderServicesRequest = new Request(this.api.services, 'reorder'); | 21 | @observable reorderServicesRequest = new Request(this.api.services, 'reorder'); |
22 | |||
17 | @observable deleteServiceRequest = new Request(this.api.services, 'delete'); | 23 | @observable deleteServiceRequest = new Request(this.api.services, 'delete'); |
24 | |||
18 | @observable clearCacheRequest = new Request(this.api.services, 'clearCache'); | 25 | @observable clearCacheRequest = new Request(this.api.services, 'clearCache'); |
19 | 26 | ||
20 | @observable filterNeedle = null; | 27 | @observable filterNeedle = null; |
@@ -400,6 +407,18 @@ export default class ServicesStore extends Store { | |||
400 | const url = args[0]; | 407 | const url = args[0]; |
401 | 408 | ||
402 | this.actions.app.openExternalUrl({ url }); | 409 | this.actions.app.openExternalUrl({ url }); |
410 | } else if (channel === 'set-service-spellchecker-language') { | ||
411 | if (!args) { | ||
412 | console.warn('Did not receive locale'); | ||
413 | } else { | ||
414 | this.actions.service.updateService({ | ||
415 | serviceId, | ||
416 | serviceData: { | ||
417 | spellcheckerLanguage: args[0] === 'reset' ? '' : args[0], | ||
418 | }, | ||
419 | redirect: false, | ||
420 | }); | ||
421 | } | ||
403 | } | 422 | } |
404 | } | 423 | } |
405 | 424 | ||
@@ -625,7 +644,7 @@ export default class ServicesStore extends Store { | |||
625 | const service = this.one(serviceId); | 644 | const service = this.one(serviceId); |
626 | 645 | ||
627 | if (service.webview) { | 646 | if (service.webview) { |
628 | service.webview.send('initializeRecipe', service); | 647 | service.webview.send('initialize-recipe', service); |
629 | } | 648 | } |
630 | } | 649 | } |
631 | 650 | ||
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js index 4c01e9910..a456195bf 100644 --- a/src/stores/SettingsStore.js +++ b/src/stores/SettingsStore.js | |||
@@ -1,5 +1,7 @@ | |||
1 | import { ipcRenderer } from 'electron'; | 1 | import { ipcRenderer } from 'electron'; |
2 | import { action, computed, observable } from 'mobx'; | 2 | import { |
3 | action, computed, observable, set, | ||
4 | } from 'mobx'; | ||
3 | import localStorage from 'mobx-localstorage'; | 5 | import localStorage from 'mobx-localstorage'; |
4 | 6 | ||
5 | import Store from './lib/Store'; | 7 | import Store from './lib/Store'; |
@@ -14,11 +16,13 @@ const debug = require('debug')('Franz:SettingsStore'); | |||
14 | 16 | ||
15 | export default class SettingsStore extends Store { | 17 | export default class SettingsStore extends Store { |
16 | @observable appSettingsRequest = new CachedRequest(this.api.local, 'getAppSettings'); | 18 | @observable appSettingsRequest = new CachedRequest(this.api.local, 'getAppSettings'); |
19 | |||
17 | @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings'); | 20 | @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings'); |
18 | 21 | ||
19 | @observable fileSystemSettingsRequests = []; | 22 | fileSystemSettingsRequests = []; |
20 | 23 | ||
21 | fileSystemSettingsTypes = FILE_SYSTEM_SETTINGS_TYPES; | 24 | fileSystemSettingsTypes = FILE_SYSTEM_SETTINGS_TYPES; |
25 | |||
22 | @observable _fileSystemSettingsCache = { | 26 | @observable _fileSystemSettingsCache = { |
23 | app: DEFAULT_APP_SETTINGS, | 27 | app: DEFAULT_APP_SETTINGS, |
24 | proxy: {}, | 28 | proxy: {}, |
@@ -57,6 +61,21 @@ export default class SettingsStore extends Store { | |||
57 | } | 61 | } |
58 | 62 | ||
59 | @computed get proxy() { | 63 | @computed get proxy() { |
64 | // // We need to provide the final data structure as mobx autoruns won't work | ||
65 | // const proxySettings = observable({}); | ||
66 | // this.stores.services.all.forEach((service) => { | ||
67 | // proxySettings[service.id] = { | ||
68 | // isEnabled: false, | ||
69 | // host: null, | ||
70 | // user: null, | ||
71 | // password: null, | ||
72 | // }; | ||
73 | // }); | ||
74 | |||
75 | // debug('this._fileSystemSettingsCache.proxy', this._fileSystemSettingsCache.proxy, proxySettings); | ||
76 | |||
77 | // return Object.assign(proxySettings, this._fileSystemSettingsCache.proxy); | ||
78 | |||
60 | return this._fileSystemSettingsCache.proxy || {}; | 79 | return this._fileSystemSettingsCache.proxy || {}; |
61 | } | 80 | } |
62 | 81 | ||
@@ -98,7 +117,7 @@ export default class SettingsStore extends Store { | |||
98 | data, | 117 | data, |
99 | }); | 118 | }); |
100 | 119 | ||
101 | Object.assign(this._fileSystemSettingsCache[type], data); | 120 | set(this._fileSystemSettingsCache[type], data); |
102 | } | 121 | } |
103 | } | 122 | } |
104 | 123 | ||
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index 26ac2c60e..7addb5760 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js | |||
@@ -14,29 +14,47 @@ const debug = require('debug')('Franz:UserStore'); | |||
14 | // TODO: split stores into UserStore and AuthStore | 14 | // TODO: split stores into UserStore and AuthStore |
15 | export default class UserStore extends Store { | 15 | export default class UserStore extends Store { |
16 | BASE_ROUTE = '/auth'; | 16 | BASE_ROUTE = '/auth'; |
17 | |||
17 | WELCOME_ROUTE = `${this.BASE_ROUTE}/welcome`; | 18 | WELCOME_ROUTE = `${this.BASE_ROUTE}/welcome`; |
19 | |||
18 | LOGIN_ROUTE = `${this.BASE_ROUTE}/login`; | 20 | LOGIN_ROUTE = `${this.BASE_ROUTE}/login`; |
21 | |||
19 | LOGOUT_ROUTE = `${this.BASE_ROUTE}/logout`; | 22 | LOGOUT_ROUTE = `${this.BASE_ROUTE}/logout`; |
23 | |||
20 | SIGNUP_ROUTE = `${this.BASE_ROUTE}/signup`; | 24 | SIGNUP_ROUTE = `${this.BASE_ROUTE}/signup`; |
25 | |||
21 | PRICING_ROUTE = `${this.BASE_ROUTE}/signup/pricing`; | 26 | PRICING_ROUTE = `${this.BASE_ROUTE}/signup/pricing`; |
27 | |||
22 | IMPORT_ROUTE = `${this.BASE_ROUTE}/signup/import`; | 28 | IMPORT_ROUTE = `${this.BASE_ROUTE}/signup/import`; |
29 | |||
23 | INVITE_ROUTE = `${this.BASE_ROUTE}/signup/invite`; | 30 | INVITE_ROUTE = `${this.BASE_ROUTE}/signup/invite`; |
31 | |||
24 | PASSWORD_ROUTE = `${this.BASE_ROUTE}/password`; | 32 | PASSWORD_ROUTE = `${this.BASE_ROUTE}/password`; |
25 | 33 | ||
26 | @observable loginRequest = new Request(this.api.user, 'login'); | 34 | @observable loginRequest = new Request(this.api.user, 'login'); |
35 | |||
27 | @observable signupRequest = new Request(this.api.user, 'signup'); | 36 | @observable signupRequest = new Request(this.api.user, 'signup'); |
37 | |||
28 | @observable passwordRequest = new Request(this.api.user, 'password'); | 38 | @observable passwordRequest = new Request(this.api.user, 'password'); |
39 | |||
29 | @observable inviteRequest = new Request(this.api.user, 'invite'); | 40 | @observable inviteRequest = new Request(this.api.user, 'invite'); |
41 | |||
30 | @observable getUserInfoRequest = new CachedRequest(this.api.user, 'getInfo'); | 42 | @observable getUserInfoRequest = new CachedRequest(this.api.user, 'getInfo'); |
43 | |||
31 | @observable updateUserInfoRequest = new Request(this.api.user, 'updateInfo'); | 44 | @observable updateUserInfoRequest = new Request(this.api.user, 'updateInfo'); |
45 | |||
32 | @observable getLegacyServicesRequest = new CachedRequest(this.api.user, 'getLegacyServices'); | 46 | @observable getLegacyServicesRequest = new CachedRequest(this.api.user, 'getLegacyServices'); |
47 | |||
33 | @observable deleteAccountRequest = new CachedRequest(this.api.user, 'delete'); | 48 | @observable deleteAccountRequest = new CachedRequest(this.api.user, 'delete'); |
34 | 49 | ||
35 | @observable isImportLegacyServicesExecuting = false; | 50 | @observable isImportLegacyServicesExecuting = false; |
51 | |||
36 | @observable isImportLegacyServicesCompleted = false; | 52 | @observable isImportLegacyServicesCompleted = false; |
37 | 53 | ||
38 | @observable id; | 54 | @observable id; |
55 | |||
39 | @observable authToken = localStorage.getItem('authToken') || null; | 56 | @observable authToken = localStorage.getItem('authToken') || null; |
57 | |||
40 | @observable accountType; | 58 | @observable accountType; |
41 | 59 | ||
42 | @observable hasCompletedSignup = null; | 60 | @observable hasCompletedSignup = null; |
@@ -48,6 +66,7 @@ export default class UserStore extends Store { | |||
48 | logoutReasonTypes = { | 66 | logoutReasonTypes = { |
49 | SERVER: 'SERVER', | 67 | SERVER: 'SERVER', |
50 | }; | 68 | }; |
69 | |||
51 | @observable logoutReason = null; | 70 | @observable logoutReason = null; |
52 | 71 | ||
53 | constructor(...args) { | 72 | constructor(...args) { |
@@ -141,7 +160,9 @@ export default class UserStore extends Store { | |||
141 | gaEvent('User', 'login'); | 160 | gaEvent('User', 'login'); |
142 | } | 161 | } |
143 | 162 | ||
144 | @action async _signup({ firstname, lastname, email, password, accountType, company }) { | 163 | @action async _signup({ |
164 | firstname, lastname, email, password, accountType, company, | ||
165 | }) { | ||
145 | const authToken = await this.signupRequest.execute({ | 166 | const authToken = await this.signupRequest.execute({ |
146 | firstname, | 167 | firstname, |
147 | lastname, | 168 | lastname, |
@@ -198,10 +219,11 @@ export default class UserStore extends Store { | |||
198 | } | 219 | } |
199 | 220 | ||
200 | @action _logout() { | 221 | @action _logout() { |
222 | // workaround mobx issue | ||
201 | localStorage.removeItem('authToken'); | 223 | localStorage.removeItem('authToken'); |
224 | window.localStorage.removeItem('authToken'); | ||
202 | this.getUserInfoRequest.invalidate().reset(); | 225 | this.getUserInfoRequest.invalidate().reset(); |
203 | this.authToken = null; | 226 | this.authToken = null; |
204 | // this.data = {}; | ||
205 | } | 227 | } |
206 | 228 | ||
207 | @action async _importLegacyServices({ services }) { | 229 | @action async _importLegacyServices({ services }) { |
diff --git a/src/stores/index.js b/src/stores/index.js index f547d0a7a..96b844c95 100644 --- a/src/stores/index.js +++ b/src/stores/index.js | |||
@@ -9,7 +9,6 @@ import UIStore from './UIStore'; | |||
9 | import PaymentStore from './PaymentStore'; | 9 | import PaymentStore from './PaymentStore'; |
10 | import NewsStore from './NewsStore'; | 10 | import NewsStore from './NewsStore'; |
11 | import RequestStore from './RequestStore'; | 11 | import RequestStore from './RequestStore'; |
12 | import DictionaryStore from './DictionaryStore'; | ||
13 | import GlobalErrorStore from './GlobalErrorStore'; | 12 | import GlobalErrorStore from './GlobalErrorStore'; |
14 | 13 | ||
15 | export default (api, actions, router) => { | 14 | export default (api, actions, router) => { |
@@ -27,7 +26,6 @@ export default (api, actions, router) => { | |||
27 | payment: new PaymentStore(stores, api, actions), | 26 | payment: new PaymentStore(stores, api, actions), |
28 | news: new NewsStore(stores, api, actions), | 27 | news: new NewsStore(stores, api, actions), |
29 | requests: new RequestStore(stores, api, actions), | 28 | requests: new RequestStore(stores, api, actions), |
30 | dictionary: new DictionaryStore(stores, api, actions), | ||
31 | globalError: new GlobalErrorStore(stores, api, actions), | 29 | globalError: new GlobalErrorStore(stores, api, actions), |
32 | }); | 30 | }); |
33 | // Initialize all stores | 31 | // Initialize all stores |
diff --git a/src/stores/lib/CachedRequest.js b/src/stores/lib/CachedRequest.js index c0c3d40a1..ac8b2bd81 100644 --- a/src/stores/lib/CachedRequest.js +++ b/src/stores/lib/CachedRequest.js | |||
@@ -5,6 +5,7 @@ import Request from './Request'; | |||
5 | 5 | ||
6 | export default class CachedRequest extends Request { | 6 | export default class CachedRequest extends Request { |
7 | _apiCalls = []; | 7 | _apiCalls = []; |
8 | |||
8 | _isInvalidated = true; | 9 | _isInvalidated = true; |
9 | 10 | ||
10 | execute(...callArgs) { | 11 | execute(...callArgs) { |
diff --git a/src/stores/lib/Reaction.js b/src/stores/lib/Reaction.js index e9bc26d81..46aa4dae6 100644 --- a/src/stores/lib/Reaction.js +++ b/src/stores/lib/Reaction.js | |||
@@ -3,7 +3,9 @@ import { autorun } from 'mobx'; | |||
3 | 3 | ||
4 | export default class Reaction { | 4 | export default class Reaction { |
5 | reaction; | 5 | reaction; |
6 | |||
6 | hasBeenStarted; | 7 | hasBeenStarted; |
8 | |||
7 | dispose; | 9 | dispose; |
8 | 10 | ||
9 | constructor(reaction) { | 11 | constructor(reaction) { |
diff --git a/src/stores/lib/Request.js b/src/stores/lib/Request.js index 4a6925cc5..04f528156 100644 --- a/src/stores/lib/Request.js +++ b/src/stores/lib/Request.js | |||
@@ -9,15 +9,23 @@ export default class Request { | |||
9 | } | 9 | } |
10 | 10 | ||
11 | @observable result = null; | 11 | @observable result = null; |
12 | |||
12 | @observable error = null; | 13 | @observable error = null; |
14 | |||
13 | @observable isExecuting = false; | 15 | @observable isExecuting = false; |
16 | |||
14 | @observable isError = false; | 17 | @observable isError = false; |
18 | |||
15 | @observable wasExecuted = false; | 19 | @observable wasExecuted = false; |
16 | 20 | ||
17 | _promise = Promise; | 21 | _promise = Promise; |
22 | |||
18 | _api = {}; | 23 | _api = {}; |
24 | |||
19 | _method = ''; | 25 | _method = ''; |
26 | |||
20 | _isWaitingForResponse = false; | 27 | _isWaitingForResponse = false; |
28 | |||
21 | _currentApiCall = null; | 29 | _currentApiCall = null; |
22 | 30 | ||
23 | constructor(api, method) { | 31 | constructor(api, method) { |
diff --git a/src/stores/lib/Store.js b/src/stores/lib/Store.js index 873da7b37..8d2fb4066 100644 --- a/src/stores/lib/Store.js +++ b/src/stores/lib/Store.js | |||
@@ -3,16 +3,20 @@ import Reaction from './Reaction'; | |||
3 | 3 | ||
4 | export default class Store { | 4 | export default class Store { |
5 | stores = {}; | 5 | stores = {}; |
6 | |||
6 | api = {}; | 7 | api = {}; |
8 | |||
7 | actions = {}; | 9 | actions = {}; |
8 | 10 | ||
9 | _reactions = []; | 11 | _reactions = []; |
10 | 12 | ||
11 | // status implementation | 13 | // status implementation |
12 | @observable _status = null; | 14 | @observable _status = null; |
15 | |||
13 | @computed get actionStatus() { | 16 | @computed get actionStatus() { |
14 | return this._status || []; | 17 | return this._status || []; |
15 | } | 18 | } |
19 | |||
16 | set actionStatus(status) { | 20 | set actionStatus(status) { |
17 | this._status = status; | 21 | this._status = status; |
18 | } | 22 | } |