diff options
-rw-r--r-- | src/config.js | 4 | ||||
-rw-r--r-- | src/containers/auth/AuthLayoutContainer.js | 38 | ||||
-rw-r--r-- | src/containers/auth/ImportScreen.js | 5 | ||||
-rw-r--r-- | src/containers/auth/InviteScreen.js | 5 | ||||
-rw-r--r-- | src/containers/auth/LoginScreen.js | 5 | ||||
-rw-r--r-- | src/containers/auth/PasswordScreen.js | 5 | ||||
-rw-r--r-- | src/containers/auth/PricingScreen.js | 5 | ||||
-rw-r--r-- | src/containers/auth/SignupScreen.js | 5 | ||||
-rw-r--r-- | src/containers/auth/WelcomeScreen.js | 5 | ||||
-rw-r--r-- | src/containers/settings/AccountScreen.js | 5 | ||||
-rw-r--r-- | src/containers/settings/EditServiceScreen.js | 5 | ||||
-rw-r--r-- | src/containers/settings/EditSettingsScreen.js | 5 | ||||
-rw-r--r-- | src/containers/settings/EditUserScreen.js | 5 | ||||
-rw-r--r-- | src/containers/settings/InviteScreen.js | 6 | ||||
-rw-r--r-- | src/containers/settings/RecipesScreen.js | 6 | ||||
-rw-r--r-- | src/containers/settings/ServicesScreen.js | 5 | ||||
-rw-r--r-- | src/stores/AppStore.js | 12 |
17 files changed, 37 insertions, 89 deletions
diff --git a/src/config.js b/src/config.js index aecba45be..0b377f62d 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -1,5 +1,7 @@ | |||
1 | import electron from 'electron'; | 1 | import electron from 'electron'; |
2 | import path from 'path'; | 2 | import path from 'path'; |
3 | import isDevMode from 'electron-is-dev'; | ||
4 | |||
3 | import { asarPath } from './helpers/asar-helpers'; | 5 | import { asarPath } from './helpers/asar-helpers'; |
4 | 6 | ||
5 | const app = process.type === 'renderer' ? electron.remote.app : electron.app; | 7 | const app = process.type === 'renderer' ? electron.remote.app : electron.app; |
@@ -9,7 +11,7 @@ export const CHECK_INTERVAL = 1000 * 3600; // How often should we perform checks | |||
9 | export const LOCAL_API = 'http://localhost:3000'; | 11 | export const LOCAL_API = 'http://localhost:3000'; |
10 | export const DEV_API = 'https://dev.franzinfra.com'; | 12 | export const DEV_API = 'https://dev.franzinfra.com'; |
11 | export const LIVE_API = 'https://api.franzinfra.com'; | 13 | export const LIVE_API = 'https://api.franzinfra.com'; |
12 | export const GA_ID = 'UA-74126766-10'; | 14 | export const GA_ID = !isDevMode ? 'UA-74126766-10' : 'UA-74126766-12'; |
13 | 15 | ||
14 | export const DEFAULT_APP_SETTINGS = { | 16 | export const DEFAULT_APP_SETTINGS = { |
15 | autoLaunchInBackground: false, | 17 | autoLaunchInBackground: false, |
diff --git a/src/containers/auth/AuthLayoutContainer.js b/src/containers/auth/AuthLayoutContainer.js index 762929dc6..e63f40c06 100644 --- a/src/containers/auth/AuthLayoutContainer.js +++ b/src/containers/auth/AuthLayoutContainer.js | |||
@@ -1,6 +1,8 @@ | |||
1 | import React, { Component } from 'react'; | 1 | import React, { Component } from 'react'; |
2 | import PropTypes from 'prop-types'; | 2 | import PropTypes from 'prop-types'; |
3 | import { inject, observer } from 'mobx-react'; | 3 | import { inject, observer } from 'mobx-react'; |
4 | import { ThemeProvider } from 'react-jss'; | ||
5 | import { theme } from '@meetfranz/theme'; | ||
4 | 6 | ||
5 | import AuthLayout from '../../components/auth/AuthLayout'; | 7 | import AuthLayout from '../../components/auth/AuthLayout'; |
6 | import AppStore from '../../stores/AppStore'; | 8 | import AppStore from '../../stores/AppStore'; |
@@ -21,30 +23,38 @@ export default @inject('stores', 'actions') @observer class AuthLayoutContainer | |||
21 | const { | 23 | const { |
22 | stores, actions, children, location, | 24 | stores, actions, children, location, |
23 | } = this.props; | 25 | } = this.props; |
24 | const { app, features, globalError } = stores; | 26 | const { |
27 | app, features, globalError, settings, | ||
28 | } = stores; | ||
25 | 29 | ||
26 | const isLoadingBaseFeatures = features.defaultFeaturesRequest.isExecuting | 30 | const isLoadingBaseFeatures = features.defaultFeaturesRequest.isExecuting |
27 | && !features.defaultFeaturesRequest.wasExecuted; | 31 | && !features.defaultFeaturesRequest.wasExecuted; |
28 | 32 | ||
33 | const themeType = theme(settings.app.darkMode ? 'dark' : 'default'); | ||
34 | |||
29 | if (isLoadingBaseFeatures) { | 35 | if (isLoadingBaseFeatures) { |
30 | return ( | 36 | return ( |
31 | <AppLoader /> | 37 | <ThemeProvider theme={theme(themeType)}> |
38 | <AppLoader /> | ||
39 | </ThemeProvider> | ||
32 | ); | 40 | ); |
33 | } | 41 | } |
34 | 42 | ||
35 | return ( | 43 | return ( |
36 | <AuthLayout | 44 | <ThemeProvider theme={theme(themeType)}> |
37 | error={globalError.response} | 45 | <AuthLayout |
38 | pathname={location.pathname} | 46 | error={globalError.response} |
39 | isOnline={app.isOnline} | 47 | pathname={location.pathname} |
40 | isAPIHealthy={!app.healthCheckRequest.isError} | 48 | isOnline={app.isOnline} |
41 | retryHealthCheck={actions.app.healthCheck} | 49 | isAPIHealthy={!app.healthCheckRequest.isError} |
42 | isHealthCheckLoading={app.healthCheckRequest.isExecuting} | 50 | retryHealthCheck={actions.app.healthCheck} |
43 | isFullScreen={app.isFullScreen} | 51 | isHealthCheckLoading={app.healthCheckRequest.isExecuting} |
44 | darkMode={app.isSystemDarkModeEnabled} | 52 | isFullScreen={app.isFullScreen} |
45 | > | 53 | darkMode={app.isSystemDarkModeEnabled} |
46 | {children} | 54 | > |
47 | </AuthLayout> | 55 | {children} |
56 | </AuthLayout> | ||
57 | </ThemeProvider> | ||
48 | ); | 58 | ); |
49 | } | 59 | } |
50 | } | 60 | } |
diff --git a/src/containers/auth/ImportScreen.js b/src/containers/auth/ImportScreen.js index fc46f8b54..4a93891d6 100644 --- a/src/containers/auth/ImportScreen.js +++ b/src/containers/auth/ImportScreen.js | |||
@@ -3,13 +3,8 @@ import PropTypes from 'prop-types'; | |||
3 | import { inject, observer } from 'mobx-react'; | 3 | import { inject, observer } from 'mobx-react'; |
4 | import Import from '../../components/auth/Import'; | 4 | import Import from '../../components/auth/Import'; |
5 | import UserStore from '../../stores/UserStore'; | 5 | import UserStore from '../../stores/UserStore'; |
6 | import { gaPage } from '../../lib/analytics'; | ||
7 | 6 | ||
8 | export default @inject('stores', 'actions') @observer class ImportScreen extends Component { | 7 | export default @inject('stores', 'actions') @observer class ImportScreen extends Component { |
9 | componentDidMount() { | ||
10 | gaPage('Auth/Import'); | ||
11 | } | ||
12 | |||
13 | render() { | 8 | render() { |
14 | const { actions, stores } = this.props; | 9 | const { actions, stores } = this.props; |
15 | 10 | ||
diff --git a/src/containers/auth/InviteScreen.js b/src/containers/auth/InviteScreen.js index 26bf97038..66afaf7e1 100644 --- a/src/containers/auth/InviteScreen.js +++ b/src/containers/auth/InviteScreen.js | |||
@@ -2,13 +2,8 @@ import React, { Component } from 'react'; | |||
2 | import PropTypes from 'prop-types'; | 2 | import PropTypes from 'prop-types'; |
3 | import { inject, observer } from 'mobx-react'; | 3 | import { inject, observer } from 'mobx-react'; |
4 | import Invite from '../../components/auth/Invite'; | 4 | import Invite from '../../components/auth/Invite'; |
5 | import { gaPage } from '../../lib/analytics'; | ||
6 | 5 | ||
7 | export default @inject('stores', 'actions') @observer class InviteScreen extends Component { | 6 | export default @inject('stores', 'actions') @observer class InviteScreen extends Component { |
8 | componentDidMount() { | ||
9 | gaPage('Auth/Invite'); | ||
10 | } | ||
11 | |||
12 | render() { | 7 | render() { |
13 | const { actions } = this.props; | 8 | const { actions } = this.props; |
14 | 9 | ||
diff --git a/src/containers/auth/LoginScreen.js b/src/containers/auth/LoginScreen.js index 865bd38f8..e5ee10785 100644 --- a/src/containers/auth/LoginScreen.js +++ b/src/containers/auth/LoginScreen.js | |||
@@ -3,7 +3,6 @@ import PropTypes from 'prop-types'; | |||
3 | import { inject, observer } from 'mobx-react'; | 3 | import { inject, observer } from 'mobx-react'; |
4 | import Login from '../../components/auth/Login'; | 4 | import Login from '../../components/auth/Login'; |
5 | import UserStore from '../../stores/UserStore'; | 5 | import UserStore from '../../stores/UserStore'; |
6 | import { gaPage } from '../../lib/analytics'; | ||
7 | 6 | ||
8 | import { globalError as globalErrorPropType } from '../../prop-types'; | 7 | import { globalError as globalErrorPropType } from '../../prop-types'; |
9 | 8 | ||
@@ -12,10 +11,6 @@ export default @inject('stores', 'actions') @observer class LoginScreen extends | |||
12 | error: globalErrorPropType.isRequired, | 11 | error: globalErrorPropType.isRequired, |
13 | }; | 12 | }; |
14 | 13 | ||
15 | componentDidMount() { | ||
16 | gaPage('Auth/Login'); | ||
17 | } | ||
18 | |||
19 | render() { | 14 | render() { |
20 | const { actions, stores, error } = this.props; | 15 | const { actions, stores, error } = this.props; |
21 | return ( | 16 | return ( |
diff --git a/src/containers/auth/PasswordScreen.js b/src/containers/auth/PasswordScreen.js index 236fd2031..5b238860e 100644 --- a/src/containers/auth/PasswordScreen.js +++ b/src/containers/auth/PasswordScreen.js | |||
@@ -3,13 +3,8 @@ import PropTypes from 'prop-types'; | |||
3 | import { inject, observer } from 'mobx-react'; | 3 | import { inject, observer } from 'mobx-react'; |
4 | import Password from '../../components/auth/Password'; | 4 | import Password from '../../components/auth/Password'; |
5 | import UserStore from '../../stores/UserStore'; | 5 | import UserStore from '../../stores/UserStore'; |
6 | import { gaPage } from '../../lib/analytics'; | ||
7 | 6 | ||
8 | export default @inject('stores', 'actions') @observer class PasswordScreen extends Component { | 7 | export default @inject('stores', 'actions') @observer class PasswordScreen extends Component { |
9 | componentDidMount() { | ||
10 | gaPage('Auth/Password Retrieve'); | ||
11 | } | ||
12 | |||
13 | render() { | 8 | render() { |
14 | const { actions, stores } = this.props; | 9 | const { actions, stores } = this.props; |
15 | 10 | ||
diff --git a/src/containers/auth/PricingScreen.js b/src/containers/auth/PricingScreen.js index 34b512e15..8d179a170 100644 --- a/src/containers/auth/PricingScreen.js +++ b/src/containers/auth/PricingScreen.js | |||
@@ -6,7 +6,6 @@ import { RouterStore } from 'mobx-react-router'; | |||
6 | import Pricing from '../../components/auth/Pricing'; | 6 | import Pricing from '../../components/auth/Pricing'; |
7 | import UserStore from '../../stores/UserStore'; | 7 | import UserStore from '../../stores/UserStore'; |
8 | import PaymentStore from '../../stores/PaymentStore'; | 8 | import PaymentStore from '../../stores/PaymentStore'; |
9 | import { gaPage } from '../../lib/analytics'; | ||
10 | 9 | ||
11 | import { globalError as globalErrorPropType } from '../../prop-types'; | 10 | import { globalError as globalErrorPropType } from '../../prop-types'; |
12 | 11 | ||
@@ -15,10 +14,6 @@ export default @inject('stores', 'actions') @observer class PricingScreen extend | |||
15 | error: globalErrorPropType.isRequired, | 14 | error: globalErrorPropType.isRequired, |
16 | }; | 15 | }; |
17 | 16 | ||
18 | componentDidMount() { | ||
19 | gaPage('Auth/Pricing'); | ||
20 | } | ||
21 | |||
22 | render() { | 17 | render() { |
23 | const { actions, stores, error } = this.props; | 18 | const { actions, stores, error } = this.props; |
24 | 19 | ||
diff --git a/src/containers/auth/SignupScreen.js b/src/containers/auth/SignupScreen.js index caf75de90..efc7ea4c1 100644 --- a/src/containers/auth/SignupScreen.js +++ b/src/containers/auth/SignupScreen.js | |||
@@ -4,7 +4,6 @@ import { inject, observer } from 'mobx-react'; | |||
4 | 4 | ||
5 | import Signup from '../../components/auth/Signup'; | 5 | import Signup from '../../components/auth/Signup'; |
6 | import UserStore from '../../stores/UserStore'; | 6 | import UserStore from '../../stores/UserStore'; |
7 | import { gaPage } from '../../lib/analytics'; | ||
8 | 7 | ||
9 | import { globalError as globalErrorPropType } from '../../prop-types'; | 8 | import { globalError as globalErrorPropType } from '../../prop-types'; |
10 | 9 | ||
@@ -13,10 +12,6 @@ export default @inject('stores', 'actions') @observer class SignupScreen extends | |||
13 | error: globalErrorPropType.isRequired, | 12 | error: globalErrorPropType.isRequired, |
14 | }; | 13 | }; |
15 | 14 | ||
16 | componentDidMount() { | ||
17 | gaPage('Auth/Signup'); | ||
18 | } | ||
19 | |||
20 | render() { | 15 | render() { |
21 | const { actions, stores, error } = this.props; | 16 | const { actions, stores, error } = this.props; |
22 | return ( | 17 | return ( |
diff --git a/src/containers/auth/WelcomeScreen.js b/src/containers/auth/WelcomeScreen.js index 2c120f81c..75182345a 100644 --- a/src/containers/auth/WelcomeScreen.js +++ b/src/containers/auth/WelcomeScreen.js | |||
@@ -5,13 +5,8 @@ import { inject, observer } from 'mobx-react'; | |||
5 | import Welcome from '../../components/auth/Welcome'; | 5 | import Welcome from '../../components/auth/Welcome'; |
6 | import UserStore from '../../stores/UserStore'; | 6 | import UserStore from '../../stores/UserStore'; |
7 | import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; | 7 | import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; |
8 | import { gaPage } from '../../lib/analytics'; | ||
9 | 8 | ||
10 | export default @inject('stores', 'actions') @observer class LoginScreen extends Component { | 9 | export default @inject('stores', 'actions') @observer class LoginScreen extends Component { |
11 | componentDidMount() { | ||
12 | gaPage('Auth/Welcome'); | ||
13 | } | ||
14 | |||
15 | render() { | 10 | render() { |
16 | const { user, recipePreviews } = this.props.stores; | 11 | const { user, recipePreviews } = this.props.stores; |
17 | 12 | ||
diff --git a/src/containers/settings/AccountScreen.js b/src/containers/settings/AccountScreen.js index d681d5226..ce1b9c333 100644 --- a/src/containers/settings/AccountScreen.js +++ b/src/containers/settings/AccountScreen.js | |||
@@ -6,7 +6,6 @@ import { inject, observer } from 'mobx-react'; | |||
6 | import PaymentStore from '../../stores/PaymentStore'; | 6 | import PaymentStore from '../../stores/PaymentStore'; |
7 | import UserStore from '../../stores/UserStore'; | 7 | import UserStore from '../../stores/UserStore'; |
8 | import AppStore from '../../stores/AppStore'; | 8 | import AppStore from '../../stores/AppStore'; |
9 | import { gaPage } from '../../lib/analytics'; | ||
10 | 9 | ||
11 | import AccountDashboard from '../../components/settings/account/AccountDashboard'; | 10 | import AccountDashboard from '../../components/settings/account/AccountDashboard'; |
12 | import ErrorBoundary from '../../components/util/ErrorBoundary'; | 11 | import ErrorBoundary from '../../components/util/ErrorBoundary'; |
@@ -22,10 +21,6 @@ export default @inject('stores', 'actions') @observer class AccountScreen extend | |||
22 | user.getUserInfoRequest.invalidate({ immediately: true }); | 21 | user.getUserInfoRequest.invalidate({ immediately: true }); |
23 | } | 22 | } |
24 | 23 | ||
25 | componentDidMount() { | ||
26 | gaPage('Settings/Account Dashboard'); | ||
27 | } | ||
28 | |||
29 | onCloseWindow() { | 24 | onCloseWindow() { |
30 | const { user, payment } = this.props.stores; | 25 | const { user, payment } = this.props.stores; |
31 | user.getUserInfoRequest.invalidate({ immediately: true }); | 26 | user.getUserInfoRequest.invalidate({ immediately: true }); |
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index d08f0a52e..870ca4ecd 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js | |||
@@ -9,7 +9,6 @@ import ServicesStore from '../../stores/ServicesStore'; | |||
9 | import SettingsStore from '../../stores/SettingsStore'; | 9 | import SettingsStore from '../../stores/SettingsStore'; |
10 | import FeaturesStore from '../../stores/FeaturesStore'; | 10 | import FeaturesStore from '../../stores/FeaturesStore'; |
11 | import Form from '../../lib/Form'; | 11 | import Form from '../../lib/Form'; |
12 | import { gaPage } from '../../lib/analytics'; | ||
13 | 12 | ||
14 | import ServiceError from '../../components/settings/services/ServiceError'; | 13 | import ServiceError from '../../components/settings/services/ServiceError'; |
15 | import EditServiceForm from '../../components/settings/services/EditServiceForm'; | 14 | import EditServiceForm from '../../components/settings/services/EditServiceForm'; |
@@ -93,10 +92,6 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex | |||
93 | intl: intlShape, | 92 | intl: intlShape, |
94 | }; | 93 | }; |
95 | 94 | ||
96 | componentDidMount() { | ||
97 | gaPage('Settings/Service/Edit'); | ||
98 | } | ||
99 | |||
100 | onSubmit(data) { | 95 | onSubmit(data) { |
101 | const { action } = this.props.router.params; | 96 | const { action } = this.props.router.params; |
102 | const { recipes, services } = this.props.stores; | 97 | const { recipes, services } = this.props.stores; |
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 992c49b09..97c1fa3b1 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js | |||
@@ -8,7 +8,6 @@ import SettingsStore from '../../stores/SettingsStore'; | |||
8 | import UserStore from '../../stores/UserStore'; | 8 | import UserStore from '../../stores/UserStore'; |
9 | import Form from '../../lib/Form'; | 9 | import Form from '../../lib/Form'; |
10 | import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages'; | 10 | import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages'; |
11 | import { gaPage } from '../../lib/analytics'; | ||
12 | import { DEFAULT_APP_SETTINGS } from '../../config'; | 11 | import { DEFAULT_APP_SETTINGS } from '../../config'; |
13 | import { config as spellcheckerConfig } from '../../features/spellchecker'; | 12 | import { config as spellcheckerConfig } from '../../features/spellchecker'; |
14 | 13 | ||
@@ -75,10 +74,6 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e | |||
75 | intl: intlShape, | 74 | intl: intlShape, |
76 | }; | 75 | }; |
77 | 76 | ||
78 | componentDidMount() { | ||
79 | gaPage('Settings/App'); | ||
80 | } | ||
81 | |||
82 | onSubmit(settingsData) { | 77 | onSubmit(settingsData) { |
83 | const { app, settings, user } = this.props.actions; | 78 | const { app, settings, user } = this.props.actions; |
84 | 79 | ||
diff --git a/src/containers/settings/EditUserScreen.js b/src/containers/settings/EditUserScreen.js index 3d35effc5..bade928a0 100644 --- a/src/containers/settings/EditUserScreen.js +++ b/src/containers/settings/EditUserScreen.js | |||
@@ -9,7 +9,6 @@ import EditUserForm from '../../components/settings/user/EditUserForm'; | |||
9 | import ErrorBoundary from '../../components/util/ErrorBoundary'; | 9 | import ErrorBoundary from '../../components/util/ErrorBoundary'; |
10 | 10 | ||
11 | import { required, email, minLength } from '../../helpers/validation-helpers'; | 11 | import { required, email, minLength } from '../../helpers/validation-helpers'; |
12 | import { gaPage } from '../../lib/analytics'; | ||
13 | 12 | ||
14 | const messages = defineMessages({ | 13 | const messages = defineMessages({ |
15 | firstname: { | 14 | firstname: { |
@@ -57,10 +56,6 @@ export default @inject('stores', 'actions') @observer class EditUserScreen exten | |||
57 | intl: intlShape, | 56 | intl: intlShape, |
58 | }; | 57 | }; |
59 | 58 | ||
60 | componentDidMount() { | ||
61 | gaPage('Settings/Account/Edit'); | ||
62 | } | ||
63 | |||
64 | componentWillUnmount() { | 59 | componentWillUnmount() { |
65 | this.props.actions.user.resetStatus(); | 60 | this.props.actions.user.resetStatus(); |
66 | } | 61 | } |
diff --git a/src/containers/settings/InviteScreen.js b/src/containers/settings/InviteScreen.js index cd36610e4..cc36849e8 100644 --- a/src/containers/settings/InviteScreen.js +++ b/src/containers/settings/InviteScreen.js | |||
@@ -5,13 +5,7 @@ import { inject, observer } from 'mobx-react'; | |||
5 | import Invite from '../../components/auth/Invite'; | 5 | import Invite from '../../components/auth/Invite'; |
6 | import ErrorBoundary from '../../components/util/ErrorBoundary'; | 6 | import ErrorBoundary from '../../components/util/ErrorBoundary'; |
7 | 7 | ||
8 | import { gaPage } from '../../lib/analytics'; | ||
9 | |||
10 | export default @inject('stores', 'actions') @observer class InviteScreen extends Component { | 8 | export default @inject('stores', 'actions') @observer class InviteScreen extends Component { |
11 | componentDidMount() { | ||
12 | gaPage('Settings/Invite'); | ||
13 | } | ||
14 | |||
15 | componentWillUnmount() { | 9 | componentWillUnmount() { |
16 | this.props.stores.user.inviteRequest.reset(); | 10 | this.props.stores.user.inviteRequest.reset(); |
17 | } | 11 | } |
diff --git a/src/containers/settings/RecipesScreen.js b/src/containers/settings/RecipesScreen.js index b3d758c87..eda5ae54c 100644 --- a/src/containers/settings/RecipesScreen.js +++ b/src/containers/settings/RecipesScreen.js | |||
@@ -7,7 +7,6 @@ import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; | |||
7 | import RecipeStore from '../../stores/RecipesStore'; | 7 | import RecipeStore from '../../stores/RecipesStore'; |
8 | import ServiceStore from '../../stores/ServicesStore'; | 8 | import ServiceStore from '../../stores/ServicesStore'; |
9 | import UserStore from '../../stores/UserStore'; | 9 | import UserStore from '../../stores/UserStore'; |
10 | import { gaPage } from '../../lib/analytics'; | ||
11 | 10 | ||
12 | import RecipesDashboard from '../../components/settings/recipes/RecipesDashboard'; | 11 | import RecipesDashboard from '../../components/settings/recipes/RecipesDashboard'; |
13 | import ErrorBoundary from '../../components/util/ErrorBoundary'; | 12 | import ErrorBoundary from '../../components/util/ErrorBoundary'; |
@@ -33,20 +32,15 @@ export default @inject('stores', 'actions') @observer class RecipesScreen extend | |||
33 | autorunDisposer = null; | 32 | autorunDisposer = null; |
34 | 33 | ||
35 | componentDidMount() { | 34 | componentDidMount() { |
36 | gaPage('Settings/Recipe Dashboard/Featured'); | ||
37 | |||
38 | this.autorunDisposer = autorun(() => { | 35 | this.autorunDisposer = autorun(() => { |
39 | const { filter } = this.props.params; | 36 | const { filter } = this.props.params; |
40 | const { currentFilter } = this.state; | 37 | const { currentFilter } = this.state; |
41 | 38 | ||
42 | if (filter === 'all' && currentFilter !== 'all') { | 39 | if (filter === 'all' && currentFilter !== 'all') { |
43 | gaPage('Settings/Recipe Dashboard/All'); | ||
44 | this.setState({ currentFilter: 'all' }); | 40 | this.setState({ currentFilter: 'all' }); |
45 | } else if (filter === 'featured' && currentFilter !== 'featured') { | 41 | } else if (filter === 'featured' && currentFilter !== 'featured') { |
46 | gaPage('Settings/Recipe Dashboard/Featured'); | ||
47 | this.setState({ currentFilter: 'featured' }); | 42 | this.setState({ currentFilter: 'featured' }); |
48 | } else if (filter === 'dev' && currentFilter !== 'dev') { | 43 | } else if (filter === 'dev' && currentFilter !== 'dev') { |
49 | gaPage('Settings/Recipe Dashboard/Dev'); | ||
50 | this.setState({ currentFilter: 'dev' }); | 44 | this.setState({ currentFilter: 'dev' }); |
51 | } | 45 | } |
52 | }); | 46 | }); |
diff --git a/src/containers/settings/ServicesScreen.js b/src/containers/settings/ServicesScreen.js index b70a5506e..a501bf530 100644 --- a/src/containers/settings/ServicesScreen.js +++ b/src/containers/settings/ServicesScreen.js | |||
@@ -6,16 +6,11 @@ import { RouterStore } from 'mobx-react-router'; | |||
6 | // import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; | 6 | // import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; |
7 | import UserStore from '../../stores/UserStore'; | 7 | import UserStore from '../../stores/UserStore'; |
8 | import ServiceStore from '../../stores/ServicesStore'; | 8 | import ServiceStore from '../../stores/ServicesStore'; |
9 | import { gaPage } from '../../lib/analytics'; | ||
10 | 9 | ||
11 | import ServicesDashboard from '../../components/settings/services/ServicesDashboard'; | 10 | import ServicesDashboard from '../../components/settings/services/ServicesDashboard'; |
12 | import ErrorBoundary from '../../components/util/ErrorBoundary'; | 11 | import ErrorBoundary from '../../components/util/ErrorBoundary'; |
13 | 12 | ||
14 | export default @inject('stores', 'actions') @observer class ServicesScreen extends Component { | 13 | export default @inject('stores', 'actions') @observer class ServicesScreen extends Component { |
15 | componentDidMount() { | ||
16 | gaPage('Settings/Service Dashboard'); | ||
17 | } | ||
18 | |||
19 | componentWillUnmount() { | 14 | componentWillUnmount() { |
20 | this.props.actions.service.resetFilter(); | 15 | this.props.actions.service.resetFilter(); |
21 | this.props.actions.service.resetStatus(); | 16 | this.props.actions.service.resetStatus(); |
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index b21d48a11..d90f32744 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js | |||
@@ -1,5 +1,7 @@ | |||
1 | import { remote, ipcRenderer, shell } from 'electron'; | 1 | import { remote, ipcRenderer, shell } from 'electron'; |
2 | import { action, computed, observable } from 'mobx'; | 2 | import { |
3 | action, computed, observable, reaction, | ||
4 | } from 'mobx'; | ||
3 | import moment from 'moment'; | 5 | import moment from 'moment'; |
4 | import key from 'keymaster'; | 6 | import key from 'keymaster'; |
5 | import { getDoNotDisturb } from '@meetfranz/electron-notification-state'; | 7 | import { getDoNotDisturb } from '@meetfranz/electron-notification-state'; |
@@ -11,7 +13,7 @@ import Request from './lib/Request'; | |||
11 | import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config'; | 13 | import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config'; |
12 | import { isMac, isLinux, isWindows } from '../environment'; | 14 | import { isMac, isLinux, isWindows } from '../environment'; |
13 | import locales from '../i18n/translations'; | 15 | import locales from '../i18n/translations'; |
14 | import { gaEvent } from '../lib/analytics'; | 16 | import { gaEvent, gaPage } from '../lib/analytics'; |
15 | import { onVisibilityChange } from '../helpers/visibility-helper'; | 17 | import { onVisibilityChange } from '../helpers/visibility-helper'; |
16 | import { getLocale } from '../helpers/i18n-helpers'; | 18 | import { getLocale } from '../helpers/i18n-helpers'; |
17 | 19 | ||
@@ -184,6 +186,12 @@ export default class AppStore extends Store { | |||
184 | 186 | ||
185 | debug('Window is visible/focused', isVisible); | 187 | debug('Window is visible/focused', isVisible); |
186 | }); | 188 | }); |
189 | |||
190 | // analytics autorun | ||
191 | reaction(() => this.stores.router.location.pathname, (pathname) => { | ||
192 | gaPage(pathname); | ||
193 | }); | ||
194 | console.log('router location', this.stores.router.location); | ||
187 | } | 195 | } |
188 | 196 | ||
189 | @computed get cacheSize() { | 197 | @computed get cacheSize() { |