From 58a5df079320ad99f3c8b369dc163455f8895eec Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Feb 2019 12:32:39 +0100 Subject: add on enter key handler for form input component --- packages/forms/src/input/index.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'packages') diff --git a/packages/forms/src/input/index.tsx b/packages/forms/src/input/index.tsx index de7e7848e..791e0f360 100644 --- a/packages/forms/src/input/index.tsx +++ b/packages/forms/src/input/index.tsx @@ -25,6 +25,7 @@ interface IProps extends React.InputHTMLAttributes, IFormField showPasswordToggle?: boolean; data: IData; inputClassName?: string; + onEnterKey?: Function; } interface IState { @@ -80,6 +81,13 @@ class InputComponent extends Component { } } + onInputKeyPress(e: React.KeyboardEvent) { + if (e.key === "Enter") { + const { onEnterKey } = this.props; + onEnterKey && onEnterKey(); + } + } + render() { const { classes, @@ -100,6 +108,7 @@ class InputComponent extends Component { placeholder, spellCheck, onBlur, + onEnterKey, } = this.props; const { @@ -144,6 +153,7 @@ class InputComponent extends Component { onChange={this.onChange.bind(this)} onBlur={onBlur} disabled={disabled} + onKeyPress={this.onInputKeyPress.bind(this)} /> {suffix && ( -- cgit v1.2.3-70-g09d2 From 9f0a77af747060a42bd8789672fb2f2a870636d8 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Feb 2019 17:15:56 +0100 Subject: fix merge conflict --- packages/forms/src/input/index.tsx | 3 --- 1 file changed, 3 deletions(-) (limited to 'packages') diff --git a/packages/forms/src/input/index.tsx b/packages/forms/src/input/index.tsx index 68bb5ac57..6be29e6e5 100644 --- a/packages/forms/src/input/index.tsx +++ b/packages/forms/src/input/index.tsx @@ -109,11 +109,8 @@ class InputComponent extends Component { placeholder, spellCheck, onBlur, -<<<<<<< HEAD onEnterKey, -======= onFocus, ->>>>>>> develop } = this.props; const { -- cgit v1.2.3-70-g09d2 From a761f7cf596353b7ea21fced7b598b1ec44f9c50 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Tue, 26 Feb 2019 13:31:12 +0100 Subject: fix bug in form input library --- packages/forms/src/input/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/forms/src/input/index.tsx b/packages/forms/src/input/index.tsx index 6be29e6e5..cc3709b1a 100644 --- a/packages/forms/src/input/index.tsx +++ b/packages/forms/src/input/index.tsx @@ -147,7 +147,7 @@ class InputComponent extends Component { id={id} type={inputType} name={name} - defaultValue={value as string} + value={value as string} placeholder={placeholder} spellCheck={spellCheck} className={classes.input} -- cgit v1.2.3-70-g09d2 From e4f1862644d5921e2ee77078c10e16efa3e58c7b Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Tue, 19 Mar 2019 19:38:56 +0100 Subject: add workspace drawer --- packages/theme/src/themes/dark/index.ts | 9 +++ packages/theme/src/themes/default/index.ts | 10 +++ src/components/layout/AppLayout.js | 24 +++++- src/components/layout/Sidebar.js | 42 +++++++++- src/components/services/content/ServiceView.js | 1 + src/containers/layout/AppLayoutContainer.js | 14 ++++ src/features/workspaces/actions.js | 6 +- .../workspaces/components/WorkspaceDrawer.js | 94 ++++++++++++++++++++++ .../workspaces/components/WorkspaceDrawerItem.js | 88 ++++++++++++++++++++ src/features/workspaces/state.js | 1 + src/features/workspaces/store.js | 12 ++- src/i18n/locales/defaultMessages.json | 57 +++++++++++++ src/i18n/locales/en-US.json | 8 +- .../messages/src/components/layout/AppLayout.json | 24 +++--- .../messages/src/components/layout/Sidebar.json | 26 ++++++ .../workspaces/components/WorkspaceDrawer.json | 28 +++++++ src/lib/Menu.js | 4 +- src/styles/layout.scss | 12 ++- 18 files changed, 435 insertions(+), 25 deletions(-) create mode 100644 src/features/workspaces/components/WorkspaceDrawer.js create mode 100644 src/features/workspaces/components/WorkspaceDrawerItem.js create mode 100644 src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json (limited to 'packages') diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index 3a56719b2..eaa552961 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -63,3 +63,12 @@ export const selectSearchColor = inputBackground; // Modal export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.8).rgb().string(); + +// Workspace Drawer +export const workspaceDrawerBackground = color(colorBackground).lighten(0.3).hex(); +export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).lighten(0.2).hex(); +export const workspaceDrawerItemActiveBackground = defaultStyles.brandPrimary; +export const workspaceDrawerNameColor = colorText; +export const workspaceDrawerNameActiveColor = 'white'; +export const workspaceDrawerServicesColor = color(colorText).darken(0.5).hex(); +export const workspaceDrawerServicesActiveColor = color(defaultStyles.brandPrimary).lighten(0.5).hex(); diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index 8a71e61cf..fc03b67de 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -140,3 +140,13 @@ export const badgeBorderRadius = 50; // Modal export const colorModalOverlayBackground = color('#000').alpha(0.5).rgb().string(); + +// Workspace Drawer +export const workspaceDrawerWidth = '220px'; +export const workspaceDrawerBackground = color(colorBackground).lighten(0.1).hex(); +export const workspaceDrawerItemActiveBackground = legacyStyles.themeGrayLightest; +export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).darken(0.05).hex(); +export const workspaceDrawerNameColor = colorText; +export const workspaceDrawerNameActiveColor = colorText; +export const workspaceDrawerServicesColor = color(colorText).lighten(1.5).hex(); +export const workspaceDrawerServicesActiveColor = workspaceDrawerServicesColor; diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index 593149e72..e06192f87 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; import { TitleBar } from 'electron-react-titlebar'; +import injectSheet from 'react-jss'; import InfoBar from '../ui/InfoBar'; import { Component as DelayApp } from '../../features/delayApp'; @@ -13,6 +14,7 @@ import ErrorBoundary from '../util/ErrorBoundary'; // import globalMessages from '../../i18n/globalMessages'; import { isWindows } from '../../environment'; +import { workspacesState } from '../../features/workspaces/state'; function createMarkup(HTMLString) { return { __html: HTMLString }; @@ -45,10 +47,23 @@ const messages = defineMessages({ }, }); -export default @observer class AppLayout extends Component { +const styles = theme => ({ + appContent: { + width: `calc(100% + ${theme.workspaceDrawerWidth})`, + transition: 'transform 0.5s ease', + transform() { + return workspacesState.isWorkspaceDrawerOpen ? 'translateX(0)' : 'translateX(-220px)'; + }, + }, +}); + +@injectSheet(styles) @observer +class AppLayout extends Component { static propTypes = { + classes: PropTypes.object.isRequired, isFullScreen: PropTypes.bool.isRequired, sidebar: PropTypes.element.isRequired, + workspacesDrawer: PropTypes.element.isRequired, services: PropTypes.element.isRequired, children: PropTypes.element, news: MobxPropTypes.arrayOrObservableArray.isRequired, @@ -76,7 +91,9 @@ export default @observer class AppLayout extends Component { render() { const { + classes, isFullScreen, + workspacesDrawer, sidebar, services, children, @@ -102,7 +119,8 @@ export default @observer class AppLayout extends Component {
{isWindows && !isFullScreen && } -
+
+ {workspacesDrawer} {sidebar}
{news.length > 0 && news.map(item => ( @@ -176,3 +194,5 @@ export default @observer class AppLayout extends Component { ); } } + +export default AppLayout; diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js index fcc5b0001..de379875e 100644 --- a/src/components/layout/Sidebar.js +++ b/src/components/layout/Sidebar.js @@ -24,6 +24,14 @@ const messages = defineMessages({ id: 'sidebar.unmuteApp', defaultMessage: '!!!Enable notifications & audio', }, + openWorkspaceDrawer: { + id: 'sidebar.openWorkspaceDrawer', + defaultMessage: '!!!Open workspace drawer', + }, + closeWorkspaceDrawer: { + id: 'sidebar.closeWorkspaceDrawer', + defaultMessage: '!!!Close workspace drawer', + }, }); export default @observer class Sidebar extends Component { @@ -31,6 +39,8 @@ export default @observer class Sidebar extends Component { openSettings: PropTypes.func.isRequired, toggleMuteApp: PropTypes.func.isRequired, isAppMuted: PropTypes.bool.isRequired, + isWorkspaceDrawerOpen: PropTypes.bool.isRequired, + toggleWorkspaceDrawer: PropTypes.func.isRequired, }; static contextTypes = { @@ -53,9 +63,23 @@ export default @observer class Sidebar extends Component { this.setState({ tooltipEnabled: false }); } + updateToolTip() { + this.disableToolTip(); + setTimeout(this.enableToolTip.bind(this)); + } + render() { - const { openSettings, toggleMuteApp, isAppMuted } = this.props; + const { + openSettings, + toggleMuteApp, + isAppMuted, + isWorkspaceDrawerOpen, + toggleWorkspaceDrawer, + } = this.props; const { intl } = this.context; + const workspaceToggleMessage = ( + isWorkspaceDrawerOpen ? messages.closeWorkspaceDrawer : messages.openWorkspaceDrawer + ); return (
@@ -66,7 +90,21 @@ export default @observer class Sidebar extends Component { /> +
-
-
- -
- {getUserWorkspacesRequest.isExecuting ? ( - - ) : ( - - {getUserWorkspacesRequest.error ? ( - - {intl.formatMessage(messages.workspacesRequestFailed)} - - ) : ( - - - {workspaces.map(workspace => ( - onWorkspaceClick(w)} - /> - ))} - -
- )} -
- )} + {updateWorkspaceRequest.wasExecuted && updateWorkspaceRequest.result && ( + + + {intl.formatMessage(messages.updatedInfo)} + + + )} +
+
+ {getUserWorkspacesRequest.isExecuting ? ( + + ) : ( + + {getUserWorkspacesRequest.error ? ( + + {intl.formatMessage(messages.workspacesRequestFailed)} + + ) : ( + + + {workspaces.map(workspace => ( + onWorkspaceClick(w)} + /> + ))} + +
+ )} +
+ )}
); diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.js index 89bd2a2ef..3f41de0c2 100644 --- a/src/features/workspaces/containers/WorkspacesScreen.js +++ b/src/features/workspaces/containers/WorkspacesScreen.js @@ -4,7 +4,7 @@ import PropTypes from 'prop-types'; import WorkspacesDashboard from '../components/WorkspacesDashboard'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; import { workspaceStore } from '../index'; -import { getUserWorkspacesRequest } from '../api'; +import { getUserWorkspacesRequest, updateWorkspaceRequest } from '../api'; @inject('actions') @observer class WorkspacesScreen extends Component { @@ -23,6 +23,7 @@ class WorkspacesScreen extends Component { actions.workspaces.create(data)} onWorkspaceClick={w => actions.workspaces.edit({ workspace: w })} /> diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index 3cec5f360..f7df7b29c 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -102,9 +102,7 @@ export default class WorkspacesStore { @action _create = async ({ name }) => { try { const workspace = await createWorkspaceRequest.execute(name); - await getUserWorkspacesRequest.patch((result) => { - result.push(workspace); - }); + await getUserWorkspacesRequest.result.push(workspace); this._edit({ workspace }); } catch (error) { throw error; @@ -114,9 +112,7 @@ export default class WorkspacesStore { @action _delete = async ({ workspace }) => { try { await deleteWorkspaceRequest.execute(workspace); - await getUserWorkspacesRequest.patch((result) => { - result.remove(workspace); - }); + await getUserWorkspacesRequest.result.remove(workspace); this.stores.router.push('/settings/workspaces'); } catch (error) { throw error; @@ -126,10 +122,9 @@ export default class WorkspacesStore { @action _update = async ({ workspace }) => { try { await updateWorkspaceRequest.execute(workspace); - await getUserWorkspacesRequest.patch((result) => { - const localWorkspace = result.find(ws => ws.id === workspace.id); - Object.assign(localWorkspace, workspace); - }); + // Path local result optimistically + const localWorkspace = this._getWorkspaceById(workspace.id); + Object.assign(localWorkspace, workspace); this.stores.router.push('/settings/workspaces'); } catch (error) { throw error; diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index afbacf28a..891ad38d4 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -3388,52 +3388,65 @@ "defaultMessage": "!!!Your workspaces", "end": { "column": 3, - "line": 17 + "line": 18 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.headline", "start": { "column": 12, - "line": 14 + "line": 15 } }, { "defaultMessage": "!!!You haven't added any workspaces yet.", "end": { "column": 3, - "line": 21 + "line": 22 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.noWorkspacesAdded", "start": { "column": 19, - "line": 18 + "line": 19 } }, { "defaultMessage": "!!!Could not load your workspaces", "end": { "column": 3, - "line": 25 + "line": 26 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.workspacesRequestFailed", "start": { "column": 27, - "line": 22 + "line": 23 } }, { "defaultMessage": "!!!Try again", "end": { "column": 3, - "line": 29 + "line": 30 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.tryReloadWorkspaces", "start": { "column": 23, - "line": 26 + "line": 27 + } + }, + { + "defaultMessage": "!!!Your changes have been saved", + "end": { + "column": 3, + "line": 34 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.updatedInfo", + "start": { + "column": 15, + "line": 31 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 2b4e79621..ad179bc1d 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -252,6 +252,7 @@ "settings.workspaces.headline": "Your workspaces", "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", "settings.workspaces.tryReloadWorkspaces": "Try again", + "settings.workspaces.updatedInfo": "!!!Your changes have been saved", "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", "sidebar.addNewService": "Add new service", "sidebar.closeWorkspaceDrawer": "Close workspace drawer", @@ -307,4 +308,4 @@ "workspaceDrawer.headline": "Workspaces", "workspaceDrawer.item.noServicesAddedYet": "No services added yet", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json index f875ace8a..d68899d9b 100644 --- a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json +++ b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Your workspaces", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 14, + "line": 15, "column": 12 }, "end": { - "line": 17, + "line": 18, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!You haven't added any workspaces yet.", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 18, + "line": 19, "column": 19 }, "end": { - "line": 21, + "line": 22, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Could not load your workspaces", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 22, + "line": 23, "column": 27 }, "end": { - "line": 25, + "line": 26, "column": 3 } }, @@ -43,11 +43,24 @@ "defaultMessage": "!!!Try again", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 26, + "line": 27, "column": 23 }, "end": { - "line": 29, + "line": 30, + "column": 3 + } + }, + { + "id": "settings.workspaces.updatedInfo", + "defaultMessage": "!!!Your changes have been saved", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 31, + "column": 15 + }, + "end": { + "line": 34, "column": 3 } } diff --git a/src/stores/lib/Request.js b/src/stores/lib/Request.js index 1fb67cc15..486de8a49 100644 --- a/src/stores/lib/Request.js +++ b/src/stores/lib/Request.js @@ -109,7 +109,7 @@ export default class Request { Request._hooks.forEach(hook => hook(this)); } - reset() { + reset = () => { this.result = null; this.isExecuting = false; this.isError = false; @@ -118,5 +118,5 @@ export default class Request { this._promise = Promise; return this; - } + }; } -- cgit v1.2.3-70-g09d2 From 4346b0c0871c856d27c9ba088dcaf0e084552b12 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Thu, 4 Apr 2019 16:46:22 +0200 Subject: add hover effect for drawer workspace items --- packages/theme/src/themes/dark/index.ts | 1 + packages/theme/src/themes/default/index.ts | 1 + src/features/workspaces/components/WorkspaceDrawerItem.js | 6 ++++++ 3 files changed, 8 insertions(+) (limited to 'packages') diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index cb7ffc1cf..1c0ede8e5 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -69,6 +69,7 @@ export const workspaceDrawerBackground = color(colorBackground).lighten(0.3).hex export const workspaceDrawerAddButtonColor = legacyStyles.darkThemeGrayLighter; export const workspaceDrawerAddButtonHoverColor = legacyStyles.darkThemeGraySmoke; export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).lighten(0.2).hex(); +export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).lighten(0.2).hex(); export const workspaceDrawerItemActiveBackground = defaultStyles.brandPrimary; export const workspaceDrawerItemNameColor = colorText; export const workspaceDrawerItemNameActiveColor = 'white'; diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index f2632ee20..718ccf485 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -149,6 +149,7 @@ export const workspaceDrawerPadding = 20; export const workspaceDrawerBackground = color(colorBackground).lighten(0.1).hex(); export const workspaceDrawerAddButtonColor = legacyStyles.themeGrayLight; export const workspaceDrawerAddButtonHoverColor = color(legacyStyles.themeGrayLight).lighten(0.1).hex(); +export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).darken(0.01).hex(); export const workspaceDrawerItemActiveBackground = legacyStyles.themeGrayLightest; export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).darken(0.05).hex(); export const workspaceDrawerItemNameColor = colorText; diff --git a/src/features/workspaces/components/WorkspaceDrawerItem.js b/src/features/workspaces/components/WorkspaceDrawerItem.js index 1e28ebea6..17a7882b8 100644 --- a/src/features/workspaces/components/WorkspaceDrawerItem.js +++ b/src/features/workspaces/components/WorkspaceDrawerItem.js @@ -20,9 +20,15 @@ const styles = theme => ({ '&:first-child': { borderTop: `1px solid ${theme.workspaceDrawerItemBorder}`, }, + '&:hover': { + backgroundColor: theme.workspaceDrawerItemHoverBackground, + }, }, isActiveItem: { backgroundColor: theme.workspaceDrawerItemActiveBackground, + '&:hover': { + backgroundColor: theme.workspaceDrawerItemActiveBackground, + }, }, name: { marginTop: '4px', -- cgit v1.2.3-70-g09d2 From 1fa1e165b159adf390375787df2af9b33e5f5856 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Sat, 6 Apr 2019 10:05:16 +0200 Subject: make workspace settings list items taller --- packages/theme/src/themes/dark/index.ts | 6 +++++ packages/theme/src/themes/default/index.ts | 6 +++++ .../workspaces/components/WorkspaceItem.js | 31 ++++++++++++---------- 3 files changed, 29 insertions(+), 14 deletions(-) (limited to 'packages') diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index 1c0ede8e5..a9d1e1b46 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -64,6 +64,12 @@ export const selectSearchColor = inputBackground; // Modal export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.8).rgb().string(); +// Workspace settings +export const workspaceSettings = { + listItemBorderColor: legacyStyles.darkThemeGrayDarker, + listItemHoverBgColor: legacyStyles.darkThemeGrayDarker, +}; + // Workspace Drawer export const workspaceDrawerBackground = color(colorBackground).lighten(0.3).hex(); export const workspaceDrawerAddButtonColor = legacyStyles.darkThemeGrayLighter; diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index 718ccf485..e4c74a5c9 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -143,6 +143,12 @@ export const badgeBorderRadius = 50; // Modal export const colorModalOverlayBackground = color('#000').alpha(0.5).rgb().string(); +// Workspace settings +export const workspaceSettings = { + listItemBorderColor: legacyStyles.themeGrayLightest, + listItemHoverBgColor: legacyStyles.themeGrayLightest, +}; + // Workspace Drawer export const workspaceDrawerWidth = 300; export const workspaceDrawerPadding = 20; diff --git a/src/features/workspaces/components/WorkspaceItem.js b/src/features/workspaces/components/WorkspaceItem.js index b2c2a4830..a950a981a 100644 --- a/src/features/workspaces/components/WorkspaceItem.js +++ b/src/features/workspaces/components/WorkspaceItem.js @@ -2,14 +2,25 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { intlShape } from 'react-intl'; import { observer } from 'mobx-react'; -import classnames from 'classnames'; +import injectSheet from 'react-jss'; + import Workspace from '../models/Workspace'; -// const messages = defineMessages({}); +const styles = theme => ({ + row: { + height: 57, + borderBottom: `1px solid ${theme.workspaceSettings.listItemBorderColor}`, + '&:hover': { + background: theme.workspaceSettings.listItemHoverBgColor, + }, + }, + columnName: {}, +}); -@observer +@injectSheet(styles) @observer class WorkspaceItem extends Component { static propTypes = { + classes: PropTypes.object.isRequired, workspace: PropTypes.instanceOf(Workspace).isRequired, onItemClick: PropTypes.func.isRequired, }; @@ -19,19 +30,11 @@ class WorkspaceItem extends Component { }; render() { - const { workspace, onItemClick } = this.props; - // const { intl } = this.context; + const { classes, workspace, onItemClick } = this.props; return ( - - onItemClick(workspace)} - > + + onItemClick(workspace)}> {workspace.name} -- cgit v1.2.3-70-g09d2 From b3afb9f45d47ebc352b28eb106b22fffc2f17707 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Sun, 7 Apr 2019 19:50:40 +0200 Subject: render workspace service list like services + toggle --- packages/forms/src/input/index.tsx | 1 + packages/forms/src/input/styles.ts | 5 ++ packages/forms/src/label/styles.ts | 4 +- packages/forms/src/select/index.tsx | 6 ++ packages/forms/src/toggle/index.tsx | 4 +- packages/theme/src/themes/dark/index.ts | 52 ++++++++++++++++- packages/theme/src/themes/default/index.ts | 57 +++++++++++++++++- src/components/ui/ServiceIcon.js | 67 ++++++++++++++++++++++ .../workspaces/components/EditWorkspaceForm.js | 4 +- .../workspaces/components/ServiceListItem.js | 48 ---------------- .../workspaces/components/WorkspaceItem.js | 6 +- .../components/WorkspaceServiceListItem.js | 50 ++++++++++++++++ 12 files changed, 243 insertions(+), 61 deletions(-) create mode 100644 src/components/ui/ServiceIcon.js delete mode 100644 src/features/workspaces/components/ServiceListItem.js create mode 100644 src/features/workspaces/components/WorkspaceServiceListItem.js (limited to 'packages') diff --git a/packages/forms/src/input/index.tsx b/packages/forms/src/input/index.tsx index f89c91be5..e410f8fef 100644 --- a/packages/forms/src/input/index.tsx +++ b/packages/forms/src/input/index.tsx @@ -131,6 +131,7 @@ class InputComponent extends Component { title={label} showLabel={showLabel} htmlFor={id} + className={classes.label} >
({ }); export default (theme: Theme) => ({ + label: { + '& > div': { + marginTop: 5, + } + }, disabled: { opacity: theme.inputDisabledOpacity, }, diff --git a/packages/forms/src/label/styles.ts b/packages/forms/src/label/styles.ts index f3998de04..c64c9b285 100644 --- a/packages/forms/src/label/styles.ts +++ b/packages/forms/src/label/styles.ts @@ -1,9 +1,7 @@ import { Theme } from '../../../theme/lib'; export default (theme: Theme) => ({ - content: { - marginTop: 5, - }, + content: {}, label: { color: theme.labelColor, fontSize: theme.uiFontSize, diff --git a/packages/forms/src/select/index.tsx b/packages/forms/src/select/index.tsx index 4a9e3c56e..cfbe91dda 100644 --- a/packages/forms/src/select/index.tsx +++ b/packages/forms/src/select/index.tsx @@ -56,6 +56,11 @@ const styles = (theme: Theme) => ({ textAlign: 'left', color: theme.selectColor, }, + label: { + '& > div': { + marginTop: 5, + } + }, popup: { opacity: 0, height: 0, @@ -334,6 +339,7 @@ class SelectComponent extends Component { title={label} showLabel={showLabel} htmlFor={id} + className={classes.label} >
({ }, toggleLabel: { display: 'flex', + alignItems: 'center', '& > span': { order: 1, marginLeft: 15, - marginTop: 2, }, }, }); diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index a9d1e1b46..73ffa7f5e 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -1,4 +1,5 @@ import color from 'color'; +import { merge, cloneDeep } from 'lodash'; import * as defaultStyles from '../default'; import * as legacyStyles from '../legacy'; @@ -64,11 +65,51 @@ export const selectSearchColor = inputBackground; // Modal export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.8).rgb().string(); +// Services +export const services = merge({}, defaultStyles.services, { + listItems: { + borderColor: legacyStyles.darkThemeGrayDarker, + hoverBgColor: legacyStyles.darkThemeGrayDarker, + disabled: { + color: legacyStyles.darkThemeGray, + }, + }, +}); + +// Workspaces +const drawerBg = color(colorBackground).lighten(0.3).hex(); + +export const workspaces = merge({}, defaultStyles.workspaces, { + settings: { + listItems: cloneDeep(services.listItems), + }, + drawer: { + background: drawerBg, + addButton: { + color: legacyStyles.darkThemeGrayLighter, + hoverColor: legacyStyles.darkThemeGraySmoke, + }, + listItem: { + border: color(drawerBg).lighten(0.2).hex(), + hoverBackground: color(drawerBg).lighten(0.2).hex(), + activeBackground: defaultStyles.brandPrimary, + name: { + color: colorText, + activeColor: 'white', + }, + services: { + color: color(colorText).darken(0.5).hex(), + active: color(defaultStyles.brandPrimary).lighten(0.5).hex(), + }, + }, + }, +}); + // Workspace settings -export const workspaceSettings = { +export const workspaceSettings = merge({}, defaultStyles.workspaceSettings, { listItemBorderColor: legacyStyles.darkThemeGrayDarker, listItemHoverBgColor: legacyStyles.darkThemeGrayDarker, -}; +}); // Workspace Drawer export const workspaceDrawerBackground = color(colorBackground).lighten(0.3).hex(); @@ -81,3 +122,10 @@ export const workspaceDrawerItemNameColor = colorText; export const workspaceDrawerItemNameActiveColor = 'white'; export const workspaceDrawerServicesColor = color(colorText).darken(0.5).hex(); export const workspaceDrawerServicesActiveColor = color(defaultStyles.brandPrimary).lighten(0.5).hex(); + +// Service Icon +export const serviceIcon = merge({}, defaultStyles.serviceIcon, { + isCustom: { + border: `1px solid ${legacyStyles.darkThemeGrayDark}`, + }, +}); diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index e4c74a5c9..d2b9014b4 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -1,4 +1,5 @@ import color from 'color'; +import { cloneDeep } from 'lodash'; import * as legacyStyles from '../legacy'; @@ -143,8 +144,52 @@ export const badgeBorderRadius = 50; // Modal export const colorModalOverlayBackground = color('#000').alpha(0.5).rgb().string(); -// Workspace settings +// Services +export const services = { + listItems: { + padding: 10, + height: 57, + borderColor: legacyStyles.themeGrayLightest, + hoverBgColor: legacyStyles.themeGrayLightest, + disabled: { + color: legacyStyles.themeGrayLight, + }, + }, +}; + +// Workspaces +const drawerBg = color(colorBackground).lighten(0.1).hex(); + +export const workspaces = { + settings: { + listItems: cloneDeep(services.listItems), + }, + drawer: { + width: 300, + padding: 20, + background: drawerBg, + addButton: { + color: legacyStyles.themeGrayLight, + hoverColor: color(legacyStyles.themeGrayLight).lighten(0.1).hex(), + }, + listItem: { + hoverBackground: color(drawerBg).darken(0.01).hex(), + activeBackground: legacyStyles.themeGrayLightest, + border: color(drawerBg).darken(0.05).hex(), + name: { + color: colorText, + activeColor: colorText, + }, + services: { + color: color(colorText).lighten(1.5).hex(), + active: color(colorText).lighten(1.5).hex(), + }, + }, + }, +}; + export const workspaceSettings = { + listItemHeight: 57, listItemBorderColor: legacyStyles.themeGrayLightest, listItemHoverBgColor: legacyStyles.themeGrayLightest, }; @@ -162,3 +207,13 @@ export const workspaceDrawerItemNameColor = colorText; export const workspaceDrawerItemNameActiveColor = colorText; export const workspaceDrawerServicesColor = color(colorText).lighten(1.5).hex(); export const workspaceDrawerServicesActiveColor = workspaceDrawerServicesColor; + +// Service Icon +export const serviceIcon = { + width: 35, + isCustom: { + border: `1px solid ${legacyStyles.themeGrayLighter}`, + borderRadius: legacyStyles.themeBorderRadius, + width: 37, + }, +}; diff --git a/src/components/ui/ServiceIcon.js b/src/components/ui/ServiceIcon.js new file mode 100644 index 000000000..0b9155a4e --- /dev/null +++ b/src/components/ui/ServiceIcon.js @@ -0,0 +1,67 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import injectSheet from 'react-jss'; +import classnames from 'classnames'; + +import ServiceModel from '../../models/Service'; + +const styles = theme => ({ + root: { + height: 'auto', + }, + icon: { + width: theme.serviceIcon.width, + }, + isCustomIcon: { + width: theme.serviceIcon.isCustom.width, + border: theme.serviceIcon.isCustom.border, + borderRadius: theme.serviceIcon.isCustom.borderRadius, + }, + isDisabled: { + filter: 'grayscale(100%)', + opacity: '.5', + }, +}); + +@injectSheet(styles) @observer +class ServiceIcon extends Component { + static propTypes = { + classes: PropTypes.object.isRequired, + service: PropTypes.instanceOf(ServiceModel).isRequired, + className: PropTypes.string, + }; + + static defaultProps = { + className: '', + }; + + render() { + const { + classes, + className, + service, + } = this.props; + + return ( +
+ +
+ ); + } +} + +export default ServiceIcon; diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js index e4bf44248..bba4485ff 100644 --- a/src/features/workspaces/components/EditWorkspaceForm.js +++ b/src/features/workspaces/components/EditWorkspaceForm.js @@ -10,7 +10,7 @@ import Workspace from '../models/Workspace'; import Service from '../../../models/Service'; import Form from '../../../lib/Form'; import { required } from '../../../helpers/validation-helpers'; -import ServiceListItem from './ServiceListItem'; +import WorkspaceServiceListItem from './WorkspaceServiceListItem'; import Request from '../../../stores/lib/Request'; import { gaEvent } from '../../../lib/analytics'; import { GA_CATEGORY_WORKSPACES } from '../index'; @@ -151,7 +151,7 @@ class EditWorkspaceForm extends Component {

{intl.formatMessage(messages.servicesInWorkspaceHeadline)}

{services.map(s => ( - ({ - service: { - height: 'auto', - display: 'flex', - }, - name: { - marginTop: '4px', - }, -}); - -@injectSheet(styles) @observer -class ServiceListItem extends Component { - static propTypes = { - classes: PropTypes.object.isRequired, - isInWorkspace: PropTypes.bool.isRequired, - onToggle: PropTypes.func.isRequired, - service: PropTypes.instanceOf(Service).isRequired, - }; - - render() { - const { - classes, - isInWorkspace, - onToggle, - service, - } = this.props; - - return ( -
- -
- ); - } -} - -export default ServiceListItem; diff --git a/src/features/workspaces/components/WorkspaceItem.js b/src/features/workspaces/components/WorkspaceItem.js index a950a981a..cc4b1a3ba 100644 --- a/src/features/workspaces/components/WorkspaceItem.js +++ b/src/features/workspaces/components/WorkspaceItem.js @@ -8,10 +8,10 @@ import Workspace from '../models/Workspace'; const styles = theme => ({ row: { - height: 57, - borderBottom: `1px solid ${theme.workspaceSettings.listItemBorderColor}`, + height: theme.workspaces.settings.listItems.height, + borderBottom: `1px solid ${theme.workspaces.settings.listItems.borderColor}`, '&:hover': { - background: theme.workspaceSettings.listItemHoverBgColor, + background: theme.workspaces.settings.listItems.hoverBgColor, }, }, columnName: {}, diff --git a/src/features/workspaces/components/WorkspaceServiceListItem.js b/src/features/workspaces/components/WorkspaceServiceListItem.js new file mode 100644 index 000000000..7b516d056 --- /dev/null +++ b/src/features/workspaces/components/WorkspaceServiceListItem.js @@ -0,0 +1,50 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import injectSheet from 'react-jss'; +import { Toggle } from '@meetfranz/forms'; + +import Service from '../../../models/Service'; +import ServiceIcon from '../../../components/ui/ServiceIcon'; + +const styles = theme => ({ + service: { + height: theme.workspaceSettings.listItemHeight, + display: 'flex', + }, + name: { + marginTop: '4px', + }, +}); + +@injectSheet(styles) @observer +class ServiceListItem extends Component { + static propTypes = { + classes: PropTypes.object.isRequired, + isInWorkspace: PropTypes.bool.isRequired, + onToggle: PropTypes.func.isRequired, + service: PropTypes.instanceOf(Service).isRequired, + }; + + render() { + const { + classes, + isInWorkspace, + onToggle, + service, + } = this.props; + + return ( +
+ + +
+ ); + } +} + +export default ServiceListItem; -- cgit v1.2.3-70-g09d2 From e593568afa238388374394806999ceccbd85c15e Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Wed, 10 Apr 2019 11:10:57 +0200 Subject: fix drawer add workspace label styles --- packages/theme/src/themes/default/index.ts | 4 ++-- src/features/workspaces/components/WorkspaceDrawer.js | 13 ++++++++----- src/i18n/locales/en-US.json | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'packages') diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index d2b9014b4..eb7e80b9f 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -169,8 +169,8 @@ export const workspaces = { padding: 20, background: drawerBg, addButton: { - color: legacyStyles.themeGrayLight, - hoverColor: color(legacyStyles.themeGrayLight).lighten(0.1).hex(), + color: color(legacyStyles.themeGrayLight).lighten(0.1).hex(), + hoverColor: legacyStyles.themeGrayLight, }, listItem: { hoverBackground: color(drawerBg).darken(0.01).hex(), diff --git a/src/features/workspaces/components/WorkspaceDrawer.js b/src/features/workspaces/components/WorkspaceDrawer.js index bb77aa72d..ae67b9ea4 100644 --- a/src/features/workspaces/components/WorkspaceDrawer.js +++ b/src/features/workspaces/components/WorkspaceDrawer.js @@ -80,9 +80,12 @@ const styles = theme => ({ }, addNewWorkspaceLabel: { height: 'auto', - color: theme.workspaceDrawerServicesColor, - marginTop: 20, - marginLeft: theme.workspaceDrawerPadding, + color: theme.workspaces.drawer.addButton.color, + marginTop: 40, + textAlign: 'center', + '& > svg': { + fill: theme.workspaces.drawer.addButton.color, + }, '& > span': { fontSize: '13px', marginLeft: 10, @@ -90,9 +93,9 @@ const styles = theme => ({ top: -3, }, '&:hover': { - color: theme.workspaceDrawerAddButtonHoverColor, + color: theme.workspaces.drawer.addButton.hoverColor, '& > svg': { - fill: theme.workspaceDrawerAddButtonHoverColor, + fill: theme.workspaces.drawer.addButton.hoverColor, }, }, }, diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index e55489418..db1d51f3b 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -306,7 +306,7 @@ "validation.url": "{field} is not a valid URL", "welcome.loginButton": "Login to your account", "welcome.signupButton": "Create a free account", - "workspaceDrawer.addNewWorkspaceLabel": "add new workspace", + "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", "workspaceDrawer.allServices": "All services", "workspaceDrawer.headline": "Workspaces", "workspaceDrawer.item.noServicesAddedYet": "No services added yet", @@ -315,4 +315,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} -- cgit v1.2.3-70-g09d2 From 9472deab9496aca3a9bdf20b93f2a84e3e4569b7 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Wed, 10 Apr 2019 11:22:25 +0200 Subject: refactors workspace theme vars into object structure --- packages/theme/src/themes/dark/index.ts | 49 +++++++++--------- packages/theme/src/themes/default/index.ts | 60 +++++++++++----------- src/components/layout/AppLayout.js | 4 +- .../workspaces/components/WorkspaceDrawer.js | 20 ++++---- .../workspaces/components/WorkspaceDrawerItem.js | 20 ++++---- .../components/WorkspaceSwitchingIndicator.js | 2 +- 6 files changed, 78 insertions(+), 77 deletions(-) (limited to 'packages') diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index 73ffa7f5e..fd04b106c 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -76,6 +76,13 @@ export const services = merge({}, defaultStyles.services, { }, }); +// Service Icon +export const serviceIcon = merge({}, defaultStyles.serviceIcon, { + isCustom: { + border: `1px solid ${legacyStyles.darkThemeGrayDark}`, + }, +}); + // Workspaces const drawerBg = color(colorBackground).lighten(0.3).hex(); @@ -105,27 +112,21 @@ export const workspaces = merge({}, defaultStyles.workspaces, { }, }); -// Workspace settings -export const workspaceSettings = merge({}, defaultStyles.workspaceSettings, { - listItemBorderColor: legacyStyles.darkThemeGrayDarker, - listItemHoverBgColor: legacyStyles.darkThemeGrayDarker, -}); - -// Workspace Drawer -export const workspaceDrawerBackground = color(colorBackground).lighten(0.3).hex(); -export const workspaceDrawerAddButtonColor = legacyStyles.darkThemeGrayLighter; -export const workspaceDrawerAddButtonHoverColor = legacyStyles.darkThemeGraySmoke; -export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).lighten(0.2).hex(); -export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).lighten(0.2).hex(); -export const workspaceDrawerItemActiveBackground = defaultStyles.brandPrimary; -export const workspaceDrawerItemNameColor = colorText; -export const workspaceDrawerItemNameActiveColor = 'white'; -export const workspaceDrawerServicesColor = color(colorText).darken(0.5).hex(); -export const workspaceDrawerServicesActiveColor = color(defaultStyles.brandPrimary).lighten(0.5).hex(); - -// Service Icon -export const serviceIcon = merge({}, defaultStyles.serviceIcon, { - isCustom: { - border: `1px solid ${legacyStyles.darkThemeGrayDark}`, - }, -}); +// // Workspace settings +// export const workspaceSettings = merge({}, defaultStyles.workspaceSettings, { +// listItemBorderColor: legacyStyles.darkThemeGrayDarker, +// listItemHoverBgColor: legacyStyles.darkThemeGrayDarker, +// }); +// +// // Workspace Drawer +// export const workspaceDrawerBackground = color(colorBackground).lighten(0.3).hex(); +// export const workspaceDrawerAddButtonColor = legacyStyles.darkThemeGrayLighter; +// export const workspaceDrawerAddButtonHoverColor = legacyStyles.darkThemeGraySmoke; +// export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).lighten(0.2).hex(); +// export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).lighten(0.2).hex(); +// export const workspaceDrawerItemActiveBackground = defaultStyles.brandPrimary; +// export const workspaceDrawerItemNameColor = colorText; +// export const workspaceDrawerItemNameActiveColor = 'white'; +// export const workspaceDrawerServicesColor = color(colorText).darken(0.5).hex(); +// export const workspaceDrawerServicesActiveColor = color(defaultStyles.brandPrimary).lighten(0.5).hex(); +// diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index eb7e80b9f..48111d22b 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -157,6 +157,16 @@ export const services = { }, }; +// Service Icon +export const serviceIcon = { + width: 35, + isCustom: { + border: `1px solid ${legacyStyles.themeGrayLighter}`, + borderRadius: legacyStyles.themeBorderRadius, + width: 37, + }, +}; + // Workspaces const drawerBg = color(colorBackground).lighten(0.1).hex(); @@ -168,7 +178,7 @@ export const workspaces = { width: 300, padding: 20, background: drawerBg, - addButton: { + buttons: { color: color(legacyStyles.themeGrayLight).lighten(0.1).hex(), hoverColor: legacyStyles.themeGrayLight, }, @@ -188,32 +198,22 @@ export const workspaces = { }, }; -export const workspaceSettings = { - listItemHeight: 57, - listItemBorderColor: legacyStyles.themeGrayLightest, - listItemHoverBgColor: legacyStyles.themeGrayLightest, -}; - -// Workspace Drawer -export const workspaceDrawerWidth = 300; -export const workspaceDrawerPadding = 20; -export const workspaceDrawerBackground = color(colorBackground).lighten(0.1).hex(); -export const workspaceDrawerAddButtonColor = legacyStyles.themeGrayLight; -export const workspaceDrawerAddButtonHoverColor = color(legacyStyles.themeGrayLight).lighten(0.1).hex(); -export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).darken(0.01).hex(); -export const workspaceDrawerItemActiveBackground = legacyStyles.themeGrayLightest; -export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).darken(0.05).hex(); -export const workspaceDrawerItemNameColor = colorText; -export const workspaceDrawerItemNameActiveColor = colorText; -export const workspaceDrawerServicesColor = color(colorText).lighten(1.5).hex(); -export const workspaceDrawerServicesActiveColor = workspaceDrawerServicesColor; - -// Service Icon -export const serviceIcon = { - width: 35, - isCustom: { - border: `1px solid ${legacyStyles.themeGrayLighter}`, - borderRadius: legacyStyles.themeBorderRadius, - width: 37, - }, -}; +// export const workspaceSettings = { +// listItemHeight: 57, +// listItemBorderColor: legacyStyles.themeGrayLightest, +// listItemHoverBgColor: legacyStyles.themeGrayLightest, +// }; +// +// // Workspace Drawer +// export const workspaceDrawerWidth = 300; +// export const workspaceDrawerPadding = 20; +// export const workspaceDrawerBackground = color(colorBackground).lighten(0.1).hex(); +// export const workspaceDrawerAddButtonColor = legacyStyles.themeGrayLight; +// export const workspaceDrawerAddButtonHoverColor = color(legacyStyles.themeGrayLight).lighten(0.1).hex(); +// export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).darken(0.01).hex(); +// export const workspaceDrawerItemActiveBackground = legacyStyles.themeGrayLightest; +// export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).darken(0.05).hex(); +// export const workspaceDrawerItemNameColor = colorText; +// export const workspaceDrawerItemNameActiveColor = colorText; +// export const workspaceDrawerServicesColor = color(colorText).lighten(1.5).hex(); +// export const workspaceDrawerServicesActiveColor = workspaceDrawerServicesColor; diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index 0c72c1413..b7f7722dd 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js @@ -50,10 +50,10 @@ const messages = defineMessages({ const styles = theme => ({ appContent: { - width: `calc(100% + ${theme.workspaceDrawerWidth}px)`, + width: `calc(100% + ${theme.workspaces.drawer.width}px)`, transition: 'transform 0.5s ease', transform() { - return workspaceStore.isWorkspaceDrawerOpen ? 'translateX(0)' : `translateX(-${theme.workspaceDrawerWidth}px)`; + return workspaceStore.isWorkspaceDrawerOpen ? 'translateX(0)' : `translateX(-${theme.workspaces.drawer.width}px)`; }, }, }); diff --git a/src/features/workspaces/components/WorkspaceDrawer.js b/src/features/workspaces/components/WorkspaceDrawer.js index ae67b9ea4..d48b55f12 100644 --- a/src/features/workspaces/components/WorkspaceDrawer.js +++ b/src/features/workspaces/components/WorkspaceDrawer.js @@ -45,24 +45,24 @@ const messages = defineMessages({ const styles = theme => ({ drawer: { - backgroundColor: theme.workspaceDrawerBackground, - width: `${theme.workspaceDrawerWidth}px`, + background: theme.workspaces.drawer.background, + width: `${theme.workspaces.drawer.width}px`, }, headline: { fontSize: '24px', marginTop: '38px', marginBottom: '25px', - marginLeft: theme.workspaceDrawerPadding, + marginLeft: theme.workspaces.drawer.padding, }, workspacesSettingsButton: { float: 'right', - marginRight: theme.workspaceDrawerPadding, + marginRight: theme.workspaces.drawer.padding, marginTop: '2px', }, workspacesSettingsButtonIcon: { - fill: theme.workspaceDrawerAddButtonColor, + fill: theme.workspaces.drawer.buttons.color, '&:hover': { - fill: theme.workspaceDrawerAddButtonHoverColor, + fill: theme.workspaces.drawer.buttons.hoverColor, }, }, workspaces: { @@ -80,11 +80,11 @@ const styles = theme => ({ }, addNewWorkspaceLabel: { height: 'auto', - color: theme.workspaces.drawer.addButton.color, + color: theme.workspaces.drawer.buttons.color, marginTop: 40, textAlign: 'center', '& > svg': { - fill: theme.workspaces.drawer.addButton.color, + fill: theme.workspaces.drawer.buttons.color, }, '& > span': { fontSize: '13px', @@ -93,9 +93,9 @@ const styles = theme => ({ top: -3, }, '&:hover': { - color: theme.workspaces.drawer.addButton.hoverColor, + color: theme.workspaces.drawer.buttons.hoverColor, '& > svg': { - fill: theme.workspaces.drawer.addButton.hoverColor, + fill: theme.workspaces.drawer.buttons.hoverColor, }, }, }, diff --git a/src/features/workspaces/components/WorkspaceDrawerItem.js b/src/features/workspaces/components/WorkspaceDrawerItem.js index 0be485504..57f0754d9 100644 --- a/src/features/workspaces/components/WorkspaceDrawerItem.js +++ b/src/features/workspaces/components/WorkspaceDrawerItem.js @@ -15,41 +15,41 @@ const messages = defineMessages({ const styles = theme => ({ item: { height: '67px', - padding: `15px ${theme.workspaceDrawerPadding}px`, - borderBottom: `1px solid ${theme.workspaceDrawerItemBorder}`, + padding: `15px ${theme.workspaces.drawer.padding}px`, + borderBottom: `1px solid ${theme.workspaces.drawer.listItem.border}`, transition: 'background-color 300ms ease-out', '&:first-child': { - borderTop: `1px solid ${theme.workspaceDrawerItemBorder}`, + borderTop: `1px solid ${theme.workspaces.drawer.listItem.border}`, }, '&:hover': { - backgroundColor: theme.workspaceDrawerItemHoverBackground, + backgroundColor: theme.workspaces.drawer.listItem.hoverBackground, }, }, isActiveItem: { - backgroundColor: theme.workspaceDrawerItemActiveBackground, + backgroundColor: theme.workspaces.drawer.listItem.activeBackground, '&:hover': { - backgroundColor: theme.workspaceDrawerItemActiveBackground, + backgroundColor: theme.workspaces.drawer.listItem.activeBackground, }, }, name: { marginTop: '4px', - color: theme.workspaceDrawerItemNameColor, + color: theme.workspaces.drawer.listItem.name.color, }, activeName: { - color: theme.workspaceDrawerItemNameActiveColor, + color: theme.workspaces.drawer.listItem.name.activeColor, }, services: { display: 'block', fontSize: '11px', marginTop: '5px', - color: theme.workspaceDrawerServicesColor, + color: theme.workspaces.drawer.listItem.services.color, whiteSpace: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden', lineHeight: '15px', }, activeServices: { - color: theme.workspaceDrawerServicesActiveColor, + color: theme.workspaces.drawer.listItem.services.active, }, }); diff --git a/src/features/workspaces/components/WorkspaceSwitchingIndicator.js b/src/features/workspaces/components/WorkspaceSwitchingIndicator.js index 8aba5bbd9..ded6b8f2a 100644 --- a/src/features/workspaces/components/WorkspaceSwitchingIndicator.js +++ b/src/features/workspaces/components/WorkspaceSwitchingIndicator.js @@ -25,7 +25,7 @@ const styles = theme => ({ marginTop: '20px', }, wrapperWhenDrawerIsOpen: { - width: `calc(100% - ${theme.workspaceDrawerWidth}px)`, + width: `calc(100% - ${theme.workspaces.drawer.width}px)`, }, component: { background: 'rgba(20, 20, 20, 0.4)', -- cgit v1.2.3-70-g09d2 From 47ae4fc0b426353e202c683e237710a9714d3ac6 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Wed, 10 Apr 2019 12:31:34 +0200 Subject: improve contrast of workspace switching indicator --- packages/theme/src/themes/default/index.ts | 3 +++ packages/ui/src/loader/index.tsx | 4 +++- .../components/WorkspaceSwitchingIndicator.js | 18 +++++++++++------- 3 files changed, 17 insertions(+), 8 deletions(-) (limited to 'packages') diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index 48111d22b..d0493b82f 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -196,6 +196,9 @@ export const workspaces = { }, }, }, + switchingIndicator: { + spinnerColor: 'white', + }, }; // export const workspaceSettings = { diff --git a/packages/ui/src/loader/index.tsx b/packages/ui/src/loader/index.tsx index 46545c786..4a3c8274f 100644 --- a/packages/ui/src/loader/index.tsx +++ b/packages/ui/src/loader/index.tsx @@ -8,6 +8,7 @@ import { IWithStyle } from '../typings/generic'; interface IProps extends IWithStyle { className?: string; + color?: string; } const styles = (theme: Theme) => ({ @@ -22,6 +23,7 @@ class LoaderComponent extends Component { const { classes, className, + color, theme, } = this.props; @@ -37,7 +39,7 @@ class LoaderComponent extends Component { loaded={false} width={4} scale={0.75} - color={theme.colorText} + color={color || theme.colorText} parentClassName={classes.loader} />
diff --git a/src/features/workspaces/components/WorkspaceSwitchingIndicator.js b/src/features/workspaces/components/WorkspaceSwitchingIndicator.js index ded6b8f2a..c4a800a7b 100644 --- a/src/features/workspaces/components/WorkspaceSwitchingIndicator.js +++ b/src/features/workspaces/components/WorkspaceSwitchingIndicator.js @@ -3,9 +3,9 @@ import PropTypes from 'prop-types'; import { observer } from 'mobx-react'; import injectSheet from 'react-jss'; import classnames from 'classnames'; +import { Loader } from '@meetfranz/ui'; import { defineMessages, intlShape } from 'react-intl'; -import LoaderComponent from '../../../components/ui/Loader'; import { workspaceStore } from '../index'; const messages = defineMessages({ @@ -39,12 +39,14 @@ const styles = theme => ({ zIndex: 200, }, spinner: { - width: '40px', - marginRight: '5px', + width: 40, + height: 40, + marginRight: 10, }, message: { fontSize: 16, whiteSpace: 'nowrap', + color: theme.colorAppLoaderSpinner, }, }); @@ -52,6 +54,7 @@ const styles = theme => ({ class WorkspaceSwitchingIndicator extends Component { static propTypes = { classes: PropTypes.object.isRequired, + theme: PropTypes.object.isRequired, }; static contextTypes = { @@ -59,7 +62,7 @@ class WorkspaceSwitchingIndicator extends Component { }; render() { - const { classes } = this.props; + const { classes, theme } = this.props; const { intl } = this.context; const { isSwitchingWorkspace, isWorkspaceDrawerOpen, nextWorkspace } = workspaceStore; if (!isSwitchingWorkspace) return null; @@ -72,9 +75,10 @@ class WorkspaceSwitchingIndicator extends Component { ])} >
-
- -
+

{`${intl.formatMessage(messages.switchingTo)} ${nextWorkspaceName}`}

-- cgit v1.2.3-70-g09d2 From 073212bf046b9218f9e3129988b1b63fba5d685d Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Wed, 10 Apr 2019 16:12:38 +0200 Subject: added generic pro badge component for settings nav --- packages/ui/src/badge/ProBadge.tsx | 65 ++++++++++++++++++++++ packages/ui/src/index.ts | 1 + .../settings/navigation/SettingsNavigation.js | 13 +++-- src/features/workspaces/store.js | 12 ++-- src/i18n/locales/defaultMessages.json | 28 +++++----- src/i18n/locales/en-US.json | 2 +- .../settings/navigation/SettingsNavigation.json | 28 +++++----- src/stores/UIStore.js | 9 +-- src/styles/settings.scss | 26 --------- uidev/src/stories/badge.stories.tsx | 12 +++- 10 files changed, 125 insertions(+), 71 deletions(-) create mode 100644 packages/ui/src/badge/ProBadge.tsx (limited to 'packages') diff --git a/packages/ui/src/badge/ProBadge.tsx b/packages/ui/src/badge/ProBadge.tsx new file mode 100644 index 000000000..eb00e156d --- /dev/null +++ b/packages/ui/src/badge/ProBadge.tsx @@ -0,0 +1,65 @@ +import { Theme } from '@meetfranz/theme'; +import classnames from 'classnames'; +import React, { Component } from 'react'; +import injectStyle from 'react-jss'; + +import { Icon, Badge } from '../'; +import { IWithStyle } from '../typings/generic'; + +interface IProps extends IWithStyle { + badgeClasses?: string; + iconClasses?: string; + inverted?: boolean; +} + +const styles = (theme: Theme) => ({ + badge: { + height: 'auto', + padding: [4, 6, 2, 7], + borderRadius: theme.borderRadiusSmall, + }, + invertedBadge: { + background: theme.styleTypes.primary.contrast, + color: theme.styleTypes.primary.accent, + }, + icon: { + fill: theme.styleTypes.primary.contrast, + }, + invertedIcon: { + fill: theme.styleTypes.primary.accent, + }, +}); + +class ProBadgeComponent extends Component { + render() { + const { + classes, + badgeClasses, + iconClasses, + inverted, + } = this.props; + + return ( + + + + ); + } +} + +export const ProBadge = injectStyle(styles)(ProBadgeComponent); diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index 1eeec5144..666495ce9 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -3,3 +3,4 @@ export { Infobox } from './infobox'; export * from './headline'; export { Loader } from './loader'; export { Badge } from './badge'; +export { ProBadge } from './badge/ProBadge'; diff --git a/src/components/settings/navigation/SettingsNavigation.js b/src/components/settings/navigation/SettingsNavigation.js index 1c51d50d6..993b0a44a 100644 --- a/src/components/settings/navigation/SettingsNavigation.js +++ b/src/components/settings/navigation/SettingsNavigation.js @@ -2,10 +2,11 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { defineMessages, intlShape } from 'react-intl'; import { inject, observer } from 'mobx-react'; -import { Icon } from '@meetfranz/ui'; +import { ProBadge } from '@meetfranz/ui'; import Link from '../../ui/Link'; import { workspaceStore } from '../../../features/workspaces'; +import UIStore from '../../../stores/UIStore'; const messages = defineMessages({ availableServices: { @@ -40,6 +41,9 @@ const messages = defineMessages({ export default @inject('stores') @observer class SettingsNavigation extends Component { static propTypes = { + stores: PropTypes.shape({ + ui: PropTypes.instanceOf(UIStore).isRequired, + }).isRequired, serviceCount: PropTypes.number.isRequired, workspaceCount: PropTypes.number.isRequired, }; @@ -49,7 +53,8 @@ export default @inject('stores') @observer class SettingsNavigation extends Comp }; render() { - const { serviceCount, workspaceCount } = this.props; + const { serviceCount, workspaceCount, stores } = this.props; + const { isDarkThemeActive } = stores.ui; const { intl } = this.context; return ( @@ -79,9 +84,7 @@ export default @inject('stores') @observer class SettingsNavigation extends Comp {intl.formatMessage(messages.yourWorkspaces)} {' '} {workspaceStore.isPremiumUpgradeRequired ? ( - - - + ) : ( {workspaceCount} )} diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index 2e1764f99..ba48022c2 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -36,6 +36,8 @@ export default class WorkspacesStore extends FeatureStore { @observable isWorkspaceDrawerOpen = false; + @observable isSettingsRouteActive = null; + @computed get workspaces() { if (!this.isFeatureActive) return []; return getUserWorkspacesRequest.result || []; @@ -104,8 +106,6 @@ export default class WorkspacesStore extends FeatureStore { _wasDrawerOpenBeforeSettingsRoute = null; - _isSettingsRouteActive = null; - _getWorkspaceById = id => this.workspaces.find(w => w.id === id); _updateSettings = (changes) => { @@ -239,17 +239,17 @@ export default class WorkspacesStore extends FeatureStore { _openDrawerWithSettingsReaction = () => { const { router } = this.stores; const isWorkspaceSettingsRoute = router.location.pathname.includes(WORKSPACES_ROUTES.ROOT); - const isSwitchingToSettingsRoute = !this._isSettingsRouteActive && isWorkspaceSettingsRoute; - const isLeavingSettingsRoute = !isWorkspaceSettingsRoute && this._isSettingsRouteActive; + const isSwitchingToSettingsRoute = !this.isSettingsRouteActive && isWorkspaceSettingsRoute; + const isLeavingSettingsRoute = !isWorkspaceSettingsRoute && this.isSettingsRouteActive; if (isSwitchingToSettingsRoute) { - this._isSettingsRouteActive = true; + this.isSettingsRouteActive = true; this._wasDrawerOpenBeforeSettingsRoute = this.isWorkspaceDrawerOpen; if (!this._wasDrawerOpenBeforeSettingsRoute) { workspaceActions.toggleWorkspaceDrawer(); } } else if (isLeavingSettingsRoute) { - this._isSettingsRouteActive = false; + this.isSettingsRouteActive = false; if (!this._wasDrawerOpenBeforeSettingsRoute && this.isWorkspaceDrawerOpen) { workspaceActions.toggleWorkspaceDrawer(); } diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index f882e6030..791c4dd53 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -1302,91 +1302,91 @@ "defaultMessage": "!!!Available services", "end": { "column": 3, - "line": 14 + "line": 15 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.availableServices", "start": { "column": 21, - "line": 11 + "line": 12 } }, { "defaultMessage": "!!!Your services", "end": { "column": 3, - "line": 18 + "line": 19 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.yourServices", "start": { "column": 16, - "line": 15 + "line": 16 } }, { "defaultMessage": "!!!Your workspaces", "end": { "column": 3, - "line": 22 + "line": 23 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.yourWorkspaces", "start": { "column": 18, - "line": 19 + "line": 20 } }, { "defaultMessage": "!!!Account", "end": { "column": 3, - "line": 26 + "line": 27 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.account", "start": { "column": 11, - "line": 23 + "line": 24 } }, { "defaultMessage": "!!!Settings", "end": { "column": 3, - "line": 30 + "line": 31 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.settings", "start": { "column": 12, - "line": 27 + "line": 28 } }, { "defaultMessage": "!!!Invite Friends", "end": { "column": 3, - "line": 34 + "line": 35 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.inviteFriends", "start": { "column": 17, - "line": 31 + "line": 32 } }, { "defaultMessage": "!!!Logout", "end": { "column": 3, - "line": 38 + "line": 39 }, "file": "src/components/settings/navigation/SettingsNavigation.js", "id": "settings.navigation.logout", "start": { "column": 10, - "line": 35 + "line": 36 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index db1d51f3b..6591af2e2 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -315,4 +315,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json index de78a71cf..77b0ed8a4 100644 --- a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json +++ b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Available services", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 11, + "line": 12, "column": 21 }, "end": { - "line": 14, + "line": 15, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Your services", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 15, + "line": 16, "column": 16 }, "end": { - "line": 18, + "line": 19, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Your workspaces", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 19, + "line": 20, "column": 18 }, "end": { - "line": 22, + "line": 23, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!Account", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 23, + "line": 24, "column": 11 }, "end": { - "line": 26, + "line": 27, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Settings", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 27, + "line": 28, "column": 12 }, "end": { - "line": 30, + "line": 31, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Invite Friends", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 31, + "line": 32, "column": 17 }, "end": { - "line": 34, + "line": 35, "column": 3 } }, @@ -82,11 +82,11 @@ "defaultMessage": "!!!Logout", "file": "src/components/settings/navigation/SettingsNavigation.js", "start": { - "line": 35, + "line": 36, "column": 10 }, "end": { - "line": 38, + "line": 39, "column": 3 } } diff --git a/src/stores/UIStore.js b/src/stores/UIStore.js index bb7965a4a..a95a8e1e0 100644 --- a/src/stores/UIStore.js +++ b/src/stores/UIStore.js @@ -21,11 +21,12 @@ export default class UIStore extends Store { return (settings.app.isAppMuted && settings.app.showMessageBadgeWhenMuted) || !settings.isAppMuted; } - @computed get theme() { - if (this.stores.settings.all.app.darkMode) { - return theme('dark'); - } + @computed get isDarkThemeActive() { + return this.stores.settings.all.app.darkMode; + } + @computed get theme() { + if (this.isDarkThemeActive) return theme('dark'); return theme('default'); } diff --git a/src/styles/settings.scss b/src/styles/settings.scss index 6340f2951..dd6f56d2b 100644 --- a/src/styles/settings.scss +++ b/src/styles/settings.scss @@ -85,11 +85,6 @@ .badge { background: $dark-theme-gray-lighter; color: $dark-theme-gray-smoke; - - &.badge--pro { - background: $theme-brand-primary; - padding: 4px 6px 3px 7px; - } } &:hover { @@ -98,11 +93,6 @@ .badge { background: $dark-theme-gray-lighter; color: $dark-theme-gray-smoke; - - &.badge--pro { - background: $theme-brand-primary; - padding: 4px 6px 3px 7px; - } } } @@ -433,15 +423,6 @@ text-decoration: none; transition: background $theme-transition-time, color $theme-transition-time; - .badge--pro { - background: $theme-brand-primary !important; - padding: 4px 6px 3px 7px; - - .badge-icon-pro { - fill: white; - } - } - &:hover { background: darken($theme-gray-lightest, 5%); @@ -454,13 +435,6 @@ background: $theme-brand-primary; color: #FFF; - .badge--pro { - background: white !important; - .badge-icon-pro { - fill: $theme-brand-primary; - } - } - .badge { background: #FFF; color: $theme-brand-primary; diff --git a/uidev/src/stories/badge.stories.tsx b/uidev/src/stories/badge.stories.tsx index 6de2034bf..d7b4d55b5 100644 --- a/uidev/src/stories/badge.stories.tsx +++ b/uidev/src/stories/badge.stories.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { Badge } from '@meetfranz/ui'; +import { Badge, ProBadge } from '@meetfranz/ui'; import { storiesOf } from '../stores/stories'; storiesOf('Badge') @@ -18,4 +18,14 @@ storiesOf('Badge') danger inverted + )) + .add('Pro Badge', () => ( + <> + + + )) + .add('Pro Badge inverted', () => ( + <> + + )); -- cgit v1.2.3-70-g09d2 From 4c762972ab51e6017607f0450c2647f4c0e5660f Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Wed, 10 Apr 2019 16:27:44 +0200 Subject: add premium badge to workspace drawer headline --- packages/ui/src/badge/ProBadge.tsx | 1 - .../workspaces/components/WorkspaceDrawer.js | 49 ++++++++++++++-------- src/i18n/locales/defaultMessages.json | 13 ++++++ src/i18n/locales/en-US.json | 1 + .../workspaces/components/WorkspaceDrawer.json | 13 ++++++ 5 files changed, 59 insertions(+), 18 deletions(-) (limited to 'packages') diff --git a/packages/ui/src/badge/ProBadge.tsx b/packages/ui/src/badge/ProBadge.tsx index eb00e156d..612e23210 100644 --- a/packages/ui/src/badge/ProBadge.tsx +++ b/packages/ui/src/badge/ProBadge.tsx @@ -47,7 +47,6 @@ class ProBadgeComponent extends Component { inverted && classes.invertedBadge, badgeClasses, ])} - data-type="franz-badge" > ({ @@ -54,6 +58,9 @@ const styles = theme => ({ marginBottom: '25px', marginLeft: theme.workspaces.drawer.padding, }, + headlineProBadge: { + marginRight: 15, + }, workspacesSettingsButton: { float: 'right', marginRight: theme.workspaces.drawer.padding, @@ -134,6 +141,14 @@ class WorkspaceDrawer extends Component { return (

+ {workspaceStore.isPremiumUpgradeRequired && ( + + + + )} {intl.formatMessage(messages.headline)} ))} +
{ + workspaceActions.openWorkspaceSettings(); + gaEvent(GA_CATEGORY_WORKSPACES, 'add', 'drawerAddLabel'); + }} + > + + + {intl.formatMessage(messages.addNewWorkspaceLabel)} + +

)} -
{ - workspaceActions.openWorkspaceSettings(); - gaEvent(GA_CATEGORY_WORKSPACES, 'add', 'drawerAddLabel'); - }} - > - - - {intl.formatMessage(messages.addNewWorkspaceLabel)} - -
); diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 791c4dd53..11a23805c 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -3412,6 +3412,19 @@ "column": 24, "line": 40 } + }, + { + "defaultMessage": "!!!Premium feature", + "end": { + "column": 3, + "line": 47 + }, + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "id": "workspaceDrawer.proFeatureBadge", + "start": { + "column": 23, + "line": 44 + } } ], "path": "src/features/workspaces/components/WorkspaceDrawer.json" diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 6591af2e2..a2f460f67 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -311,6 +311,7 @@ "workspaceDrawer.headline": "Workspaces", "workspaceDrawer.item.noServicesAddedYet": "No services added yet", "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace", + "workspaceDrawer.proFeatureBadge": "Premium feature", "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json index d347622d2..9f0935620 100644 --- a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json +++ b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json @@ -89,5 +89,18 @@ "line": 43, "column": 3 } + }, + { + "id": "workspaceDrawer.proFeatureBadge", + "defaultMessage": "!!!Premium feature", + "file": "src/features/workspaces/components/WorkspaceDrawer.js", + "start": { + "line": 44, + "column": 23 + }, + "end": { + "line": 47, + "column": 3 + } } ] \ No newline at end of file -- cgit v1.2.3-70-g09d2 From eaf4aff646eed56e65c8dd8e70143ab5634ad4b4 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Thu, 11 Apr 2019 16:44:16 +0200 Subject: WIP: announcement feature and workspace fixes --- packages/theme/src/themes/dark/index.ts | 19 -- packages/theme/src/themes/default/index.ts | 20 -- src/features/announcements/actions.js | 4 +- src/features/announcements/api.js | 18 +- .../announcements/components/AnnouncementScreen.js | 152 ++++++++++++--- src/features/announcements/store.js | 151 +++++++++------ src/features/utils/FeatureStore.js | 29 ++- src/features/workspaces/store.js | 18 +- src/i18n/locales/defaultMessages.json | 6 +- src/i18n/locales/en-US.json | 6 +- .../src/features/announcements/Component.json | 4 +- .../components/AnnouncementScreen.json | 8 +- src/i18n/messages/src/lib/Menu.json | 214 ++++++++++----------- src/lib/Menu.js | 15 +- src/stores/index.js | 4 + 15 files changed, 405 insertions(+), 263 deletions(-) (limited to 'packages') diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index fd04b106c..b17dc8965 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -111,22 +111,3 @@ export const workspaces = merge({}, defaultStyles.workspaces, { }, }, }); - -// // Workspace settings -// export const workspaceSettings = merge({}, defaultStyles.workspaceSettings, { -// listItemBorderColor: legacyStyles.darkThemeGrayDarker, -// listItemHoverBgColor: legacyStyles.darkThemeGrayDarker, -// }); -// -// // Workspace Drawer -// export const workspaceDrawerBackground = color(colorBackground).lighten(0.3).hex(); -// export const workspaceDrawerAddButtonColor = legacyStyles.darkThemeGrayLighter; -// export const workspaceDrawerAddButtonHoverColor = legacyStyles.darkThemeGraySmoke; -// export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).lighten(0.2).hex(); -// export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).lighten(0.2).hex(); -// export const workspaceDrawerItemActiveBackground = defaultStyles.brandPrimary; -// export const workspaceDrawerItemNameColor = colorText; -// export const workspaceDrawerItemNameActiveColor = 'white'; -// export const workspaceDrawerServicesColor = color(colorText).darken(0.5).hex(); -// export const workspaceDrawerServicesActiveColor = color(defaultStyles.brandPrimary).lighten(0.5).hex(); -// diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index d0493b82f..46d29f593 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -200,23 +200,3 @@ export const workspaces = { spinnerColor: 'white', }, }; - -// export const workspaceSettings = { -// listItemHeight: 57, -// listItemBorderColor: legacyStyles.themeGrayLightest, -// listItemHoverBgColor: legacyStyles.themeGrayLightest, -// }; -// -// // Workspace Drawer -// export const workspaceDrawerWidth = 300; -// export const workspaceDrawerPadding = 20; -// export const workspaceDrawerBackground = color(colorBackground).lighten(0.1).hex(); -// export const workspaceDrawerAddButtonColor = legacyStyles.themeGrayLight; -// export const workspaceDrawerAddButtonHoverColor = color(legacyStyles.themeGrayLight).lighten(0.1).hex(); -// export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).darken(0.01).hex(); -// export const workspaceDrawerItemActiveBackground = legacyStyles.themeGrayLightest; -// export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).darken(0.05).hex(); -// export const workspaceDrawerItemNameColor = colorText; -// export const workspaceDrawerItemNameActiveColor = colorText; -// export const workspaceDrawerServicesColor = color(colorText).lighten(1.5).hex(); -// export const workspaceDrawerServicesActiveColor = workspaceDrawerServicesColor; diff --git a/src/features/announcements/actions.js b/src/features/announcements/actions.js index 68b262ded..bab496314 100644 --- a/src/features/announcements/actions.js +++ b/src/features/announcements/actions.js @@ -2,7 +2,9 @@ import PropTypes from 'prop-types'; import { createActionsFromDefinitions } from '../../actions/lib/actions'; export const announcementActions = createActionsFromDefinitions({ - show: {}, + show: { + targetVersion: PropTypes.string, + }, }, PropTypes.checkPropTypes); export default announcementActions; diff --git a/src/features/announcements/api.js b/src/features/announcements/api.js index 09fcb8235..a581bd8de 100644 --- a/src/features/announcements/api.js +++ b/src/features/announcements/api.js @@ -1,5 +1,6 @@ import { remote } from 'electron'; import Request from '../../stores/lib/Request'; +import { API, API_VERSION } from '../../environment'; const debug = require('debug')('Franz:feature:announcements:api'); @@ -9,15 +10,24 @@ export const announcementsApi = { return Promise.resolve(remote.app.getVersion()); }, - async getAnnouncementForVersion(version) { - debug('fetching release announcement from Github'); + async getChangelog(version) { + debug('fetching release changelog from Github'); const url = `https://api.github.com/repos/meetfranz/franz/releases/tags/v${version}`; const request = await window.fetch(url, { method: 'GET' }); - if (!request.ok) throw request; + if (!request.ok) return null; const data = await request.json(); return data.body; }, + + async getAnnouncement(version) { + debug('fetching release announcement from api'); + const url = `${API}/${API_VERSION}/announcements/${version}`; + const response = await window.fetch(url, { method: 'GET' }); + if (!response.ok) return null; + return response.json(); + }, }; export const getCurrentVersionRequest = new Request(announcementsApi, 'getCurrentVersion'); -export const getAnnouncementRequest = new Request(announcementsApi, 'getAnnouncementForVersion'); +export const getChangelogRequest = new Request(announcementsApi, 'getChangelog'); +export const getAnnouncementRequest = new Request(announcementsApi, 'getAnnouncement'); diff --git a/src/features/announcements/components/AnnouncementScreen.js b/src/features/announcements/components/AnnouncementScreen.js index 5b3e7aeaa..2d5efc396 100644 --- a/src/features/announcements/components/AnnouncementScreen.js +++ b/src/features/announcements/components/AnnouncementScreen.js @@ -4,27 +4,29 @@ import PropTypes from 'prop-types'; import { inject, observer } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; import injectSheet from 'react-jss'; -import { themeSidebarWidth } from '../../../../packages/theme/lib/themes/legacy'; +import { Button } from '@meetfranz/forms'; + import { announcementsStore } from '../index'; +import UIStore from '../../../stores/UIStore'; const messages = defineMessages({ headline: { - id: 'feature.announcements.headline', - defaultMessage: '!!!What\'s new in Franz {version}?', + id: 'feature.announcements.changelog.headline', + defaultMessage: '!!!Changes in Franz {version}', }, }); +const smallScreen = '1000px'; + const styles = theme => ({ container: { background: theme.colorBackground, position: 'absolute', top: 0, zIndex: 140, - width: `calc(100% - ${themeSidebarWidth})`, - display: 'flex', - 'flex-direction': 'column', - 'align-items': 'center', - 'justify-content': 'center', + width: '100%', + height: '100%', + overflowY: 'auto', }, headline: { color: theme.colorHeadline, @@ -33,7 +35,76 @@ const styles = theme => ({ 'text-align': 'center', 'line-height': '1.3em', }, - body: { + announcement: { + height: '100vh', + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + }, + main: { + flexGrow: 1, + '& h1': { + marginTop: 40, + fontSize: 50, + color: theme.styleTypes.primary.accent, + textAlign: 'center', + [`@media(min-width: ${smallScreen})`]: { + marginTop: 75, + }, + }, + '& h2': { + fontSize: 24, + fontWeight: 300, + color: theme.colorText, + textAlign: 'center', + }, + }, + mainBody: { + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + width: 'calc(100% - 80px)', + height: 'auto', + margin: '0 auto', + [`@media(min-width: ${smallScreen})`]: { + flexDirection: 'row', + justifyContent: 'center', + }, + }, + mainImage: { + minWidth: 250, + maxWidth: 400, + margin: '0 auto', + marginBottom: 40, + '& img': { + width: '100%', + }, + [`@media(min-width: ${smallScreen})`]: { + margin: 0, + }, + }, + mainText: { + height: 'auto', + maxWidth: 600, + textAlign: 'center', + '& p': { + lineHeight: '1.5em', + }, + [`@media(min-width: ${smallScreen})`]: { + textAlign: 'left', + }, + }, + mainCtaButton: { + textAlign: 'center', + marginTop: 40, + [`@media(min-width: ${smallScreen})`]: { + textAlign: 'left', + }, + }, + spotlight: { + height: 'auto', + }, + changelog: { '& h3': { fontSize: '24px', margin: '1.5em 0 1em 0', @@ -45,10 +116,13 @@ const styles = theme => ({ }); -@inject('actions') @injectSheet(styles) @observer +@inject('stores', 'actions') @injectSheet(styles) @observer class AnnouncementScreen extends Component { static propTypes = { classes: PropTypes.object.isRequired, + stores: PropTypes.shape({ + ui: PropTypes.instanceOf(UIStore).isRequired, + }).isRequired, }; static contextTypes = { @@ -56,21 +130,55 @@ class AnnouncementScreen extends Component { }; render() { - const { classes } = this.props; + const { classes, stores } = this.props; const { intl } = this.context; + const { changelog, announcement } = announcementsStore; + const themeImage = stores.ui.isDarkThemeActive ? 'dark' : 'light'; return (
-

- {intl.formatMessage(messages.headline, { - version: announcementsStore.currentVersion, - })} -

-
+
+
+

{announcement.main.headline}

+

{announcement.main.subHeadline}

+
+
+ +
+
+

+

+
+
+
+
+ {announcement.spotlight && ( +
+

{announcement.spotlight.title}

+
+ )} +
+ {changelog && ( +
+

+ {intl.formatMessage(messages.headline, { + version: announcementsStore.currentVersion, + })} +

+
+
+ )}
); } diff --git a/src/features/announcements/store.js b/src/features/announcements/store.js index c59700926..d4fb0a52c 100644 --- a/src/features/announcements/store.js +++ b/src/features/announcements/store.js @@ -1,96 +1,93 @@ -import { action, observable, reaction } from 'mobx'; +import { + action, + computed, + observable, + reaction, +} from 'mobx'; import semver from 'semver'; +import localStorage from 'mobx-localstorage'; + import { FeatureStore } from '../utils/FeatureStore'; -import { getAnnouncementRequest, getCurrentVersionRequest } from './api'; +import { getAnnouncementRequest, getChangelogRequest, getCurrentVersionRequest } from './api'; +import { announcementActions } from './actions'; + +const LOCAL_STORAGE_KEY = 'announcements'; const debug = require('debug')('Franz:feature:announcements:store'); export class AnnouncementsStore extends FeatureStore { - - @observable announcement = null; - - @observable currentVersion = null; - - @observable lastUsedVersion = null; + @observable targetVersion = null; @observable isAnnouncementVisible = false; @observable isFeatureActive = false; - async start(stores, actions) { - debug('AnnouncementsStore::start'); - this.stores = stores; - this.actions = actions; - await this.fetchLastUsedVersion(); - await this.fetchCurrentVersion(); - await this.fetchReleaseAnnouncement(); - this.showAnnouncementIfNotSeenYet(); - - this.actions.announcements.show.listen(this._showAnnouncement.bind(this)); - this.isFeatureActive = true; + @computed get changelog() { + return getChangelogRequest.result; } - stop() { - debug('AnnouncementsStore::stop'); - this.isFeatureActive = false; - this.isAnnouncementVisible = false; + @computed get announcement() { + return getAnnouncementRequest.result; } - // ====== PUBLIC ====== - - async fetchLastUsedVersion() { - debug('getting last used version from local storage'); - const lastUsedVersion = window.localStorage.getItem('lastUsedVersion'); - this._setLastUsedVersion(lastUsedVersion == null ? '0.0.0' : lastUsedVersion); + @computed get settings() { + return localStorage.getItem(LOCAL_STORAGE_KEY) || {}; } - async fetchCurrentVersion() { - debug('getting current version from api'); - const version = await getCurrentVersionRequest.execute(); - this._setCurrentVersion(version); + @computed get lastSeenAnnouncementVersion() { + return this.settings.lastSeenAnnouncementVersion || null; } - async fetchReleaseAnnouncement() { - debug('getting release announcement from api'); - try { - const announcement = await getAnnouncementRequest.execute(this.currentVersion); - this._setAnnouncement(announcement); - } catch (error) { - this._setAnnouncement(null); - } + @computed get currentVersion() { + return getCurrentVersionRequest.result; } - showAnnouncementIfNotSeenYet() { - const { announcement, currentVersion, lastUsedVersion } = this; - if (announcement && semver.gt(currentVersion, lastUsedVersion)) { - debug(`${currentVersion} < ${lastUsedVersion}: announcement is shown`); - this._showAnnouncement(); - } else { - debug(`${currentVersion} >= ${lastUsedVersion}: announcement is hidden`); - this._hideAnnouncement(); - } + @computed get isNewUser() { + return this.stores.settings.stats.appStarts <= 1; } - // ====== PRIVATE ====== + async start(stores, actions) { + debug('AnnouncementsStore::start'); + this.stores = stores; + this.actions = actions; + getCurrentVersionRequest.execute(); - @action _setCurrentVersion(version) { - debug(`setting current version to ${version}`); - this.currentVersion = version; - } + this._registerActions([ + [announcementActions.show, this._showAnnouncement], + ]); - @action _setLastUsedVersion(version) { - debug(`setting last used version to ${version}`); - this.lastUsedVersion = version; + this._registerReactions([ + this._fetchAnnouncements, + this._showAnnouncementToUsersWhoUpdatedApp, + ]); + this.isFeatureActive = true; } - @action _setAnnouncement(announcement) { - debug(`setting announcement to ${announcement}`); - this.announcement = announcement; + stop() { + super.stop(); + debug('AnnouncementsStore::stop'); + this.isFeatureActive = false; + this.isAnnouncementVisible = false; } - @action _showAnnouncement() { + // ======= HELPERS ======= // + + _updateSettings = (changes) => { + localStorage.setItem(LOCAL_STORAGE_KEY, { + ...this.settings, + ...changes, + }); + }; + + // ======= ACTIONS ======= // + + @action _showAnnouncement = ({ targetVersion } = {}) => { + this.targetVersion = targetVersion || this.currentVersion; this.isAnnouncementVisible = true; this.actions.service.blurActive(); + this._updateSettings({ + lastSeenAnnouncementVersion: this.currentVersion, + }); const dispose = reaction( () => this.stores.services.active, () => { @@ -98,9 +95,37 @@ export class AnnouncementsStore extends FeatureStore { dispose(); }, ); - } + }; @action _hideAnnouncement() { this.isAnnouncementVisible = false; } + + // ======= REACTIONS ======== + + _showAnnouncementToUsersWhoUpdatedApp = () => { + const { announcement, isNewUser } = this; + console.log(announcement, isNewUser); + // Check if there is an announcement and on't show announcements to new users + if (!announcement || isNewUser) return; + + this._showAnnouncement(); + + // Check if the user has already used current version (= has seen the announcement) + // const { currentVersion, lastSeenAnnouncementVersion } = this; + // if (semver.gt(currentVersion, lastSeenAnnouncementVersion)) { + // debug(`${currentVersion} < ${lastSeenAnnouncementVersion}: announcement is shown`); + // this._showAnnouncement(); + // } else { + // debug(`${currentVersion} >= ${lastSeenAnnouncementVersion}: announcement is hidden`); + // this._hideAnnouncement(); + // } + }; + + _fetchAnnouncements = () => { + const targetVersion = this.targetVersion || this.currentVersion; + if (!targetVersion) return; + getChangelogRequest.execute('5.0.1'); + getAnnouncementRequest.execute('5.1.0'); + } } diff --git a/src/features/utils/FeatureStore.js b/src/features/utils/FeatureStore.js index 66b66a104..48962561d 100644 --- a/src/features/utils/FeatureStore.js +++ b/src/features/utils/FeatureStore.js @@ -5,17 +5,38 @@ export class FeatureStore { _reactions = null; - _listenToActions(actions) { - if (this._actions) this._actions.forEach(a => a[0].off(a[1])); + _registerActions(actions) { this._actions = []; actions.forEach(a => this._actions.push(a)); + this._startListeningToActions(); + } + + _startListeningToActions() { + this._stopListeningToActions(); this._actions.forEach(a => a[0].listen(a[1])); } - _startReactions(reactions) { - if (this._reactions) this._reactions.forEach(r => r.stop()); + _stopListeningToActions() { + this._actions.forEach(a => a[0].off(a[1])); + } + + _registerReactions(reactions) { this._reactions = []; reactions.forEach(r => this._reactions.push(new Reaction(r))); + this._startReactions(); + } + + _startReactions() { + this._stopReactions(); this._reactions.forEach(r => r.start()); } + + _stopReactions() { + this._reactions.forEach(r => r.stop()); + } + + stop() { + this._stopListeningToActions(); + this._stopReactions(); + } } diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index ea601700e..4841a4e08 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -51,12 +51,16 @@ export default class WorkspacesStore extends FeatureStore { return getUserWorkspacesRequest.wasExecuted && this.workspaces.length > 0; } + @computed get isUserAllowedToUseFeature() { + return !this.isPremiumUpgradeRequired; + } + start(stores, actions) { debug('WorkspacesStore::start'); this.stores = stores; this.actions = actions; - this._listenToActions([ + this._registerActions([ [workspaceActions.edit, this._edit], [workspaceActions.create, this._create], [workspaceActions.delete, this._delete], @@ -67,7 +71,7 @@ export default class WorkspacesStore extends FeatureStore { [workspaceActions.openWorkspaceSettings, this._openWorkspaceSettings], ]); - this._startReactions([ + this._registerReactions([ this._setWorkspaceBeingEditedReaction, this._setActiveServiceOnWorkspaceSwitchReaction, this._setFeatureEnabledReaction, @@ -75,6 +79,7 @@ export default class WorkspacesStore extends FeatureStore { this._activateLastUsedWorkspaceReaction, this._openDrawerWithSettingsReaction, this._cleanupInvalidServiceReferences, + this._disableActionsForFreeUser, ]); getUserWorkspacesRequest.execute(); @@ -82,6 +87,7 @@ export default class WorkspacesStore extends FeatureStore { } stop() { + super.stop(); debug('WorkspacesStore::stop'); this.isFeatureActive = false; this.activeWorkspace = null; @@ -273,4 +279,12 @@ export default class WorkspacesStore extends FeatureStore { getUserWorkspacesRequest.execute(); } }; + + _disableActionsForFreeUser = () => { + if (!this.isUserAllowedToUseFeature) { + this._stopListeningToActions(); + } else { + this._startListeningToActions(); + } + } } diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 1dd31324e..5ad7a8bd8 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -3088,7 +3088,7 @@ "line": 14 }, "file": "src/features/announcements/Component.js", - "id": "feature.announcements.headline", + "id": "feature.announcements.changelog.headline", "start": { "column": 12, "line": 11 @@ -3106,7 +3106,7 @@ "line": 14 }, "file": "src/features/announcements/components/AnnouncementScreen.js", - "id": "feature.announcements.headline", + "id": "feature.announcements.changelog.headline", "start": { "column": 12, "line": 11 @@ -4470,4 +4470,4 @@ ], "path": "src/lib/Menu.json" } -] \ No newline at end of file +] diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 13775d758..958b6fb6a 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -1,7 +1,7 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", - "feature.announcements.headline": "What's new in Franz {version}?", + "feature.announcements.changelog.headline": "Changes in Franz {version}", "feature.delayApp.action": "Get a Franz Supporter License", "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting", "feature.delayApp.text": "Franz will continue in {seconds} seconds.", @@ -44,7 +44,7 @@ "login.submit.label": "Sign in", "login.tokenExpired": "Your session expired, please login again.", "menu.app.about": "About Franz", - "menu.app.announcement": "What's new in Franz?", + "menu.app.announcement": "What's new?", "menu.app.hide": "Hide", "menu.app.hideOthers": "Hide Others", "menu.app.quit": "Quit", @@ -319,4 +319,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/messages/src/features/announcements/Component.json b/src/i18n/messages/src/features/announcements/Component.json index 18e1b84c5..c31c35fc7 100644 --- a/src/i18n/messages/src/features/announcements/Component.json +++ b/src/i18n/messages/src/features/announcements/Component.json @@ -1,6 +1,6 @@ [ { - "id": "feature.announcements.headline", + "id": "feature.announcements.changelog.headline", "defaultMessage": "!!!What's new in Franz {version}?", "file": "src/features/announcements/Component.js", "start": { @@ -12,4 +12,4 @@ "column": 3 } } -] \ No newline at end of file +] diff --git a/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json b/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json index 225670ee2..874c9dd9d 100644 --- a/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json +++ b/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json @@ -1,14 +1,14 @@ [ { - "id": "feature.announcements.headline", - "defaultMessage": "!!!What's new in Franz {version}?", + "id": "feature.announcements.changelog.headline", + "defaultMessage": "!!!Changes in Franz {version}", "file": "src/features/announcements/components/AnnouncementScreen.js", "start": { - "line": 11, + "line": 13, "column": 12 }, "end": { - "line": 14, + "line": 16, "column": 3 } } diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json index f4cd35582..a2ce34cd4 100644 --- a/src/i18n/messages/src/lib/Menu.json +++ b/src/i18n/messages/src/lib/Menu.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Edit", "file": "src/lib/Menu.js", "start": { - "line": 13, + "line": 14, "column": 8 }, "end": { - "line": 16, + "line": 17, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Undo", "file": "src/lib/Menu.js", "start": { - "line": 17, + "line": 18, "column": 8 }, "end": { - "line": 20, + "line": 21, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Redo", "file": "src/lib/Menu.js", "start": { - "line": 21, + "line": 22, "column": 8 }, "end": { - "line": 24, + "line": 25, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!Cut", "file": "src/lib/Menu.js", "start": { - "line": 25, + "line": 26, "column": 7 }, "end": { - "line": 28, + "line": 29, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Copy", "file": "src/lib/Menu.js", "start": { - "line": 29, + "line": 30, "column": 8 }, "end": { - "line": 32, + "line": 33, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Paste", "file": "src/lib/Menu.js", "start": { - "line": 33, + "line": 34, "column": 9 }, "end": { - "line": 36, + "line": 37, "column": 3 } }, @@ -82,11 +82,11 @@ "defaultMessage": "!!!Paste And Match Style", "file": "src/lib/Menu.js", "start": { - "line": 37, + "line": 38, "column": 22 }, "end": { - "line": 40, + "line": 41, "column": 3 } }, @@ -95,11 +95,11 @@ "defaultMessage": "!!!Delete", "file": "src/lib/Menu.js", "start": { - "line": 41, + "line": 42, "column": 10 }, "end": { - "line": 44, + "line": 45, "column": 3 } }, @@ -108,11 +108,11 @@ "defaultMessage": "!!!Select All", "file": "src/lib/Menu.js", "start": { - "line": 45, + "line": 46, "column": 13 }, "end": { - "line": 48, + "line": 49, "column": 3 } }, @@ -121,11 +121,11 @@ "defaultMessage": "!!!Speech", "file": "src/lib/Menu.js", "start": { - "line": 49, + "line": 50, "column": 10 }, "end": { - "line": 52, + "line": 53, "column": 3 } }, @@ -134,11 +134,11 @@ "defaultMessage": "!!!Start Speaking", "file": "src/lib/Menu.js", "start": { - "line": 53, + "line": 54, "column": 17 }, "end": { - "line": 56, + "line": 57, "column": 3 } }, @@ -147,11 +147,11 @@ "defaultMessage": "!!!Stop Speaking", "file": "src/lib/Menu.js", "start": { - "line": 57, + "line": 58, "column": 16 }, "end": { - "line": 60, + "line": 61, "column": 3 } }, @@ -160,11 +160,11 @@ "defaultMessage": "!!!Start Dictation", "file": "src/lib/Menu.js", "start": { - "line": 61, + "line": 62, "column": 18 }, "end": { - "line": 64, + "line": 65, "column": 3 } }, @@ -173,11 +173,11 @@ "defaultMessage": "!!!Emoji & Symbols", "file": "src/lib/Menu.js", "start": { - "line": 65, + "line": 66, "column": 16 }, "end": { - "line": 68, + "line": 69, "column": 3 } }, @@ -186,11 +186,11 @@ "defaultMessage": "!!!Actual Size", "file": "src/lib/Menu.js", "start": { - "line": 69, + "line": 70, "column": 13 }, "end": { - "line": 72, + "line": 73, "column": 3 } }, @@ -199,11 +199,11 @@ "defaultMessage": "!!!Zoom In", "file": "src/lib/Menu.js", "start": { - "line": 73, + "line": 74, "column": 10 }, "end": { - "line": 76, + "line": 77, "column": 3 } }, @@ -212,11 +212,11 @@ "defaultMessage": "!!!Zoom Out", "file": "src/lib/Menu.js", "start": { - "line": 77, + "line": 78, "column": 11 }, "end": { - "line": 80, + "line": 81, "column": 3 } }, @@ -225,11 +225,11 @@ "defaultMessage": "!!!Enter Full Screen", "file": "src/lib/Menu.js", "start": { - "line": 81, + "line": 82, "column": 19 }, "end": { - "line": 84, + "line": 85, "column": 3 } }, @@ -238,11 +238,11 @@ "defaultMessage": "!!!Exit Full Screen", "file": "src/lib/Menu.js", "start": { - "line": 85, + "line": 86, "column": 18 }, "end": { - "line": 88, + "line": 89, "column": 3 } }, @@ -251,11 +251,11 @@ "defaultMessage": "!!!Toggle Full Screen", "file": "src/lib/Menu.js", "start": { - "line": 89, + "line": 90, "column": 20 }, "end": { - "line": 92, + "line": 93, "column": 3 } }, @@ -264,11 +264,11 @@ "defaultMessage": "!!!Toggle Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 93, + "line": 94, "column": 18 }, "end": { - "line": 96, + "line": 97, "column": 3 } }, @@ -277,11 +277,11 @@ "defaultMessage": "!!!Toggle Service Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 97, + "line": 98, "column": 25 }, "end": { - "line": 100, + "line": 101, "column": 3 } }, @@ -290,11 +290,11 @@ "defaultMessage": "!!!Reload Service", "file": "src/lib/Menu.js", "start": { - "line": 101, + "line": 102, "column": 17 }, "end": { - "line": 104, + "line": 105, "column": 3 } }, @@ -303,11 +303,11 @@ "defaultMessage": "!!!Reload Franz", "file": "src/lib/Menu.js", "start": { - "line": 105, + "line": 106, "column": 15 }, "end": { - "line": 108, + "line": 109, "column": 3 } }, @@ -316,11 +316,11 @@ "defaultMessage": "!!!Minimize", "file": "src/lib/Menu.js", "start": { - "line": 109, + "line": 110, "column": 12 }, "end": { - "line": 112, + "line": 113, "column": 3 } }, @@ -329,11 +329,11 @@ "defaultMessage": "!!!Close", "file": "src/lib/Menu.js", "start": { - "line": 113, + "line": 114, "column": 9 }, "end": { - "line": 116, + "line": 117, "column": 3 } }, @@ -342,11 +342,11 @@ "defaultMessage": "!!!Learn More", "file": "src/lib/Menu.js", "start": { - "line": 117, + "line": 118, "column": 13 }, "end": { - "line": 120, + "line": 121, "column": 3 } }, @@ -355,11 +355,11 @@ "defaultMessage": "!!!Changelog", "file": "src/lib/Menu.js", "start": { - "line": 121, + "line": 122, "column": 13 }, "end": { - "line": 124, + "line": 125, "column": 3 } }, @@ -368,11 +368,11 @@ "defaultMessage": "!!!Support", "file": "src/lib/Menu.js", "start": { - "line": 125, + "line": 126, "column": 11 }, "end": { - "line": 128, + "line": 129, "column": 3 } }, @@ -381,11 +381,11 @@ "defaultMessage": "!!!Terms of Service", "file": "src/lib/Menu.js", "start": { - "line": 129, + "line": 130, "column": 7 }, "end": { - "line": 132, + "line": 133, "column": 3 } }, @@ -394,11 +394,11 @@ "defaultMessage": "!!!Privacy Statement", "file": "src/lib/Menu.js", "start": { - "line": 133, + "line": 134, "column": 11 }, "end": { - "line": 136, + "line": 137, "column": 3 } }, @@ -407,11 +407,11 @@ "defaultMessage": "!!!File", "file": "src/lib/Menu.js", "start": { - "line": 137, + "line": 138, "column": 8 }, "end": { - "line": 140, + "line": 141, "column": 3 } }, @@ -420,11 +420,11 @@ "defaultMessage": "!!!View", "file": "src/lib/Menu.js", "start": { - "line": 141, + "line": 142, "column": 8 }, "end": { - "line": 144, + "line": 145, "column": 3 } }, @@ -433,11 +433,11 @@ "defaultMessage": "!!!Services", "file": "src/lib/Menu.js", "start": { - "line": 145, + "line": 146, "column": 12 }, "end": { - "line": 148, + "line": 149, "column": 3 } }, @@ -446,11 +446,11 @@ "defaultMessage": "!!!Window", "file": "src/lib/Menu.js", "start": { - "line": 149, + "line": 150, "column": 10 }, "end": { - "line": 152, + "line": 153, "column": 3 } }, @@ -459,11 +459,11 @@ "defaultMessage": "!!!Help", "file": "src/lib/Menu.js", "start": { - "line": 153, + "line": 154, "column": 8 }, "end": { - "line": 156, + "line": 157, "column": 3 } }, @@ -472,24 +472,24 @@ "defaultMessage": "!!!About Franz", "file": "src/lib/Menu.js", "start": { - "line": 157, + "line": 158, "column": 9 }, "end": { - "line": 160, + "line": 161, "column": 3 } }, { "id": "menu.app.announcement", - "defaultMessage": "!!!What's new in Franz?", + "defaultMessage": "!!!What's new?", "file": "src/lib/Menu.js", "start": { - "line": 161, + "line": 162, "column": 16 }, "end": { - "line": 164, + "line": 165, "column": 3 } }, @@ -498,11 +498,11 @@ "defaultMessage": "!!!Settings", "file": "src/lib/Menu.js", "start": { - "line": 165, + "line": 166, "column": 12 }, "end": { - "line": 168, + "line": 169, "column": 3 } }, @@ -511,11 +511,11 @@ "defaultMessage": "!!!Hide", "file": "src/lib/Menu.js", "start": { - "line": 169, + "line": 170, "column": 8 }, "end": { - "line": 172, + "line": 173, "column": 3 } }, @@ -524,11 +524,11 @@ "defaultMessage": "!!!Hide Others", "file": "src/lib/Menu.js", "start": { - "line": 173, + "line": 174, "column": 14 }, "end": { - "line": 176, + "line": 177, "column": 3 } }, @@ -537,11 +537,11 @@ "defaultMessage": "!!!Unhide", "file": "src/lib/Menu.js", "start": { - "line": 177, + "line": 178, "column": 10 }, "end": { - "line": 180, + "line": 181, "column": 3 } }, @@ -550,11 +550,11 @@ "defaultMessage": "!!!Quit", "file": "src/lib/Menu.js", "start": { - "line": 181, + "line": 182, "column": 8 }, "end": { - "line": 184, + "line": 185, "column": 3 } }, @@ -563,11 +563,11 @@ "defaultMessage": "!!!Add New Service...", "file": "src/lib/Menu.js", "start": { - "line": 185, + "line": 186, "column": 17 }, "end": { - "line": 188, + "line": 189, "column": 3 } }, @@ -576,11 +576,11 @@ "defaultMessage": "!!!Add New Workspace...", "file": "src/lib/Menu.js", "start": { - "line": 189, + "line": 190, "column": 19 }, "end": { - "line": 192, + "line": 193, "column": 3 } }, @@ -589,11 +589,11 @@ "defaultMessage": "!!!Open workspace drawer", "file": "src/lib/Menu.js", "start": { - "line": 193, + "line": 194, "column": 23 }, "end": { - "line": 196, + "line": 197, "column": 3 } }, @@ -602,11 +602,11 @@ "defaultMessage": "!!!Close workspace drawer", "file": "src/lib/Menu.js", "start": { - "line": 197, + "line": 198, "column": 24 }, "end": { - "line": 200, + "line": 201, "column": 3 } }, @@ -615,11 +615,11 @@ "defaultMessage": "!!!Activate next service...", "file": "src/lib/Menu.js", "start": { - "line": 201, + "line": 202, "column": 23 }, "end": { - "line": 204, + "line": 205, "column": 3 } }, @@ -628,11 +628,11 @@ "defaultMessage": "!!!Activate previous service...", "file": "src/lib/Menu.js", "start": { - "line": 205, + "line": 206, "column": 27 }, "end": { - "line": 208, + "line": 209, "column": 3 } }, @@ -641,11 +641,11 @@ "defaultMessage": "!!!Disable notifications & audio", "file": "src/lib/Menu.js", "start": { - "line": 209, + "line": 210, "column": 11 }, "end": { - "line": 212, + "line": 213, "column": 3 } }, @@ -654,11 +654,11 @@ "defaultMessage": "!!!Enable notifications & audio", "file": "src/lib/Menu.js", "start": { - "line": 213, + "line": 214, "column": 13 }, "end": { - "line": 216, + "line": 217, "column": 3 } }, @@ -667,11 +667,11 @@ "defaultMessage": "!!!Workspaces", "file": "src/lib/Menu.js", "start": { - "line": 217, + "line": 218, "column": 14 }, "end": { - "line": 220, + "line": 221, "column": 3 } }, @@ -680,11 +680,11 @@ "defaultMessage": "!!!Default", "file": "src/lib/Menu.js", "start": { - "line": 221, + "line": 222, "column": 20 }, "end": { - "line": 224, + "line": 225, "column": 3 } } diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 46a347237..3df06e05a 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -6,6 +6,7 @@ import { isMac, ctrlKey, cmdKey } from '../environment'; import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../features/workspaces/index'; import { workspaceActions } from '../features/workspaces/actions'; import { gaEvent } from './analytics'; +import announcementActions from '../features/announcements/actions'; const { app, Menu, dialog } = remote; @@ -160,7 +161,7 @@ const menuItems = defineMessages({ }, announcement: { id: 'menu.app.announcement', - defaultMessage: '!!!What\'s new in Franz?', + defaultMessage: '!!!What\'s new?', }, settings: { id: 'menu.app.settings', @@ -352,8 +353,10 @@ const _templateFactory = intl => [ click() { shell.openExternal('https://meetfranz.com'); }, }, { - label: intl.formatMessage(menuItems.changelog), - click() { shell.openExternal('https://github.com/meetfranz/franz/blob/master/CHANGELOG.md'); }, + label: intl.formatMessage(menuItems.announcement), + click: () => { + announcementActions.show(); + }, }, { type: 'separator', @@ -621,12 +624,6 @@ export default class FranzMenu { label: intl.formatMessage(menuItems.about), role: 'about', }, - { - label: intl.formatMessage(menuItems.announcement), - click: () => { - this.actions.announcements.show(); - }, - }, { type: 'separator', }, diff --git a/src/stores/index.js b/src/stores/index.js index 96b844c95..1912418a2 100644 --- a/src/stores/index.js +++ b/src/stores/index.js @@ -10,6 +10,8 @@ import PaymentStore from './PaymentStore'; import NewsStore from './NewsStore'; import RequestStore from './RequestStore'; import GlobalErrorStore from './GlobalErrorStore'; +import { workspaceStore } from '../features/workspaces'; +import { announcementsStore } from '../features/announcements'; export default (api, actions, router) => { const stores = {}; @@ -27,6 +29,8 @@ export default (api, actions, router) => { news: new NewsStore(stores, api, actions), requests: new RequestStore(stores, api, actions), globalError: new GlobalErrorStore(stores, api, actions), + workspaces: workspaceStore, + announcements: announcementsStore, }); // Initialize all stores Object.keys(stores).forEach((name) => { -- cgit v1.2.3-70-g09d2 From 6a6f3fbc65077ac68d76382c4e76afc6cc6ed4b1 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 11 Apr 2019 21:25:07 +0200 Subject: Finalize styling --- package-lock.json | 230 ++++++++++----------- packages/theme/src/themes/dark/index.ts | 10 +- packages/theme/src/themes/default/index.ts | 8 + .../announcements/components/AnnouncementScreen.js | 124 +++++++++-- .../components/AnnouncementScreen.json | 4 +- 5 files changed, 244 insertions(+), 132 deletions(-) (limited to 'packages') diff --git a/package-lock.json b/package-lock.json index 600d4b7d7..33f7d69f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1442,7 +1442,7 @@ "@lerna/get-packed": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.7.0.tgz", - "integrity": "sha1-VJx3OPe+XjsUM+gu2c2pEjvNHtU=", + "integrity": "sha512-yuFtjsUZIHjeIvIYQ/QuytC+FQcHwo3peB+yGBST2uWCLUCR5rx6knoQcPzbxdFDCuUb5IFccFGd3B1fHFg3RQ==", "dev": true, "requires": { "fs-extra": "^7.0.0", @@ -1567,7 +1567,7 @@ "@lerna/npm-conf": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.7.0.tgz", - "integrity": "sha1-8QHU/fB8788RYbz688DxBbQgpFA=", + "integrity": "sha512-+WSMDfPKcKzMfqq283ydz9RRpOU6p9wfx0wy4hVSUY/6YUpsyuk8SShjcRtY8zTM5AOrxvFBuuV90H4YpZ5+Ng==", "dev": true, "requires": { "config-chain": "^1.1.11", @@ -1823,7 +1823,7 @@ "@lerna/run-parallel-batches": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@lerna/run-parallel-batches/-/run-parallel-batches-3.0.0.tgz", - "integrity": "sha1-RocEk0CEx0mR0xJNgGB4V9TfqEA=", + "integrity": "sha512-Mj1ravlXF7AkkewKd9YFq9BtVrsStNrvVLedD/b2wIVbNqcxp8lS68vehXVOzoL/VWNEDotvqCQtyDBilCodGw==", "dev": true, "requires": { "p-map": "^1.2.0", @@ -1945,7 +1945,7 @@ "requires": { "@mdi/js": "^3.3.92", "@mdi/react": "^1.1.0", - "@meetfranz/theme": "^1.0.7", + "@meetfranz/theme": "^1.0.13", "react-html-attributes": "^1.4.3", "react-loader": "^2.4.5" } @@ -1961,14 +1961,14 @@ "requires": { "@mdi/js": "^3.3.92", "@mdi/react": "^1.1.0", - "@meetfranz/theme": "^1.0.7", + "@meetfranz/theme": "^1.0.13", "react-loader": "^2.4.5" } }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { "call-me-maybe": "^1.0.1", @@ -1978,7 +1978,7 @@ "@nodelib/fs.stat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, "@octokit/endpoint": { @@ -2355,7 +2355,7 @@ "dependencies": { "mime-types": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=", "dev": true } @@ -2413,7 +2413,7 @@ "agent-base": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "dev": true, "requires": { "es6-promisify": "^5.0.0" @@ -2422,7 +2422,7 @@ "agentkeepalive": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", "dev": true, "requires": { "humanize-ms": "^1.2.1" @@ -2469,7 +2469,7 @@ }, "ansi-colors": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "requires": { @@ -2900,7 +2900,7 @@ }, "util": { "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -2935,7 +2935,7 @@ }, "async": { "version": "0.1.22", - "resolved": "http://registry.npmjs.org/async/-/async-0.1.22.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" }, "async-done": { @@ -3758,7 +3758,7 @@ "byte-size": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.4.tgz", - "integrity": "sha1-KdOBcJ9BquDYnGMfHIGuyIzUCyM=", + "integrity": "sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw==", "dev": true }, "bytes": { @@ -3770,7 +3770,7 @@ "cacache": { "version": "11.3.2", "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", "dev": true, "requires": { "bluebird": "^3.5.3", @@ -3792,7 +3792,7 @@ "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { "yallist": "^3.0.2" @@ -4489,7 +4489,7 @@ "config-chain": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha1-D96NCRIA616AjK8l/mGMAvSOTvo=", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", "dev": true, "requires": { "ini": "^1.3.4", @@ -4535,7 +4535,7 @@ "dependencies": { "debug": { "version": "1.0.4", - "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "dev": true, "requires": { @@ -4805,7 +4805,7 @@ "conventional-recommended-bump": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-4.0.4.tgz", - "integrity": "sha1-BVQFhGQdPadYyIY8CXiPyutYaHI=", + "integrity": "sha512-9mY5Yoblq+ZMqJpBzgS+RpSq+SUfP2miOR3H/NR9drGf08WCrY9B6HAGJZEm6+ThsVP917VHAahSOjM6k1vhPg==", "dev": true, "requires": { "concat-stream": "^1.6.0", @@ -4896,7 +4896,7 @@ "copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { "aproba": "^1.1.1", @@ -5477,7 +5477,7 @@ "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "diffie-hellman": { @@ -5494,7 +5494,7 @@ "dir-glob": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { "arrify": "^1.0.1", @@ -5579,7 +5579,7 @@ "dependencies": { "domelementtype": { "version": "1.1.3", - "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" } } @@ -5623,7 +5623,7 @@ }, "dotenv": { "version": "4.0.0", - "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", "dev": true }, @@ -5643,7 +5643,7 @@ }, "duplexer": { "version": "0.1.1", - "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, @@ -5977,7 +5977,7 @@ }, "readable-stream": { "version": "1.1.14", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { @@ -6507,7 +6507,7 @@ }, "debug": { "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -6516,7 +6516,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true }, @@ -6550,7 +6550,7 @@ "dependencies": { "debug": { "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -6559,7 +6559,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } @@ -6683,12 +6683,12 @@ "es6-promise": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha1-2m0NVpLvtGHggsFIF/4kJ9j10FQ=", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", "dev": true }, "es6-promisify": { "version": "5.0.0", - "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { @@ -6895,7 +6895,7 @@ }, "load-json-file": { "version": "2.0.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { @@ -7378,7 +7378,7 @@ }, "finalhandler": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "dev": true, "requires": { @@ -7706,7 +7706,7 @@ "figgy-pudding": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, "figures": { @@ -7764,7 +7764,7 @@ }, "finalhandler": { "version": "0.1.0", - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz", "integrity": "sha1-2gW7xPX0owyEzh2R88FUAHxOnao=", "dev": true, "requires": { @@ -7774,7 +7774,7 @@ "dependencies": { "debug": { "version": "1.0.4", - "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "dev": true, "requires": { @@ -7783,7 +7783,7 @@ }, "ms": { "version": "0.6.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", "dev": true } @@ -8386,7 +8386,7 @@ "genfun": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha1-ndlxCgaQClxKW/V6yl2k5S/nZTc=", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", "dev": true }, "get-caller-file": { @@ -8925,7 +8925,7 @@ }, "got": { "version": "6.7.1", - "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { @@ -9507,7 +9507,7 @@ }, "yargs": { "version": "3.32.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "dev": true, "requires": { @@ -9682,7 +9682,7 @@ }, "lodash": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", "dev": true }, @@ -9742,7 +9742,7 @@ }, "readable-stream": { "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { @@ -10323,7 +10323,7 @@ "http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", "dev": true }, "http-deceiver": { @@ -10334,7 +10334,7 @@ }, "http-errors": { "version": "1.6.3", - "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { @@ -10372,7 +10372,7 @@ "http-proxy-agent": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { "agent-base": "4", @@ -10382,7 +10382,7 @@ "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -10430,7 +10430,7 @@ "https-proxy-agent": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { "agent-base": "^4.1.0", @@ -10440,7 +10440,7 @@ "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -10449,7 +10449,7 @@ "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true } } @@ -10465,7 +10465,7 @@ }, "hunspell-asm": { "version": "1.0.2", - "resolved": "http://registry.npmjs.org/hunspell-asm/-/hunspell-asm-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/hunspell-asm/-/hunspell-asm-1.0.2.tgz", "integrity": "sha512-UTLBvc0yZiIcHl9qrgxnFTZbX3zF4CprzEY+u+N0iXlUKZnUJRIgvgppTdgiQTsucm5b0aN/rHsgXz2q/0kBRA==", "requires": { "emscripten-wasm-loader": "^1.0.0", @@ -10543,7 +10543,7 @@ "ignore-walk": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha1-qD5i59JyrA47VRqqgoMaGbafgvg=", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "requires": { "minimatch": "^3.0.4" @@ -10585,7 +10585,7 @@ "import-local": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w=", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", "dev": true, "requires": { "pkg-dir": "^2.0.0", @@ -10649,7 +10649,7 @@ "init-package-json": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha1-Rf/i9hCoyhNPK9HbVjeyNQcPbL4=", + "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", "dev": true, "requires": { "glob": "^7.1.1", @@ -10753,7 +10753,7 @@ "inversify": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.0.1.tgz", - "integrity": "sha1-UA1wmxQ0iWzloNWJFcSkIQ40+24=", + "integrity": "sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ==", "dev": true }, "invert-kv": { @@ -10782,7 +10782,7 @@ }, "is": { "version": "0.3.0", - "resolved": "http://registry.npmjs.org/is/-/is-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/is/-/is-0.3.0.tgz", "integrity": "sha1-qPcd/IpuKDcWJ/JskpCYxvTV1dc=", "dev": true }, @@ -11006,7 +11006,7 @@ }, "is-obj": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, @@ -11188,7 +11188,7 @@ }, "isemail": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" }, "isexe": { @@ -11219,7 +11219,7 @@ }, "joi": { "version": "6.10.1", - "resolved": "http://registry.npmjs.org/joi/-/joi-6.10.1.tgz", + "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { "hoek": "2.x.x", @@ -11626,7 +11626,7 @@ "libnpmaccess": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.1.tgz", - "integrity": "sha1-Wzqd5iHyk9QlGRqi53kQL4QWf6g=", + "integrity": "sha512-RlZ7PNarCBt+XbnP7R6PoVgOq9t+kou5rvhaInoNibhPO7eMlRfS0B8yjatgn2yaHIwWNyoJDolC/6Lc5L/IQA==", "dev": true, "requires": { "aproba": "^2.0.0", @@ -11638,7 +11638,7 @@ "aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha1-UlILiuW1aSFbNU78DKo/4eRaitw=", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true } } @@ -12084,7 +12084,7 @@ "make-fetch-happen": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha1-FBSXy4ePJDupMTbIPYq6EsIWwIM=", + "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -12180,7 +12180,7 @@ }, "media-typer": { "version": "0.3.0", - "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, @@ -12271,7 +12271,7 @@ }, "readable-stream": { "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { @@ -12302,7 +12302,7 @@ "merge2": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha1-fumdvWm7ZIFoklPwGEiKG5ArDtU=", + "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", "dev": true }, "methods": { @@ -12396,7 +12396,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, @@ -12430,7 +12430,7 @@ "mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -12468,7 +12468,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -12476,7 +12476,7 @@ "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } @@ -12648,7 +12648,7 @@ }, "multimatch": { "version": "2.1.0", - "resolved": "http://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { @@ -12786,7 +12786,7 @@ "node-fetch-npm": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", "dev": true, "requires": { "encoding": "^0.1.11", @@ -12822,7 +12822,7 @@ "dependencies": { "semver": { "version": "5.3.0", - "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true }, @@ -14000,7 +14000,7 @@ "p-map": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", "dev": true }, "p-map-series": { @@ -14173,7 +14173,7 @@ "dependencies": { "color-convert": { "version": "0.5.3", - "resolved": "http://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", "dev": true } @@ -14318,7 +14318,7 @@ }, "path-browserify": { "version": "0.0.0", - "resolved": "http://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, @@ -14597,7 +14597,7 @@ }, "pretty-hrtime": { "version": "1.0.3", - "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, @@ -14743,7 +14743,7 @@ "protoduck": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha1-A8NlnKGAB7aaUP2Cp+vMUWJhFR8=", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", "dev": true, "requires": { "genfun": "^5.0.0" @@ -15103,7 +15103,7 @@ }, "react-router": { "version": "3.2.1", - "resolved": "http://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz", "integrity": "sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg==", "requires": { "create-react-class": "^15.5.1", @@ -15218,7 +15218,7 @@ "read-package-json": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", - "integrity": "sha1-LoLr2fYTuqbS6+Oqcs7+P2jkH0o=", + "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", "dev": true, "requires": { "glob": "^7.1.1", @@ -15239,7 +15239,7 @@ "read-package-tree": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", - "integrity": "sha1-Yhixh9b6yCKJzkOHu7r47vU2rWM=", + "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", "dev": true, "requires": { "debuglog": "^1.0.1", @@ -15607,7 +15607,7 @@ }, "htmlparser2": { "version": "3.3.0", - "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", "dev": true, "requires": { @@ -15625,7 +15625,7 @@ }, "readable-stream": { "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { @@ -15637,7 +15637,7 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, @@ -16260,7 +16260,7 @@ "dependencies": { "debug": { "version": "1.0.4", - "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "dev": true, "requires": { @@ -16275,7 +16275,7 @@ }, "ms": { "version": "0.6.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", "dev": true } @@ -16352,7 +16352,7 @@ }, "sha.js": { "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { @@ -16603,7 +16603,7 @@ "dependencies": { "debug": { "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -16612,7 +16612,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true }, @@ -16636,7 +16636,7 @@ "dependencies": { "debug": { "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -16645,7 +16645,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } @@ -16672,7 +16672,7 @@ "dependencies": { "debug": { "version": "2.3.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -16681,7 +16681,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } @@ -16707,7 +16707,7 @@ }, "debug": { "version": "2.2.0", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "dev": true, "requires": { @@ -16722,7 +16722,7 @@ }, "ms": { "version": "0.7.1", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", "dev": true } @@ -16798,7 +16798,7 @@ "socks-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha1-WTa/i3B6mTB5xvN9sgkYIb/6ZHM=", + "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", "dev": true, "requires": { "agent-base": "~4.2.0", @@ -17035,7 +17035,7 @@ "ssri": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "dev": true, "requires": { "figgy-pudding": "^3.5.1" @@ -17154,7 +17154,7 @@ "stream-each": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -17550,7 +17550,7 @@ }, "through": { "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, @@ -17822,7 +17822,7 @@ "tslint": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz", - "integrity": "sha1-R/LbopHtPVgHUtEJhm+2QHaPyjY=", + "integrity": "sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ==", "dev": true, "requires": { "babel-code-frame": "^6.22.0", @@ -17842,7 +17842,7 @@ "tslint-config-airbnb": { "version": "5.11.1", "resolved": "https://registry.npmjs.org/tslint-config-airbnb/-/tslint-config-airbnb-5.11.1.tgz", - "integrity": "sha1-UaJ/u4vyTBRNBkonSnHaR+fs5hc=", + "integrity": "sha512-hkaittm2607vVMe8eotANGN1CimD5tor7uoY3ypg2VTtEcDB/KGWYbJOz58t8LI4cWSyWtgqYQ5F0HwKxxhlkQ==", "dev": true, "requires": { "tslint-consistent-codestyle": "^1.14.1", @@ -17864,7 +17864,7 @@ "tslint-eslint-rules": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha1-5IjMkYG/GT/lzXv8ohOnaV8XN7U=", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", "dev": true, "requires": { "doctrine": "0.7.2", @@ -17874,7 +17874,7 @@ "dependencies": { "doctrine": { "version": "0.7.2", - "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", "dev": true, "requires": { @@ -17897,7 +17897,7 @@ "tslib": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha1-43qG/ajLuvI6BX9HPJ9Nxk5fwug=", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", "dev": true }, "tsutils": { @@ -17914,7 +17914,7 @@ "tslint-microsoft-contrib": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz", - "integrity": "sha1-pihoOfgA4lkdBB6igAx3SHhErYE=", + "integrity": "sha512-PDYjvpo0gN9IfMULwKk0KpVOPMhU6cNoT9VwCOLeDl/QS8v8W2yspRpFFuUS7/c5EIH/n8ApMi8TxJAz1tfFUA==", "dev": true, "requires": { "tsutils": "^2.27.2 <2.29.0" @@ -17923,7 +17923,7 @@ "tsutils": { "version": "2.28.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", - "integrity": "sha1-a9ceFggo+dAZtvToRHQiKPhRaaE=", + "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", "dev": true, "requires": { "tslib": "^1.8.1" @@ -17934,7 +17934,7 @@ "tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha1-MrSIUBRnrL7dS4VJhnOggSrKC5k=", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { "tslib": "^1.8.1" @@ -17942,7 +17942,7 @@ }, "tty-browserify": { "version": "0.0.0", - "resolved": "http://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, @@ -17989,7 +17989,7 @@ "typescript": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.2.tgz", - "integrity": "sha1-/oEBxGqhI/g1NSPr3PVzDCrkk+U=", + "integrity": "sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg==", "dev": true }, "ua-parser-js": { @@ -18128,7 +18128,7 @@ "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { "unique-slug": "^2.0.0" @@ -18137,7 +18137,7 @@ "unique-slug": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -18582,7 +18582,7 @@ }, "vm-browserify": { "version": "0.0.4", - "resolved": "http://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", "dev": true, "requires": { @@ -18687,7 +18687,7 @@ "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha1-qFWYCx8LazWbodXZ+zmulB+qY60=", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", "dev": true }, "webpack": { @@ -19178,7 +19178,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { @@ -19286,7 +19286,7 @@ "write-pkg": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", - "integrity": "sha1-DheP6Xgg04mokovHlTXb5ows/yE=", + "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", "dev": true, "requires": { "sort-keys": "^2.0.0", @@ -19328,7 +19328,7 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true }, diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index b17dc8965..6796c7cbb 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -1,5 +1,5 @@ import color from 'color'; -import { merge, cloneDeep } from 'lodash'; +import { cloneDeep, merge } from 'lodash'; import * as defaultStyles from '../default'; import * as legacyStyles from '../legacy'; @@ -111,3 +111,11 @@ export const workspaces = merge({}, defaultStyles.workspaces, { }, }, }); + +// Announcements + +export const announcements = merge({}, defaultStyles.workspaces, { + spotlight: { + background: legacyStyles.darkThemeGrayDark, + }, +}); diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index 46d29f593..a85dcb366 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -1,6 +1,7 @@ import color from 'color'; import { cloneDeep } from 'lodash'; +import { theme } from '../..'; import * as legacyStyles from '../legacy'; export interface IStyleTypes { @@ -200,3 +201,10 @@ export const workspaces = { spinnerColor: 'white', }, }; + +// Announcements +export const announcements = { + spotlight: { + background: legacyStyles.themeGrayLightest, + }, +}; diff --git a/src/features/announcements/components/AnnouncementScreen.js b/src/features/announcements/components/AnnouncementScreen.js index 2682b7890..e0c65c11f 100644 --- a/src/features/announcements/components/AnnouncementScreen.js +++ b/src/features/announcements/components/AnnouncementScreen.js @@ -8,6 +8,13 @@ import { Button } from '@meetfranz/forms'; import { announcementsStore } from '../index'; import UIStore from '../../../stores/UIStore'; +import { gaEvent } from '../../../lib/analytics'; + +const renderer = new marked.Renderer(); + +renderer.link = (href, title, text) => `${text}`; + +const markedOptions = { sanitize: true, renderer }; const messages = defineMessages({ headline: { @@ -31,32 +38,42 @@ const styles = theme => ({ headline: { color: theme.colorHeadline, margin: [25, 0, 40], - 'max-width': 500, + // 'max-width': 500, 'text-align': 'center', 'line-height': '1.3em', }, announcement: { - height: '100vh', - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', + height: 'auto', + + [`@media(min-width: ${smallScreen})`]: { + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + height: '100vh', + }, }, main: { + display: 'flex', + flexDirection: 'column', flexGrow: 1, + justifyContent: 'center', + '& h1': { - marginTop: 40, - fontSize: 50, + margin: [40, 0, 15], + fontSize: 70, color: theme.styleTypes.primary.accent, textAlign: 'center', + [`@media(min-width: ${smallScreen})`]: { - marginTop: 75, + marginTop: 0, }, }, '& h2': { - fontSize: 24, + fontSize: 30, fontWeight: 300, color: theme.colorText, textAlign: 'center', + marginBottom: 60, }, }, mainBody: { @@ -103,8 +120,55 @@ const styles = theme => ({ }, spotlight: { height: 'auto', + background: theme.announcements.spotlight.background, + padding: 60, + marginTop: 80, + [`@media(min-width: ${smallScreen})`]: { + marginTop: 0, + justifyContent: 'center', + alignItems: 'flex-start', + display: 'flex', + flexDirection: 'row', + }, + }, + spotlightTopicContainer: { + textAlign: 'center', + marginBottom: 20, + + [`@media(min-width: ${smallScreen})`]: { + marginBottom: 0, + minWidth: 250, + maxWidth: 400, + width: '100%', + textAlign: 'right', + paddingRight: 80, + }, + }, + spotlightContentContainer: { + textAlign: 'center', + [`@media(min-width: ${smallScreen})`]: { + height: 'auto', + maxWidth: 600, + textAlign: 'left', + }, + '& p': { + lineHeight: '1.5em', + }, + }, + spotlightTopic: { + fontSize: 20, + marginBottom: 5, + letterSpacing: 0, + fontWeight: 100, + }, + spotlightSubject: { + fontSize: 20, }, changelog: { + maxWidth: 650, + margin: [100, 'auto'], + height: 'auto', + '& h3': { fontSize: '24px', margin: '1.5em 0 1em 0', @@ -112,6 +176,9 @@ const styles = theme => ({ '& li': { marginBottom: '1em', }, + '& div': { + height: 'auto', + }, }, }); @@ -148,20 +215,49 @@ class AnnouncementScreen extends Component { />
-

-
{announcement.spotlight && (
-

{announcement.spotlight.title}

+
+

{announcement.spotlight.title}

+

{announcement.spotlight.subject}

+
+
+
+
+
+
)}
@@ -174,7 +270,7 @@ class AnnouncementScreen extends Component {
diff --git a/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json b/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json index 874c9dd9d..eb1b66916 100644 --- a/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json +++ b/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Changes in Franz {version}", "file": "src/features/announcements/components/AnnouncementScreen.js", "start": { - "line": 13, + "line": 20, "column": 12 }, "end": { - "line": 16, + "line": 23, "column": 3 } } -- cgit v1.2.3-70-g09d2 From 76bf7b840ea7d607a21b0294d10be01b26ad0607 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 12 Apr 2019 15:51:57 +0200 Subject: merge-in latest develop --- package-lock.json | 108 +- package.json | 4 +- packages/theme/src/themes/default/index.ts | 1 - .../settings/settings/EditSettingsForm.js | 8 + src/features/announcements/store.js | 14 +- src/features/utils/ActionBinding.js | 29 + src/features/utils/FeatureStore.js | 17 +- src/features/workspaces/store.js | 20 +- src/i18n/locales/defaultMessages.json | 4473 -------------------- src/i18n/locales/en-US.json | 3 +- src/i18n/messages/src/components/auth/Import.json | 54 - src/i18n/messages/src/components/auth/Invite.json | 93 - src/i18n/messages/src/components/auth/Login.json | 119 - .../messages/src/components/auth/Password.json | 93 - src/i18n/messages/src/components/auth/Pricing.json | 54 - src/i18n/messages/src/components/auth/Signup.json | 158 - src/i18n/messages/src/components/auth/Welcome.json | 28 - .../messages/src/components/layout/AppLayout.json | 80 - .../messages/src/components/layout/Sidebar.json | 80 - .../content/ErrorHandlers/WebviewErrorHandler.json | 67 - .../services/content/ServiceDisabled.json | 28 - .../src/components/services/content/Services.json | 28 - .../services/content/WebviewCrashHandler.json | 54 - .../src/components/services/tabs/TabItem.json | 119 - .../settings/account/AccountDashboard.json | 197 - .../settings/navigation/SettingsNavigation.json | 93 - .../settings/recipes/RecipesDashboard.json | 106 - .../settings/services/EditServiceForm.json | 288 -- .../components/settings/services/ServiceError.json | 54 - .../components/settings/services/ServiceItem.json | 41 - .../settings/services/ServicesDashboard.json | 119 - .../settings/settings/EditSettingsForm.json | 223 - .../src/components/settings/user/EditUserForm.json | 80 - .../components/subscription/SubscriptionForm.json | 171 - .../components/subscription/SubscriptionPopup.json | 28 - .../ui/PremiumFeatureContainer/index.json | 15 - .../src/components/ui/WebviewLoader/index.json | 15 - .../src/components/util/ErrorBoundary/index.json | 28 - .../src/containers/settings/EditServiceScreen.json | 197 - .../containers/settings/EditSettingsScreen.json | 158 - .../src/containers/settings/EditUserScreen.json | 119 - .../src/features/announcements/Component.json | 15 - .../components/AnnouncementScreen.json | 15 - .../messages/src/features/delayApp/Component.json | 41 - .../src/features/shareFranz/Component.json | 93 - .../workspaces/components/CreateWorkspaceForm.json | 28 - .../workspaces/components/EditWorkspaceForm.json | 67 - .../workspaces/components/WorkspaceDrawer.json | 106 - .../workspaces/components/WorkspaceDrawerItem.json | 28 - .../components/WorkspaceSwitchingIndicator.json | 15 - .../workspaces/components/WorkspacesDashboard.json | 106 - .../messages/src/helpers/validation-helpers.json | 67 - src/i18n/messages/src/i18n/globalMessages.json | 80 - src/i18n/messages/src/lib/Menu.json | 691 --- src/index.js | 14 + src/stores/UserStore.js | 1 + src/stores/lib/Reaction.js | 9 +- 57 files changed, 142 insertions(+), 8898 deletions(-) create mode 100644 src/features/utils/ActionBinding.js delete mode 100644 src/i18n/locales/defaultMessages.json delete mode 100644 src/i18n/messages/src/components/auth/Import.json delete mode 100644 src/i18n/messages/src/components/auth/Invite.json delete mode 100644 src/i18n/messages/src/components/auth/Login.json delete mode 100644 src/i18n/messages/src/components/auth/Password.json delete mode 100644 src/i18n/messages/src/components/auth/Pricing.json delete mode 100644 src/i18n/messages/src/components/auth/Signup.json delete mode 100644 src/i18n/messages/src/components/auth/Welcome.json delete mode 100644 src/i18n/messages/src/components/layout/AppLayout.json delete mode 100644 src/i18n/messages/src/components/layout/Sidebar.json delete mode 100644 src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json delete mode 100644 src/i18n/messages/src/components/services/content/ServiceDisabled.json delete mode 100644 src/i18n/messages/src/components/services/content/Services.json delete mode 100644 src/i18n/messages/src/components/services/content/WebviewCrashHandler.json delete mode 100644 src/i18n/messages/src/components/services/tabs/TabItem.json delete mode 100644 src/i18n/messages/src/components/settings/account/AccountDashboard.json delete mode 100644 src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json delete mode 100644 src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json delete mode 100644 src/i18n/messages/src/components/settings/services/EditServiceForm.json delete mode 100644 src/i18n/messages/src/components/settings/services/ServiceError.json delete mode 100644 src/i18n/messages/src/components/settings/services/ServiceItem.json delete mode 100644 src/i18n/messages/src/components/settings/services/ServicesDashboard.json delete mode 100644 src/i18n/messages/src/components/settings/settings/EditSettingsForm.json delete mode 100644 src/i18n/messages/src/components/settings/user/EditUserForm.json delete mode 100644 src/i18n/messages/src/components/subscription/SubscriptionForm.json delete mode 100644 src/i18n/messages/src/components/subscription/SubscriptionPopup.json delete mode 100644 src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json delete mode 100644 src/i18n/messages/src/components/ui/WebviewLoader/index.json delete mode 100644 src/i18n/messages/src/components/util/ErrorBoundary/index.json delete mode 100644 src/i18n/messages/src/containers/settings/EditServiceScreen.json delete mode 100644 src/i18n/messages/src/containers/settings/EditSettingsScreen.json delete mode 100644 src/i18n/messages/src/containers/settings/EditUserScreen.json delete mode 100644 src/i18n/messages/src/features/announcements/Component.json delete mode 100644 src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json delete mode 100644 src/i18n/messages/src/features/delayApp/Component.json delete mode 100644 src/i18n/messages/src/features/shareFranz/Component.json delete mode 100644 src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json delete mode 100644 src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json delete mode 100644 src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json delete mode 100644 src/i18n/messages/src/features/workspaces/components/WorkspaceDrawerItem.json delete mode 100644 src/i18n/messages/src/features/workspaces/components/WorkspaceSwitchingIndicator.json delete mode 100644 src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json delete mode 100644 src/i18n/messages/src/helpers/validation-helpers.json delete mode 100644 src/i18n/messages/src/i18n/globalMessages.json delete mode 100644 src/i18n/messages/src/lib/Menu.json (limited to 'packages') diff --git a/package-lock.json b/package-lock.json index 33f7d69f2..70f3b2484 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6153,9 +6153,9 @@ } }, "ecdsa-sig-formatter": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", - "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "requires": { "safe-buffer": "^5.0.1" } @@ -6173,9 +6173,9 @@ "dev": true }, "electron": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-4.0.8.tgz", - "integrity": "sha512-FOBJIHkuv8wc15N+ZyqwDzPavYVu5CHMBEf14jHDWv7QW2vkEIpJjVK+PIT31kfZfvjsIP0j2wvA/FBsiqB7pw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/electron/-/electron-4.1.4.tgz", + "integrity": "sha512-MelOjntJvd33izEjR6H4N/Uii7y535z/b2BuYXJGLNSHL6o1IlyhUQmfiT87kWABayERgeuYERgvsyf956OOFw==", "dev": true, "requires": { "@types/node": "^10.12.18", @@ -6184,9 +6184,9 @@ }, "dependencies": { "@types/node": { - "version": "10.12.30", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.30.tgz", - "integrity": "sha512-nsqTN6zUcm9xtdJiM9OvOJ5EF0kOI8f1Zuug27O/rgtxCRJHGqncSWfCMZUP852dCKPsDsYXGvBhxfRjDBkF5Q==", + "version": "10.14.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.4.tgz", + "integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg==", "dev": true } } @@ -10191,7 +10191,8 @@ "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true }, "hoist-non-react-statics": { "version": "3.3.0", @@ -11186,11 +11187,6 @@ "buffer-alloc": "^1.2.0" } }, - "isemail": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", - "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -11217,17 +11213,6 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "joi": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", - "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", - "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" - } - }, "js-base64": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", @@ -11341,15 +11326,20 @@ "dev": true }, "jsonwebtoken": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz", - "integrity": "sha1-d/UCHeBYtgWheD+hKD6ZgS5kVjg=", - "requires": { - "joi": "^6.10.1", - "jws": "^3.1.4", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", "lodash.once": "^4.0.0", - "ms": "^2.0.0", - "xtend": "^4.0.1" + "ms": "^2.1.1", + "semver": "^5.6.0" } }, "jsprim": { @@ -11475,21 +11465,21 @@ "dev": true }, "jwa": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.2.0.tgz", - "integrity": "sha512-Grku9ZST5NNQ3hqNUodSkDfEBqAmGA1R8yiyPHOnLzEKI0GaCQC/XhFmsheXYuXzFQJdILbh+lYBiliqG5R/Vg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", "requires": { "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.10", + "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "jws": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.1.tgz", - "integrity": "sha512-bGA2omSrFUkd72dhh05bIAN832znP4wOU3lfuXtRBuGTbsmNmDXMQg28f0Vsxaxgk4myF5YkKQpz6qeRpMgX9g==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "requires": { - "jwa": "^1.2.0", + "jwa": "^1.4.1", "safe-buffer": "^5.0.1" } }, @@ -11882,6 +11872,11 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, "lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", @@ -11894,6 +11889,11 @@ "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", "dev": true }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", @@ -11905,17 +11905,25 @@ "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", "dev": true }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, "lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, "lodash.keys": { "version": "3.1.2", @@ -17724,14 +17732,6 @@ "through2": "^2.0.3" } }, - "topo": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", - "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", - "requires": { - "hoek": "2.x.x" - } - }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", diff --git a/package.json b/package.json index 7e926139d..c43e0b3a9 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "electron-window-state": "5.0.3", "fs-extra": "7.0.1", "hex-to-rgba": "1.0.2", - "jsonwebtoken": "^7.4.1", + "jsonwebtoken": "8.5.1", "lodash": "^4.17.4", "marked": "0.6.1", "mdi": "^1.9.33", @@ -114,7 +114,7 @@ "cross-env": "^5.0.5", "cz-conventional-changelog": "2.1.0", "dotenv": "^4.0.0", - "electron": "4.0.8", + "electron": "4.1.4", "electron-builder": "20.38.4", "electron-rebuild": "1.8.4", "eslint": "5.10.0", diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index a85dcb366..0f02fa3c8 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -1,7 +1,6 @@ import color from 'color'; import { cloneDeep } from 'lodash'; -import { theme } from '../..'; import * as legacyStyles from '../legacy'; export interface IStyleTypes { diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 8429d0ecb..efd453356 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -81,6 +81,10 @@ const messages = defineMessages({ id: 'settings.app.restartRequired', defaultMessage: '!!!Changes require restart', }, + languageDisclaimer: { + id: 'settings.app.languageDisclaimer', + defaultMessage: '!!!Official translations are English & German. All other languages are community based translations.', + }, }); export default @observer class EditSettingsForm extends Component { @@ -239,6 +243,10 @@ export default @observer class EditSettingsForm extends Component { {intl.formatMessage(messages.currentVersion)} {' '} {remote.app.getVersion()} +

+ + {intl.formatMessage(messages.languageDisclaimer)} +

diff --git a/src/features/announcements/store.js b/src/features/announcements/store.js index 3c46828bb..b99309ca7 100644 --- a/src/features/announcements/store.js +++ b/src/features/announcements/store.js @@ -10,6 +10,8 @@ import localStorage from 'mobx-localstorage'; import { FeatureStore } from '../utils/FeatureStore'; import { getAnnouncementRequest, getChangelogRequest, getCurrentVersionRequest } from './api'; import { announcementActions } from './actions'; +import { createActionBindings } from '../utils/ActionBinding'; +import { createReactions } from '../../stores/lib/Reaction'; const LOCAL_STORAGE_KEY = 'announcements'; @@ -52,14 +54,15 @@ export class AnnouncementsStore extends FeatureStore { this.actions = actions; getCurrentVersionRequest.execute(); - this._registerActions([ + this._registerActions(createActionBindings([ [announcementActions.show, this._showAnnouncement], - ]); + ])); - this._registerReactions([ + this._reactions = createReactions([ this._fetchAnnouncements, this._showAnnouncementToUsersWhoUpdatedApp, ]); + this._registerReactions(this._reactions); this.isFeatureActive = true; } @@ -105,7 +108,6 @@ export class AnnouncementsStore extends FeatureStore { _showAnnouncementToUsersWhoUpdatedApp = () => { const { announcement, isNewUser } = this; - console.log(announcement, isNewUser); // Check if there is an announcement and on't show announcements to new users if (!announcement || isNewUser) return; @@ -125,7 +127,7 @@ export class AnnouncementsStore extends FeatureStore { _fetchAnnouncements = () => { const targetVersion = this.targetVersion || this.currentVersion; if (!targetVersion) return; - getChangelogRequest.execute('5.0.1'); - getAnnouncementRequest.execute('5.1.0'); + getChangelogRequest.execute(targetVersion); + getAnnouncementRequest.execute(targetVersion); } } diff --git a/src/features/utils/ActionBinding.js b/src/features/utils/ActionBinding.js new file mode 100644 index 000000000..497aa071b --- /dev/null +++ b/src/features/utils/ActionBinding.js @@ -0,0 +1,29 @@ +export default class ActionBinding { + action; + + isActive = false; + + constructor(action) { + this.action = action; + } + + start() { + if (!this.isActive) { + const { action } = this; + action[0].listen(action[1]); + this.isActive = true; + } + } + + stop() { + if (this.isActive) { + const { action } = this; + action[0].off(action[1]); + this.isActive = false; + } + } +} + +export const createActionBindings = actions => ( + actions.map(a => new ActionBinding(a)) +); diff --git a/src/features/utils/FeatureStore.js b/src/features/utils/FeatureStore.js index d863f7464..967e745b2 100644 --- a/src/features/utils/FeatureStore.js +++ b/src/features/utils/FeatureStore.js @@ -1,4 +1,4 @@ -import Reaction from '../../stores/lib/Reaction'; +import { union } from 'lodash'; export class FeatureStore { _actions = null; @@ -13,25 +13,24 @@ export class FeatureStore { // ACTIONS _registerActions(actions) { - this._actions = []; - actions.forEach(a => this._actions.push(a)); - this._startActions(this._actions); + this._actions = union(this._actions, actions); + this._startActions(); } _startActions(actions = this._actions) { - actions.forEach(a => a[0].listen(a[1])); + console.log(actions); + actions.forEach(a => a.start()); } _stopActions(actions = this._actions) { - actions.forEach(a => a[0].off(a[1])); + actions.forEach(a => a.stop()); } // REACTIONS _registerReactions(reactions) { - this._reactions = []; - reactions.forEach(r => this._reactions.push(new Reaction(r))); - this._startReactions(this._reactions); + this._reactions = union(this._reactions, reactions); + this._startReactions(); } _startReactions(reactions = this._reactions) { diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index bb18dc182..e11513d1f 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -14,6 +14,8 @@ import { updateWorkspaceRequest, } from './api'; import { WORKSPACES_ROUTES } from './index'; +import { createReactions } from '../../stores/lib/Reaction'; +import { createActionBindings } from '../utils/ActionBinding'; const debug = require('debug')('Franz:feature:workspaces:store'); @@ -80,41 +82,39 @@ export default class WorkspacesStore extends FeatureStore { // ACTIONS - this._freeUserActions = [ + this._freeUserActions = createActionBindings([ [workspaceActions.toggleWorkspaceDrawer, this._toggleWorkspaceDrawer], [workspaceActions.openWorkspaceSettings, this._openWorkspaceSettings], - ]; - this._premiumUserActions = [ + ]); + this._premiumUserActions = createActionBindings([ [workspaceActions.edit, this._edit], [workspaceActions.create, this._create], [workspaceActions.delete, this._delete], [workspaceActions.update, this._update], [workspaceActions.activate, this._setActiveWorkspace], [workspaceActions.deactivate, this._deactivateActiveWorkspace], - ]; + ]); this._allActions = this._freeUserActions.concat(this._premiumUserActions); this._registerActions(this._allActions); // REACTIONS - this._freeUserReactions = [ + this._freeUserReactions = createReactions([ this._stopPremiumActionsAndReactions, this._openDrawerWithSettingsReaction, this._setFeatureEnabledReaction, this._setIsPremiumFeatureReaction, this._cleanupInvalidServiceReferences, - ]; - this._premiumUserReactions = [ + ]); + this._premiumUserReactions = createReactions([ this._setActiveServiceOnWorkspaceSwitchReaction, this._activateLastUsedWorkspaceReaction, this._setWorkspaceBeingEditedReaction, - ]; + ]); this._allReactions = this._freeUserReactions.concat(this._premiumUserReactions); this._registerReactions(this._allReactions); - console.log(this._reactions); - getUserWorkspacesRequest.execute(); this.isFeatureActive = true; } diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json deleted file mode 100644 index 877e67588..000000000 --- a/src/i18n/locales/defaultMessages.json +++ /dev/null @@ -1,4473 +0,0 @@ -[ - { - "descriptors": [ - { - "defaultMessage": "!!!Import your Franz 4 services", - "end": { - "column": 3, - "line": 16 - }, - "file": "src/components/auth/Import.js", - "id": "import.headline", - "start": { - "column": 12, - "line": 13 - } - }, - { - "defaultMessage": "!!!Services not yet supported in Franz 5", - "end": { - "column": 3, - "line": 20 - }, - "file": "src/components/auth/Import.js", - "id": "import.notSupportedHeadline", - "start": { - "column": 24, - "line": 17 - } - }, - { - "defaultMessage": "!!!Import {count} services", - "end": { - "column": 3, - "line": 24 - }, - "file": "src/components/auth/Import.js", - "id": "import.submit.label", - "start": { - "column": 21, - "line": 21 - } - }, - { - "defaultMessage": "!!!I want to add services manually", - "end": { - "column": 3, - "line": 28 - }, - "file": "src/components/auth/Import.js", - "id": "import.skip.label", - "start": { - "column": 19, - "line": 25 - } - } - ], - "path": "src/components/auth/Import.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Invite Friends", - "end": { - "column": 3, - "line": 19 - }, - "file": "src/components/auth/Invite.js", - "id": "settings.invite.headline", - "start": { - "column": 20, - "line": 16 - } - }, - { - "defaultMessage": "!!!Invite 3 of your friends or colleagues", - "end": { - "column": 3, - "line": 23 - }, - "file": "src/components/auth/Invite.js", - "id": "invite.headline.friends", - "start": { - "column": 12, - "line": 20 - } - }, - { - "defaultMessage": "!!!Name", - "end": { - "column": 3, - "line": 27 - }, - "file": "src/components/auth/Invite.js", - "id": "invite.name.label", - "start": { - "column": 13, - "line": 24 - } - }, - { - "defaultMessage": "!!!Email address", - "end": { - "column": 3, - "line": 31 - }, - "file": "src/components/auth/Invite.js", - "id": "invite.email.label", - "start": { - "column": 14, - "line": 28 - } - }, - { - "defaultMessage": "!!!Send invites", - "end": { - "column": 3, - "line": 35 - }, - "file": "src/components/auth/Invite.js", - "id": "invite.submit.label", - "start": { - "column": 21, - "line": 32 - } - }, - { - "defaultMessage": "!!!I want to do this later", - "end": { - "column": 3, - "line": 39 - }, - "file": "src/components/auth/Invite.js", - "id": "invite.skip.label", - "start": { - "column": 19, - "line": 36 - } - }, - { - "defaultMessage": "!!!Invitations sent successfully", - "end": { - "column": 3, - "line": 43 - }, - "file": "src/components/auth/Invite.js", - "id": "invite.successInfo", - "start": { - "column": 21, - "line": 40 - } - } - ], - "path": "src/components/auth/Invite.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Sign in", - "end": { - "column": 3, - "line": 20 - }, - "file": "src/components/auth/Login.js", - "id": "login.headline", - "start": { - "column": 12, - "line": 17 - } - }, - { - "defaultMessage": "!!!Email address", - "end": { - "column": 3, - "line": 24 - }, - "file": "src/components/auth/Login.js", - "id": "login.email.label", - "start": { - "column": 14, - "line": 21 - } - }, - { - "defaultMessage": "!!!Password", - "end": { - "column": 3, - "line": 28 - }, - "file": "src/components/auth/Login.js", - "id": "login.password.label", - "start": { - "column": 17, - "line": 25 - } - }, - { - "defaultMessage": "!!!Sign in", - "end": { - "column": 3, - "line": 32 - }, - "file": "src/components/auth/Login.js", - "id": "login.submit.label", - "start": { - "column": 21, - "line": 29 - } - }, - { - "defaultMessage": "!!!Email or password not valid", - "end": { - "column": 3, - "line": 36 - }, - "file": "src/components/auth/Login.js", - "id": "login.invalidCredentials", - "start": { - "column": 22, - "line": 33 - } - }, - { - "defaultMessage": "!!!Your session expired, please login again.", - "end": { - "column": 3, - "line": 40 - }, - "file": "src/components/auth/Login.js", - "id": "login.tokenExpired", - "start": { - "column": 16, - "line": 37 - } - }, - { - "defaultMessage": "!!!Your session expired, please login again.", - "end": { - "column": 3, - "line": 44 - }, - "file": "src/components/auth/Login.js", - "id": "login.serverLogout", - "start": { - "column": 16, - "line": 41 - } - }, - { - "defaultMessage": "!!!Create a free account", - "end": { - "column": 3, - "line": 48 - }, - "file": "src/components/auth/Login.js", - "id": "login.link.signup", - "start": { - "column": 14, - "line": 45 - } - }, - { - "defaultMessage": "!!!Forgot password", - "end": { - "column": 3, - "line": 52 - }, - "file": "src/components/auth/Login.js", - "id": "login.link.password", - "start": { - "column": 16, - "line": 49 - } - } - ], - "path": "src/components/auth/Login.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Forgot password", - "end": { - "column": 3, - "line": 17 - }, - "file": "src/components/auth/Password.js", - "id": "password.headline", - "start": { - "column": 12, - "line": 14 - } - }, - { - "defaultMessage": "!!!Email address", - "end": { - "column": 3, - "line": 21 - }, - "file": "src/components/auth/Password.js", - "id": "password.email.label", - "start": { - "column": 14, - "line": 18 - } - }, - { - "defaultMessage": "!!!Submit", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/components/auth/Password.js", - "id": "password.submit.label", - "start": { - "column": 21, - "line": 22 - } - }, - { - "defaultMessage": "!!!Your new password was sent to your email address", - "end": { - "column": 3, - "line": 29 - }, - "file": "src/components/auth/Password.js", - "id": "password.successInfo", - "start": { - "column": 15, - "line": 26 - } - }, - { - "defaultMessage": "!!!No user affiliated with that email address", - "end": { - "column": 3, - "line": 33 - }, - "file": "src/components/auth/Password.js", - "id": "password.noUser", - "start": { - "column": 10, - "line": 30 - } - }, - { - "defaultMessage": "!!!Create a free account", - "end": { - "column": 3, - "line": 37 - }, - "file": "src/components/auth/Password.js", - "id": "password.link.signup", - "start": { - "column": 14, - "line": 34 - } - }, - { - "defaultMessage": "!!!Sign in to your account", - "end": { - "column": 3, - "line": 41 - }, - "file": "src/components/auth/Password.js", - "id": "password.link.login", - "start": { - "column": 13, - "line": 38 - } - } - ], - "path": "src/components/auth/Password.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Support Franz", - "end": { - "column": 3, - "line": 16 - }, - "file": "src/components/auth/Pricing.js", - "id": "pricing.headline", - "start": { - "column": 12, - "line": 13 - } - }, - { - "defaultMessage": "!!!Select your support plan", - "end": { - "column": 3, - "line": 20 - }, - "file": "src/components/auth/Pricing.js", - "id": "pricing.support.label", - "start": { - "column": 23, - "line": 17 - } - }, - { - "defaultMessage": "!!!Support the development of Franz", - "end": { - "column": 3, - "line": 24 - }, - "file": "src/components/auth/Pricing.js", - "id": "pricing.submit.label", - "start": { - "column": 21, - "line": 21 - } - }, - { - "defaultMessage": "!!!I don't want to support the development of Franz.", - "end": { - "column": 3, - "line": 28 - }, - "file": "src/components/auth/Pricing.js", - "id": "pricing.link.skipPayment", - "start": { - "column": 15, - "line": 25 - } - } - ], - "path": "src/components/auth/Pricing.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Sign up", - "end": { - "column": 3, - "line": 21 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.headline", - "start": { - "column": 12, - "line": 18 - } - }, - { - "defaultMessage": "!!!Firstname", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.firstname.label", - "start": { - "column": 18, - "line": 22 - } - }, - { - "defaultMessage": "!!!Lastname", - "end": { - "column": 3, - "line": 29 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.lastname.label", - "start": { - "column": 17, - "line": 26 - } - }, - { - "defaultMessage": "!!!Email address", - "end": { - "column": 3, - "line": 33 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.email.label", - "start": { - "column": 14, - "line": 30 - } - }, - { - "defaultMessage": "!!!Company", - "end": { - "column": 3, - "line": 37 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.company.label", - "start": { - "column": 16, - "line": 34 - } - }, - { - "defaultMessage": "!!!Password", - "end": { - "column": 3, - "line": 41 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.password.label", - "start": { - "column": 17, - "line": 38 - } - }, - { - "defaultMessage": "!!!By creating a Franz account you accept the", - "end": { - "column": 3, - "line": 45 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.legal.info", - "start": { - "column": 13, - "line": 42 - } - }, - { - "defaultMessage": "!!!Terms of service", - "end": { - "column": 3, - "line": 49 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.legal.terms", - "start": { - "column": 9, - "line": 46 - } - }, - { - "defaultMessage": "!!!Privacy Statement", - "end": { - "column": 3, - "line": 53 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.legal.privacy", - "start": { - "column": 11, - "line": 50 - } - }, - { - "defaultMessage": "!!!Create account", - "end": { - "column": 3, - "line": 57 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.submit.label", - "start": { - "column": 21, - "line": 54 - } - }, - { - "defaultMessage": "!!!Already have an account, sign in?", - "end": { - "column": 3, - "line": 61 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.link.login", - "start": { - "column": 13, - "line": 58 - } - }, - { - "defaultMessage": "!!!A user with that email address already exists", - "end": { - "column": 3, - "line": 65 - }, - "file": "src/components/auth/Signup.js", - "id": "signup.emailDuplicate", - "start": { - "column": 18, - "line": 62 - } - } - ], - "path": "src/components/auth/Signup.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Create a free account", - "end": { - "column": 3, - "line": 12 - }, - "file": "src/components/auth/Welcome.js", - "id": "welcome.signupButton", - "start": { - "column": 16, - "line": 9 - } - }, - { - "defaultMessage": "!!!Login to your account", - "end": { - "column": 3, - "line": 16 - }, - "file": "src/components/auth/Welcome.js", - "id": "welcome.loginButton", - "start": { - "column": 15, - "line": 13 - } - } - ], - "path": "src/components/auth/Welcome.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Your services have been updated.", - "end": { - "column": 3, - "line": 29 - }, - "file": "src/components/layout/AppLayout.js", - "id": "infobar.servicesUpdated", - "start": { - "column": 19, - "line": 26 - } - }, - { - "defaultMessage": "!!!A new update for Franz is available.", - "end": { - "column": 3, - "line": 33 - }, - "file": "src/components/layout/AppLayout.js", - "id": "infobar.updateAvailable", - "start": { - "column": 19, - "line": 30 - } - }, - { - "defaultMessage": "!!!Reload services", - "end": { - "column": 3, - "line": 37 - }, - "file": "src/components/layout/AppLayout.js", - "id": "infobar.buttonReloadServices", - "start": { - "column": 24, - "line": 34 - } - }, - { - "defaultMessage": "!!!Changelog", - "end": { - "column": 3, - "line": 41 - }, - "file": "src/components/layout/AppLayout.js", - "id": "infobar.buttonChangelog", - "start": { - "column": 13, - "line": 38 - } - }, - { - "defaultMessage": "!!!Restart & install update", - "end": { - "column": 3, - "line": 45 - }, - "file": "src/components/layout/AppLayout.js", - "id": "infobar.buttonInstallUpdate", - "start": { - "column": 23, - "line": 42 - } - }, - { - "defaultMessage": "!!!Could not load services and user information", - "end": { - "column": 3, - "line": 49 - }, - "file": "src/components/layout/AppLayout.js", - "id": "infobar.requiredRequestsFailed", - "start": { - "column": 26, - "line": 46 - } - } - ], - "path": "src/components/layout/AppLayout.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Settings", - "end": { - "column": 3, - "line": 16 - }, - "file": "src/components/layout/Sidebar.js", - "id": "sidebar.settings", - "start": { - "column": 12, - "line": 13 - } - }, - { - "defaultMessage": "!!!Add new service", - "end": { - "column": 3, - "line": 20 - }, - "file": "src/components/layout/Sidebar.js", - "id": "sidebar.addNewService", - "start": { - "column": 17, - "line": 17 - } - }, - { - "defaultMessage": "!!!Disable notifications & audio", - "end": { - "column": 3, - "line": 24 - }, - "file": "src/components/layout/Sidebar.js", - "id": "sidebar.muteApp", - "start": { - "column": 8, - "line": 21 - } - }, - { - "defaultMessage": "!!!Enable notifications & audio", - "end": { - "column": 3, - "line": 28 - }, - "file": "src/components/layout/Sidebar.js", - "id": "sidebar.unmuteApp", - "start": { - "column": 10, - "line": 25 - } - }, - { - "defaultMessage": "!!!Open workspace drawer", - "end": { - "column": 3, - "line": 32 - }, - "file": "src/components/layout/Sidebar.js", - "id": "sidebar.openWorkspaceDrawer", - "start": { - "column": 23, - "line": 29 - } - }, - { - "defaultMessage": "!!!Close workspace drawer", - "end": { - "column": 3, - "line": 36 - }, - "file": "src/components/layout/Sidebar.js", - "id": "sidebar.closeWorkspaceDrawer", - "start": { - "column": 24, - "line": 33 - } - } - ], - "path": "src/components/layout/Sidebar.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Oh no!", - "end": { - "column": 3, - "line": 15 - }, - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "id": "service.errorHandler.headline", - "start": { - "column": 12, - "line": 12 - } - }, - { - "defaultMessage": "!!!{name} has failed to load.", - "end": { - "column": 3, - "line": 19 - }, - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "id": "service.errorHandler.text", - "start": { - "column": 8, - "line": 16 - } - }, - { - "defaultMessage": "!!!Reload {name}", - "end": { - "column": 3, - "line": 23 - }, - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "id": "service.errorHandler.action", - "start": { - "column": 10, - "line": 20 - } - }, - { - "defaultMessage": "!!!Edit {name}", - "end": { - "column": 3, - "line": 27 - }, - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "id": "service.errorHandler.editAction", - "start": { - "column": 14, - "line": 24 - } - }, - { - "defaultMessage": "!!!Error:", - "end": { - "column": 3, - "line": 31 - }, - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "id": "service.errorHandler.message", - "start": { - "column": 16, - "line": 28 - } - } - ], - "path": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!{name} is disabled", - "end": { - "column": 3, - "line": 12 - }, - "file": "src/components/services/content/ServiceDisabled.js", - "id": "service.disabledHandler.headline", - "start": { - "column": 12, - "line": 9 - } - }, - { - "defaultMessage": "!!!Enable {name}", - "end": { - "column": 3, - "line": 16 - }, - "file": "src/components/services/content/ServiceDisabled.js", - "id": "service.disabledHandler.action", - "start": { - "column": 10, - "line": 13 - } - } - ], - "path": "src/components/services/content/ServiceDisabled.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Welcome to Franz", - "end": { - "column": 3, - "line": 14 - }, - "file": "src/components/services/content/Services.js", - "id": "services.welcome", - "start": { - "column": 11, - "line": 11 - } - }, - { - "defaultMessage": "!!!Get started", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/components/services/content/Services.js", - "id": "services.getStarted", - "start": { - "column": 14, - "line": 15 - } - } - ], - "path": "src/components/services/content/Services.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Oh no!", - "end": { - "column": 3, - "line": 13 - }, - "file": "src/components/services/content/WebviewCrashHandler.js", - "id": "service.crashHandler.headline", - "start": { - "column": 12, - "line": 10 - } - }, - { - "defaultMessage": "!!!{name} has caused an error.", - "end": { - "column": 3, - "line": 17 - }, - "file": "src/components/services/content/WebviewCrashHandler.js", - "id": "service.crashHandler.text", - "start": { - "column": 8, - "line": 14 - } - }, - { - "defaultMessage": "!!!Reload {name}", - "end": { - "column": 3, - "line": 21 - }, - "file": "src/components/services/content/WebviewCrashHandler.js", - "id": "service.crashHandler.action", - "start": { - "column": 10, - "line": 18 - } - }, - { - "defaultMessage": "!!!Trying to automatically restore {name} in {seconds} seconds", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/components/services/content/WebviewCrashHandler.js", - "id": "service.crashHandler.autoReload", - "start": { - "column": 14, - "line": 22 - } - } - ], - "path": "src/components/services/content/WebviewCrashHandler.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Reload", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/components/services/tabs/TabItem.js", - "id": "tabs.item.reload", - "start": { - "column": 10, - "line": 15 - } - }, - { - "defaultMessage": "!!!Edit", - "end": { - "column": 3, - "line": 22 - }, - "file": "src/components/services/tabs/TabItem.js", - "id": "tabs.item.edit", - "start": { - "column": 8, - "line": 19 - } - }, - { - "defaultMessage": "!!!Disable notifications", - "end": { - "column": 3, - "line": 26 - }, - "file": "src/components/services/tabs/TabItem.js", - "id": "tabs.item.disableNotifications", - "start": { - "column": 24, - "line": 23 - } - }, - { - "defaultMessage": "!!!Enable notifications", - "end": { - "column": 3, - "line": 30 - }, - "file": "src/components/services/tabs/TabItem.js", - "id": "tabs.item.enableNotification", - "start": { - "column": 23, - "line": 27 - } - }, - { - "defaultMessage": "!!!Disable audio", - "end": { - "column": 3, - "line": 34 - }, - "file": "src/components/services/tabs/TabItem.js", - "id": "tabs.item.disableAudio", - "start": { - "column": 16, - "line": 31 - } - }, - { - "defaultMessage": "!!!Enable audio", - "end": { - "column": 3, - "line": 38 - }, - "file": "src/components/services/tabs/TabItem.js", - "id": "tabs.item.enableAudio", - "start": { - "column": 15, - "line": 35 - } - }, - { - "defaultMessage": "!!!Disable Service", - "end": { - "column": 3, - "line": 42 - }, - "file": "src/components/services/tabs/TabItem.js", - "id": "tabs.item.disableService", - "start": { - "column": 18, - "line": 39 - } - }, - { - "defaultMessage": "!!!Enable Service", - "end": { - "column": 3, - "line": 46 - }, - "file": "src/components/services/tabs/TabItem.js", - "id": "tabs.item.enableService", - "start": { - "column": 17, - "line": 43 - } - }, - { - "defaultMessage": "!!!Delete Service", - "end": { - "column": 3, - "line": 50 - }, - "file": "src/components/services/tabs/TabItem.js", - "id": "tabs.item.deleteService", - "start": { - "column": 17, - "line": 47 - } - } - ], - "path": "src/components/services/tabs/TabItem.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Account", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.headline", - "start": { - "column": 12, - "line": 15 - } - }, - { - "defaultMessage": "!!!Your Subscription", - "end": { - "column": 3, - "line": 22 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.headlineSubscription", - "start": { - "column": 24, - "line": 19 - } - }, - { - "defaultMessage": "!!!Upgrade your Account", - "end": { - "column": 3, - "line": 26 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.headlineUpgrade", - "start": { - "column": 19, - "line": 23 - } - }, - { - "defaultMessage": "!!Invoices", - "end": { - "column": 3, - "line": 30 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.headlineInvoices", - "start": { - "column": 20, - "line": 27 - } - }, - { - "defaultMessage": "!!Danger Zone", - "end": { - "column": 3, - "line": 34 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.headlineDangerZone", - "start": { - "column": 22, - "line": 31 - } - }, - { - "defaultMessage": "!!!Manage your subscription", - "end": { - "column": 3, - "line": 38 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.manageSubscription.label", - "start": { - "column": 33, - "line": 35 - } - }, - { - "defaultMessage": "!!!Basic Account", - "end": { - "column": 3, - "line": 42 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.accountType.basic", - "start": { - "column": 20, - "line": 39 - } - }, - { - "defaultMessage": "!!!Premium Supporter Account", - "end": { - "column": 3, - "line": 46 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.accountType.premium", - "start": { - "column": 22, - "line": 43 - } - }, - { - "defaultMessage": "!!!Edit Account", - "end": { - "column": 3, - "line": 50 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.account.editButton", - "start": { - "column": 21, - "line": 47 - } - }, - { - "defaultMessage": "!!!Download", - "end": { - "column": 3, - "line": 54 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.invoiceDownload", - "start": { - "column": 19, - "line": 51 - } - }, - { - "defaultMessage": "!!!Could not load user information", - "end": { - "column": 3, - "line": 58 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.userInfoRequestFailed", - "start": { - "column": 25, - "line": 55 - } - }, - { - "defaultMessage": "!!!Try again", - "end": { - "column": 3, - "line": 62 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.tryReloadUserInfoRequest", - "start": { - "column": 28, - "line": 59 - } - }, - { - "defaultMessage": "!!!Delete account", - "end": { - "column": 3, - "line": 66 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.deleteAccount", - "start": { - "column": 17, - "line": 63 - } - }, - { - "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.", - "end": { - "column": 3, - "line": 70 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.deleteInfo", - "start": { - "column": 14, - "line": 67 - } - }, - { - "defaultMessage": "!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", - "end": { - "column": 3, - "line": 74 - }, - "file": "src/components/settings/account/AccountDashboard.js", - "id": "settings.account.deleteEmailSent", - "start": { - "column": 19, - "line": 71 - } - } - ], - "path": "src/components/settings/account/AccountDashboard.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Available services", - "end": { - "column": 3, - "line": 15 - }, - "file": "src/components/settings/navigation/SettingsNavigation.js", - "id": "settings.navigation.availableServices", - "start": { - "column": 21, - "line": 12 - } - }, - { - "defaultMessage": "!!!Your services", - "end": { - "column": 3, - "line": 19 - }, - "file": "src/components/settings/navigation/SettingsNavigation.js", - "id": "settings.navigation.yourServices", - "start": { - "column": 16, - "line": 16 - } - }, - { - "defaultMessage": "!!!Your workspaces", - "end": { - "column": 3, - "line": 23 - }, - "file": "src/components/settings/navigation/SettingsNavigation.js", - "id": "settings.navigation.yourWorkspaces", - "start": { - "column": 18, - "line": 20 - } - }, - { - "defaultMessage": "!!!Account", - "end": { - "column": 3, - "line": 27 - }, - "file": "src/components/settings/navigation/SettingsNavigation.js", - "id": "settings.navigation.account", - "start": { - "column": 11, - "line": 24 - } - }, - { - "defaultMessage": "!!!Settings", - "end": { - "column": 3, - "line": 31 - }, - "file": "src/components/settings/navigation/SettingsNavigation.js", - "id": "settings.navigation.settings", - "start": { - "column": 12, - "line": 28 - } - }, - { - "defaultMessage": "!!!Invite Friends", - "end": { - "column": 3, - "line": 35 - }, - "file": "src/components/settings/navigation/SettingsNavigation.js", - "id": "settings.navigation.inviteFriends", - "start": { - "column": 17, - "line": 32 - } - }, - { - "defaultMessage": "!!!Logout", - "end": { - "column": 3, - "line": 39 - }, - "file": "src/components/settings/navigation/SettingsNavigation.js", - "id": "settings.navigation.logout", - "start": { - "column": 10, - "line": 36 - } - } - ], - "path": "src/components/settings/navigation/SettingsNavigation.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Available Services", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/components/settings/recipes/RecipesDashboard.js", - "id": "settings.recipes.headline", - "start": { - "column": 12, - "line": 15 - } - }, - { - "defaultMessage": "!!!Search service", - "end": { - "column": 3, - "line": 22 - }, - "file": "src/components/settings/recipes/RecipesDashboard.js", - "id": "settings.searchService", - "start": { - "column": 17, - "line": 19 - } - }, - { - "defaultMessage": "!!!Most popular", - "end": { - "column": 3, - "line": 26 - }, - "file": "src/components/settings/recipes/RecipesDashboard.js", - "id": "settings.recipes.mostPopular", - "start": { - "column": 22, - "line": 23 - } - }, - { - "defaultMessage": "!!!All services", - "end": { - "column": 3, - "line": 30 - }, - "file": "src/components/settings/recipes/RecipesDashboard.js", - "id": "settings.recipes.all", - "start": { - "column": 14, - "line": 27 - } - }, - { - "defaultMessage": "!!!Development", - "end": { - "column": 3, - "line": 34 - }, - "file": "src/components/settings/recipes/RecipesDashboard.js", - "id": "settings.recipes.dev", - "start": { - "column": 14, - "line": 31 - } - }, - { - "defaultMessage": "!!!Sorry, but no service matched your search term.", - "end": { - "column": 3, - "line": 38 - }, - "file": "src/components/settings/recipes/RecipesDashboard.js", - "id": "settings.recipes.nothingFound", - "start": { - "column": 16, - "line": 35 - } - }, - { - "defaultMessage": "!!!Service successfully added", - "end": { - "column": 3, - "line": 42 - }, - "file": "src/components/settings/recipes/RecipesDashboard.js", - "id": "settings.recipes.servicesSuccessfulAddedInfo", - "start": { - "column": 31, - "line": 39 - } - }, - { - "defaultMessage": "!!!Missing a service?", - "end": { - "column": 3, - "line": 46 - }, - "file": "src/components/settings/recipes/RecipesDashboard.js", - "id": "settings.recipes.missingService", - "start": { - "column": 18, - "line": 43 - } - } - ], - "path": "src/components/settings/recipes/RecipesDashboard.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Save service", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.saveButton", - "start": { - "column": 15, - "line": 22 - } - }, - { - "defaultMessage": "!!!Delete Service", - "end": { - "column": 3, - "line": 29 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.deleteButton", - "start": { - "column": 17, - "line": 26 - } - }, - { - "defaultMessage": "!!!Available services", - "end": { - "column": 3, - "line": 33 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.availableServices", - "start": { - "column": 21, - "line": 30 - } - }, - { - "defaultMessage": "!!!Your services", - "end": { - "column": 3, - "line": 37 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.yourServices", - "start": { - "column": 16, - "line": 34 - } - }, - { - "defaultMessage": "!!!Add {name}", - "end": { - "column": 3, - "line": 41 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.addServiceHeadline", - "start": { - "column": 22, - "line": 38 - } - }, - { - "defaultMessage": "!!!Edit {name}", - "end": { - "column": 3, - "line": 45 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.editServiceHeadline", - "start": { - "column": 23, - "line": 42 - } - }, - { - "defaultMessage": "!!!Hosted", - "end": { - "column": 3, - "line": 49 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.tabHosted", - "start": { - "column": 13, - "line": 46 - } - }, - { - "defaultMessage": "!!!Self hosted ⭐️", - "end": { - "column": 3, - "line": 53 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.tabOnPremise", - "start": { - "column": 16, - "line": 50 - } - }, - { - "defaultMessage": "!!!Use the hosted {name} service.", - "end": { - "column": 3, - "line": 57 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.useHostedService", - "start": { - "column": 20, - "line": 54 - } - }, - { - "defaultMessage": "!!!Could not validate custom {name} server.", - "end": { - "column": 3, - "line": 61 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.customUrlValidationError", - "start": { - "column": 28, - "line": 58 - } - }, - { - "defaultMessage": "!!!To add self hosted services, you need a Franz Premium Supporter Account.", - "end": { - "column": 3, - "line": 65 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.customUrlPremiumInfo", - "start": { - "column": 24, - "line": 62 - } - }, - { - "defaultMessage": "!!!Upgrade your account", - "end": { - "column": 3, - "line": 69 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.customUrlUpgradeAccount", - "start": { - "column": 27, - "line": 66 - } - }, - { - "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", - "end": { - "column": 3, - "line": 73 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.indirectMessageInfo", - "start": { - "column": 23, - "line": 70 - } - }, - { - "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", - "end": { - "column": 3, - "line": 77 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.isMutedInfo", - "start": { - "column": 15, - "line": 74 - } - }, - { - "defaultMessage": "!!!Notifications", - "end": { - "column": 3, - "line": 81 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.headlineNotifications", - "start": { - "column": 25, - "line": 78 - } - }, - { - "defaultMessage": "!!!Unread message badges", - "end": { - "column": 3, - "line": 85 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.headlineBadges", - "start": { - "column": 18, - "line": 82 - } - }, - { - "defaultMessage": "!!!General", - "end": { - "column": 3, - "line": 89 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.headlineGeneral", - "start": { - "column": 19, - "line": 86 - } - }, - { - "defaultMessage": "!!!Delete", - "end": { - "column": 3, - "line": 93 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.iconDelete", - "start": { - "column": 14, - "line": 90 - } - }, - { - "defaultMessage": "!!!Drop your image, or click here", - "end": { - "column": 3, - "line": 97 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.iconUpload", - "start": { - "column": 14, - "line": 94 - } - }, - { - "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", - "end": { - "column": 3, - "line": 101 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.proxy.headline", - "start": { - "column": 17, - "line": 98 - } - }, - { - "defaultMessage": "!!!Please restart Franz after changing proxy Settings.", - "end": { - "column": 3, - "line": 105 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.proxy.restartInfo", - "start": { - "column": 20, - "line": 102 - } - }, - { - "defaultMessage": "!!!Proxy settings will not be synchronized with the Franz servers.", - "end": { - "column": 3, - "line": 109 - }, - "file": "src/components/settings/services/EditServiceForm.js", - "id": "settings.service.form.proxy.info", - "start": { - "column": 13, - "line": 106 - } - } - ], - "path": "src/components/settings/services/EditServiceForm.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Error", - "end": { - "column": 3, - "line": 13 - }, - "file": "src/components/settings/services/ServiceError.js", - "id": "settings.service.error.headline", - "start": { - "column": 12, - "line": 10 - } - }, - { - "defaultMessage": "!!!Back to services", - "end": { - "column": 3, - "line": 17 - }, - "file": "src/components/settings/services/ServiceError.js", - "id": "settings.service.error.goBack", - "start": { - "column": 10, - "line": 14 - } - }, - { - "defaultMessage": "!!!Available services", - "end": { - "column": 3, - "line": 21 - }, - "file": "src/components/settings/services/ServiceError.js", - "id": "settings.service.form.availableServices", - "start": { - "column": 21, - "line": 18 - } - }, - { - "defaultMessage": "!!!Could not load service recipe.", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/components/settings/services/ServiceError.js", - "id": "settings.service.error.message", - "start": { - "column": 16, - "line": 22 - } - } - ], - "path": "src/components/settings/services/ServiceError.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Service is disabled", - "end": { - "column": 3, - "line": 14 - }, - "file": "src/components/settings/services/ServiceItem.js", - "id": "settings.services.tooltip.isDisabled", - "start": { - "column": 21, - "line": 11 - } - }, - { - "defaultMessage": "!!!Notifications are disabled", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/components/settings/services/ServiceItem.js", - "id": "settings.services.tooltip.notificationsDisabled", - "start": { - "column": 32, - "line": 15 - } - }, - { - "defaultMessage": "!!!All sounds are muted", - "end": { - "column": 3, - "line": 22 - }, - "file": "src/components/settings/services/ServiceItem.js", - "id": "settings.services.tooltip.isMuted", - "start": { - "column": 18, - "line": 19 - } - } - ], - "path": "src/components/settings/services/ServiceItem.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Your services", - "end": { - "column": 3, - "line": 17 - }, - "file": "src/components/settings/services/ServicesDashboard.js", - "id": "settings.services.headline", - "start": { - "column": 12, - "line": 14 - } - }, - { - "defaultMessage": "!!!Search service", - "end": { - "column": 3, - "line": 21 - }, - "file": "src/components/settings/services/ServicesDashboard.js", - "id": "settings.searchService", - "start": { - "column": 17, - "line": 18 - } - }, - { - "defaultMessage": "!!!You haven't added any services yet.", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/components/settings/services/ServicesDashboard.js", - "id": "settings.services.noServicesAdded", - "start": { - "column": 19, - "line": 22 - } - }, - { - "defaultMessage": "!!!Sorry, but no service matched your search term.", - "end": { - "column": 3, - "line": 29 - }, - "file": "src/components/settings/services/ServicesDashboard.js", - "id": "settings.recipes.nothingFound", - "start": { - "column": 18, - "line": 26 - } - }, - { - "defaultMessage": "!!!Discover services", - "end": { - "column": 3, - "line": 33 - }, - "file": "src/components/settings/services/ServicesDashboard.js", - "id": "settings.services.discoverServices", - "start": { - "column": 20, - "line": 30 - } - }, - { - "defaultMessage": "!!!Could not load your services", - "end": { - "column": 3, - "line": 37 - }, - "file": "src/components/settings/services/ServicesDashboard.js", - "id": "settings.services.servicesRequestFailed", - "start": { - "column": 25, - "line": 34 - } - }, - { - "defaultMessage": "!!!Try again", - "end": { - "column": 3, - "line": 41 - }, - "file": "src/components/settings/services/ServicesDashboard.js", - "id": "settings.account.tryReloadServices", - "start": { - "column": 21, - "line": 38 - } - }, - { - "defaultMessage": "!!!Your changes have been saved", - "end": { - "column": 3, - "line": 45 - }, - "file": "src/components/settings/services/ServicesDashboard.js", - "id": "settings.services.updatedInfo", - "start": { - "column": 15, - "line": 42 - } - }, - { - "defaultMessage": "!!!Service has been deleted", - "end": { - "column": 3, - "line": 49 - }, - "file": "src/components/settings/services/ServicesDashboard.js", - "id": "settings.services.deletedInfo", - "start": { - "column": 15, - "line": 46 - } - } - ], - "path": "src/components/settings/services/ServicesDashboard.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Settings", - "end": { - "column": 3, - "line": 19 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.headline", - "start": { - "column": 12, - "line": 16 - } - }, - { - "defaultMessage": "!!!General", - "end": { - "column": 3, - "line": 23 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.headlineGeneral", - "start": { - "column": 19, - "line": 20 - } - }, - { - "defaultMessage": "!!!Language", - "end": { - "column": 3, - "line": 27 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.headlineLanguage", - "start": { - "column": 20, - "line": 24 - } - }, - { - "defaultMessage": "!!!Updates", - "end": { - "column": 3, - "line": 31 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.headlineUpdates", - "start": { - "column": 19, - "line": 28 - } - }, - { - "defaultMessage": "!!!Appearance", - "end": { - "column": 3, - "line": 35 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.headlineAppearance", - "start": { - "column": 22, - "line": 32 - } - }, - { - "defaultMessage": "!!!Advanced", - "end": { - "column": 3, - "line": 39 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.headlineAdvanced", - "start": { - "column": 20, - "line": 36 - } - }, - { - "defaultMessage": "!!!Help us to translate Franz into your language.", - "end": { - "column": 3, - "line": 43 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.translationHelp", - "start": { - "column": 19, - "line": 40 - } - }, - { - "defaultMessage": "!!!Cache", - "end": { - "column": 3, - "line": 47 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.subheadlineCache", - "start": { - "column": 20, - "line": 44 - } - }, - { - "defaultMessage": "!!!Franz cache is currently using {size} of disk space.", - "end": { - "column": 3, - "line": 51 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.cacheInfo", - "start": { - "column": 13, - "line": 48 - } - }, - { - "defaultMessage": "!!!Clear cache", - "end": { - "column": 3, - "line": 55 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.buttonClearAllCache", - "start": { - "column": 23, - "line": 52 - } - }, - { - "defaultMessage": "!!!Check for updates", - "end": { - "column": 3, - "line": 59 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.buttonSearchForUpdate", - "start": { - "column": 25, - "line": 56 - } - }, - { - "defaultMessage": "!!!Restart & install update", - "end": { - "column": 3, - "line": 63 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.buttonInstallUpdate", - "start": { - "column": 23, - "line": 60 - } - }, - { - "defaultMessage": "!!!Is searching for update", - "end": { - "column": 3, - "line": 67 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.updateStatusSearching", - "start": { - "column": 25, - "line": 64 - } - }, - { - "defaultMessage": "!!!Update available, downloading...", - "end": { - "column": 3, - "line": 71 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.updateStatusAvailable", - "start": { - "column": 25, - "line": 68 - } - }, - { - "defaultMessage": "!!!You are using the latest version of Franz", - "end": { - "column": 3, - "line": 75 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.updateStatusUpToDate", - "start": { - "column": 24, - "line": 72 - } - }, - { - "defaultMessage": "!!!Current version:", - "end": { - "column": 3, - "line": 79 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.currentVersion", - "start": { - "column": 18, - "line": 76 - } - }, - { - "defaultMessage": "!!!Changes require restart", - "end": { - "column": 3, - "line": 83 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.restartRequired", - "start": { - "column": 29, - "line": 80 - } - } - ], - "path": "src/components/settings/settings/EditSettingsForm.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Account", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/components/settings/user/EditUserForm.js", - "id": "settings.account.headline", - "start": { - "column": 12, - "line": 15 - } - }, - { - "defaultMessage": "!!!Update Profile", - "end": { - "column": 3, - "line": 22 - }, - "file": "src/components/settings/user/EditUserForm.js", - "id": "settings.account.headlineProfile", - "start": { - "column": 19, - "line": 19 - } - }, - { - "defaultMessage": "!!!Account Information", - "end": { - "column": 3, - "line": 26 - }, - "file": "src/components/settings/user/EditUserForm.js", - "id": "settings.account.headlineAccount", - "start": { - "column": 19, - "line": 23 - } - }, - { - "defaultMessage": "!!!Change Password", - "end": { - "column": 3, - "line": 30 - }, - "file": "src/components/settings/user/EditUserForm.js", - "id": "settings.account.headlinePassword", - "start": { - "column": 20, - "line": 27 - } - }, - { - "defaultMessage": "!!!Your changes have been saved", - "end": { - "column": 3, - "line": 34 - }, - "file": "src/components/settings/user/EditUserForm.js", - "id": "settings.account.successInfo", - "start": { - "column": 15, - "line": 31 - } - }, - { - "defaultMessage": "!!!Update profile", - "end": { - "column": 3, - "line": 38 - }, - "file": "src/components/settings/user/EditUserForm.js", - "id": "settings.account.buttonSave", - "start": { - "column": 14, - "line": 35 - } - } - ], - "path": "src/components/settings/user/EditUserForm.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Support the development of Franz", - "end": { - "column": 3, - "line": 17 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.submit.label", - "start": { - "column": 21, - "line": 14 - } - }, - { - "defaultMessage": "!!!Could not initialize payment form", - "end": { - "column": 3, - "line": 21 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.paymentSessionError", - "start": { - "column": 23, - "line": 18 - } - }, - { - "defaultMessage": "!!!free", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.type.free", - "start": { - "column": 12, - "line": 22 - } - }, - { - "defaultMessage": "!!!month", - "end": { - "column": 3, - "line": 29 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.type.month", - "start": { - "column": 15, - "line": 26 - } - }, - { - "defaultMessage": "!!!year", - "end": { - "column": 3, - "line": 33 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.type.year", - "start": { - "column": 14, - "line": 30 - } - }, - { - "defaultMessage": "!!!The Franz Premium Supporter Account includes", - "end": { - "column": 3, - "line": 37 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.includedFeatures", - "start": { - "column": 20, - "line": 34 - } - }, - { - "defaultMessage": "!!!Add on-premise/hosted services like Mattermost", - "end": { - "column": 3, - "line": 41 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.features.onpremise.mattermost", - "start": { - "column": 13, - "line": 38 - } - }, - { - "defaultMessage": "!!!No app delays & nagging to upgrade license", - "end": { - "column": 3, - "line": 45 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.features.noInterruptions", - "start": { - "column": 19, - "line": 42 - } - }, - { - "defaultMessage": "!!!Proxy support for services", - "end": { - "column": 3, - "line": 49 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.features.proxy", - "start": { - "column": 9, - "line": 46 - } - }, - { - "defaultMessage": "!!!Support for Spellchecker", - "end": { - "column": 3, - "line": 53 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.features.spellchecker", - "start": { - "column": 16, - "line": 50 - } - }, - { - "defaultMessage": "!!!No ads, ever!", - "end": { - "column": 3, - "line": 57 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.features.ads", - "start": { - "column": 7, - "line": 54 - } - }, - { - "defaultMessage": "!!!coming soon", - "end": { - "column": 3, - "line": 61 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.features.comingSoon", - "start": { - "column": 14, - "line": 58 - } - }, - { - "defaultMessage": "!!!EU residents: local sales tax may apply", - "end": { - "column": 3, - "line": 65 - }, - "file": "src/components/subscription/SubscriptionForm.js", - "id": "subscription.euTaxInfo", - "start": { - "column": 13, - "line": 62 - } - } - ], - "path": "src/components/subscription/SubscriptionForm.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Cancel", - "end": { - "column": 3, - "line": 14 - }, - "file": "src/components/subscription/SubscriptionPopup.js", - "id": "subscriptionPopup.buttonCancel", - "start": { - "column": 16, - "line": 11 - } - }, - { - "defaultMessage": "!!!Done", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/components/subscription/SubscriptionPopup.js", - "id": "subscriptionPopup.buttonDone", - "start": { - "column": 14, - "line": 15 - } - } - ], - "path": "src/components/subscription/SubscriptionPopup.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Upgrade account", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/components/ui/PremiumFeatureContainer/index.js", - "id": "premiumFeature.button.upgradeAccount", - "start": { - "column": 10, - "line": 15 - } - } - ], - "path": "src/components/ui/PremiumFeatureContainer/index.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Loading", - "end": { - "column": 3, - "line": 14 - }, - "file": "src/components/ui/WebviewLoader/index.js", - "id": "service.webviewLoader.loading", - "start": { - "column": 11, - "line": 11 - } - } - ], - "path": "src/components/ui/WebviewLoader/index.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Something went wrong.", - "end": { - "column": 3, - "line": 14 - }, - "file": "src/components/util/ErrorBoundary/index.js", - "id": "app.errorHandler.headline", - "start": { - "column": 12, - "line": 11 - } - }, - { - "defaultMessage": "!!!Reload", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/components/util/ErrorBoundary/index.js", - "id": "app.errorHandler.action", - "start": { - "column": 10, - "line": 15 - } - } - ], - "path": "src/components/util/ErrorBoundary/index.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Name", - "end": { - "column": 3, - "line": 31 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.name", - "start": { - "column": 8, - "line": 28 - } - }, - { - "defaultMessage": "!!!Enable service", - "end": { - "column": 3, - "line": 35 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.enableService", - "start": { - "column": 17, - "line": 32 - } - }, - { - "defaultMessage": "!!!Enable Notifications", - "end": { - "column": 3, - "line": 39 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.enableNotification", - "start": { - "column": 22, - "line": 36 - } - }, - { - "defaultMessage": "!!!Show unread message badges", - "end": { - "column": 3, - "line": 43 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.enableBadge", - "start": { - "column": 15, - "line": 40 - } - }, - { - "defaultMessage": "!!!Enable audio", - "end": { - "column": 3, - "line": 47 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.enableAudio", - "start": { - "column": 15, - "line": 44 - } - }, - { - "defaultMessage": "!!!Team", - "end": { - "column": 3, - "line": 51 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.team", - "start": { - "column": 8, - "line": 48 - } - }, - { - "defaultMessage": "!!!Custom server", - "end": { - "column": 3, - "line": 55 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.customUrl", - "start": { - "column": 13, - "line": 52 - } - }, - { - "defaultMessage": "!!!Show message badge for all new messages", - "end": { - "column": 3, - "line": 59 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.indirectMessages", - "start": { - "column": 20, - "line": 56 - } - }, - { - "defaultMessage": "!!!Custom icon", - "end": { - "column": 3, - "line": 63 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.icon", - "start": { - "column": 8, - "line": 60 - } - }, - { - "defaultMessage": "!!!Enable Dark Mode", - "end": { - "column": 3, - "line": 67 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.enableDarkMode", - "start": { - "column": 18, - "line": 64 - } - }, - { - "defaultMessage": "!!!Use Proxy", - "end": { - "column": 3, - "line": 71 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.proxy.isEnabled", - "start": { - "column": 15, - "line": 68 - } - }, - { - "defaultMessage": "!!!Proxy Host/IP", - "end": { - "column": 3, - "line": 75 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.proxy.host", - "start": { - "column": 13, - "line": 72 - } - }, - { - "defaultMessage": "!!!Port", - "end": { - "column": 3, - "line": 79 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.proxy.port", - "start": { - "column": 13, - "line": 76 - } - }, - { - "defaultMessage": "!!!User", - "end": { - "column": 3, - "line": 83 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.proxy.user", - "start": { - "column": 13, - "line": 80 - } - }, - { - "defaultMessage": "!!!Password", - "end": { - "column": 3, - "line": 87 - }, - "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.proxy.password", - "start": { - "column": 17, - "line": 84 - } - } - ], - "path": "src/containers/settings/EditServiceScreen.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Launch Franz on start", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.autoLaunchOnStart", - "start": { - "column": 21, - "line": 22 - } - }, - { - "defaultMessage": "!!!Open in background", - "end": { - "column": 3, - "line": 29 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.autoLaunchInBackground", - "start": { - "column": 26, - "line": 26 - } - }, - { - "defaultMessage": "!!!Keep Franz in background when closing the window", - "end": { - "column": 3, - "line": 33 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.runInBackground", - "start": { - "column": 19, - "line": 30 - } - }, - { - "defaultMessage": "!!!Show Franz in system tray", - "end": { - "column": 3, - "line": 37 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.enableSystemTray", - "start": { - "column": 20, - "line": 34 - } - }, - { - "defaultMessage": "!!!Minimize Franz to system tray", - "end": { - "column": 3, - "line": 41 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.minimizeToSystemTray", - "start": { - "column": 24, - "line": 38 - } - }, - { - "defaultMessage": "!!!Language", - "end": { - "column": 3, - "line": 45 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.language", - "start": { - "column": 12, - "line": 42 - } - }, - { - "defaultMessage": "!!!Dark Mode", - "end": { - "column": 3, - "line": 49 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.darkMode", - "start": { - "column": 12, - "line": 46 - } - }, - { - "defaultMessage": "!!!Display disabled services tabs", - "end": { - "column": 3, - "line": 53 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.showDisabledServices", - "start": { - "column": 24, - "line": 50 - } - }, - { - "defaultMessage": "!!!Show unread message badge when notifications are disabled", - "end": { - "column": 3, - "line": 57 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.showMessagesBadgesWhenMuted", - "start": { - "column": 29, - "line": 54 - } - }, - { - "defaultMessage": "!!!Enable spell checking", - "end": { - "column": 3, - "line": 61 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.enableSpellchecking", - "start": { - "column": 23, - "line": 58 - } - }, - { - "defaultMessage": "!!!Enable GPU Acceleration", - "end": { - "column": 3, - "line": 65 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.enableGPUAcceleration", - "start": { - "column": 25, - "line": 62 - } - }, - { - "defaultMessage": "!!!Include beta versions", - "end": { - "column": 3, - "line": 69 - }, - "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.beta", - "start": { - "column": 8, - "line": 66 - } - } - ], - "path": "src/containers/settings/EditSettingsScreen.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Firstname", - "end": { - "column": 3, - "line": 17 - }, - "file": "src/containers/settings/EditUserScreen.js", - "id": "settings.user.form.firstname", - "start": { - "column": 13, - "line": 14 - } - }, - { - "defaultMessage": "!!!Lastname", - "end": { - "column": 3, - "line": 21 - }, - "file": "src/containers/settings/EditUserScreen.js", - "id": "settings.user.form.lastname", - "start": { - "column": 12, - "line": 18 - } - }, - { - "defaultMessage": "!!!Email", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/containers/settings/EditUserScreen.js", - "id": "settings.user.form.email", - "start": { - "column": 9, - "line": 22 - } - }, - { - "defaultMessage": "!!!Account type", - "end": { - "column": 3, - "line": 29 - }, - "file": "src/containers/settings/EditUserScreen.js", - "id": "settings.user.form.accountType.label", - "start": { - "column": 20, - "line": 26 - } - }, - { - "defaultMessage": "!!!Individual", - "end": { - "column": 3, - "line": 33 - }, - "file": "src/containers/settings/EditUserScreen.js", - "id": "settings.user.form.accountType.individual", - "start": { - "column": 25, - "line": 30 - } - }, - { - "defaultMessage": "!!!Non-Profit", - "end": { - "column": 3, - "line": 37 - }, - "file": "src/containers/settings/EditUserScreen.js", - "id": "settings.user.form.accountType.non-profit", - "start": { - "column": 24, - "line": 34 - } - }, - { - "defaultMessage": "!!!Company", - "end": { - "column": 3, - "line": 41 - }, - "file": "src/containers/settings/EditUserScreen.js", - "id": "settings.user.form.accountType.company", - "start": { - "column": 22, - "line": 38 - } - }, - { - "defaultMessage": "!!!Current password", - "end": { - "column": 3, - "line": 45 - }, - "file": "src/containers/settings/EditUserScreen.js", - "id": "settings.user.form.currentPassword", - "start": { - "column": 19, - "line": 42 - } - }, - { - "defaultMessage": "!!!New password", - "end": { - "column": 3, - "line": 49 - }, - "file": "src/containers/settings/EditUserScreen.js", - "id": "settings.user.form.newPassword", - "start": { - "column": 15, - "line": 46 - } - } - ], - "path": "src/containers/settings/EditUserScreen.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!What's new in Franz {version}?", - "end": { - "column": 3, - "line": 14 - }, - "file": "src/features/announcements/Component.js", - "id": "feature.announcements.changelog.headline", - "start": { - "column": 12, - "line": 11 - } - } - ], - "path": "src/features/announcements/Component.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Changes in Franz {version}", - "end": { - "column": 3, - "line": 23 - }, - "file": "src/features/announcements/components/AnnouncementScreen.js", - "id": "feature.announcements.changelog.headline", - "start": { - "column": 12, - "line": 20 - } - } - ], - "path": "src/features/announcements/components/AnnouncementScreen.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Please purchase license to skip waiting", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/features/delayApp/Component.js", - "id": "feature.delayApp.headline", - "start": { - "column": 12, - "line": 15 - } - }, - { - "defaultMessage": "!!!Get a Franz Supporter License", - "end": { - "column": 3, - "line": 22 - }, - "file": "src/features/delayApp/Component.js", - "id": "feature.delayApp.action", - "start": { - "column": 10, - "line": 19 - } - }, - { - "defaultMessage": "!!!Franz will continue in {seconds} seconds.", - "end": { - "column": 3, - "line": 26 - }, - "file": "src/features/delayApp/Component.js", - "id": "feature.delayApp.text", - "start": { - "column": 8, - "line": 23 - } - } - ], - "path": "src/features/delayApp/Component.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Franz is better together!", - "end": { - "column": 3, - "line": 18 - }, - "file": "src/features/shareFranz/Component.js", - "id": "feature.shareFranz.headline", - "start": { - "column": 12, - "line": 15 - } - }, - { - "defaultMessage": "!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.", - "end": { - "column": 3, - "line": 22 - }, - "file": "src/features/shareFranz/Component.js", - "id": "feature.shareFranz.text", - "start": { - "column": 8, - "line": 19 - } - }, - { - "defaultMessage": "!!!Share as email", - "end": { - "column": 3, - "line": 26 - }, - "file": "src/features/shareFranz/Component.js", - "id": "feature.shareFranz.action.email", - "start": { - "column": 16, - "line": 23 - } - }, - { - "defaultMessage": "!!!Share on Facebook", - "end": { - "column": 3, - "line": 30 - }, - "file": "src/features/shareFranz/Component.js", - "id": "feature.shareFranz.action.facebook", - "start": { - "column": 19, - "line": 27 - } - }, - { - "defaultMessage": "!!!Share on Twitter", - "end": { - "column": 3, - "line": 34 - }, - "file": "src/features/shareFranz/Component.js", - "id": "feature.shareFranz.action.twitter", - "start": { - "column": 18, - "line": 31 - } - }, - { - "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", - "end": { - "column": 3, - "line": 38 - }, - "file": "src/features/shareFranz/Component.js", - "id": "feature.shareFranz.shareText.email", - "start": { - "column": 18, - "line": 35 - } - }, - { - "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @FranzMessenger", - "end": { - "column": 3, - "line": 42 - }, - "file": "src/features/shareFranz/Component.js", - "id": "feature.shareFranz.shareText.twitter", - "start": { - "column": 20, - "line": 39 - } - } - ], - "path": "src/features/shareFranz/Component.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Create workspace", - "end": { - "column": 3, - "line": 16 - }, - "file": "src/features/workspaces/components/CreateWorkspaceForm.js", - "id": "settings.workspace.add.form.submitButton", - "start": { - "column": 16, - "line": 13 - } - }, - { - "defaultMessage": "!!!Name", - "end": { - "column": 3, - "line": 20 - }, - "file": "src/features/workspaces/components/CreateWorkspaceForm.js", - "id": "settings.workspace.add.form.name", - "start": { - "column": 8, - "line": 17 - } - } - ], - "path": "src/features/workspaces/components/CreateWorkspaceForm.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Delete workspace", - "end": { - "column": 3, - "line": 22 - }, - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "id": "settings.workspace.form.buttonDelete", - "start": { - "column": 16, - "line": 19 - } - }, - { - "defaultMessage": "!!!Save workspace", - "end": { - "column": 3, - "line": 26 - }, - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "id": "settings.workspace.form.buttonSave", - "start": { - "column": 14, - "line": 23 - } - }, - { - "defaultMessage": "!!!Name", - "end": { - "column": 3, - "line": 30 - }, - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "id": "settings.workspace.form.name", - "start": { - "column": 8, - "line": 27 - } - }, - { - "defaultMessage": "!!!Your workspaces", - "end": { - "column": 3, - "line": 34 - }, - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "id": "settings.workspace.form.yourWorkspaces", - "start": { - "column": 18, - "line": 31 - } - }, - { - "defaultMessage": "!!!Services in this Workspace", - "end": { - "column": 3, - "line": 38 - }, - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "id": "settings.workspace.form.servicesInWorkspaceHeadline", - "start": { - "column": 31, - "line": 35 - } - } - ], - "path": "src/features/workspaces/components/EditWorkspaceForm.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Workspaces", - "end": { - "column": 3, - "line": 19 - }, - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "id": "workspaceDrawer.headline", - "start": { - "column": 12, - "line": 16 - } - }, - { - "defaultMessage": "!!!All services", - "end": { - "column": 3, - "line": 23 - }, - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "id": "workspaceDrawer.allServices", - "start": { - "column": 15, - "line": 20 - } - }, - { - "defaultMessage": "!!!Workspaces settings", - "end": { - "column": 3, - "line": 27 - }, - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "id": "workspaceDrawer.workspacesSettingsTooltip", - "start": { - "column": 29, - "line": 24 - } - }, - { - "defaultMessage": "!!!Info about workspace feature", - "end": { - "column": 3, - "line": 31 - }, - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "id": "workspaceDrawer.workspaceFeatureInfo", - "start": { - "column": 24, - "line": 28 - } - }, - { - "defaultMessage": "!!!Create your first workspace", - "end": { - "column": 3, - "line": 35 - }, - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "id": "workspaceDrawer.premiumCtaButtonLabel", - "start": { - "column": 25, - "line": 32 - } - }, - { - "defaultMessage": "!!!Reactivate premium account", - "end": { - "column": 3, - "line": 39 - }, - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "id": "workspaceDrawer.reactivatePremiumAccountLabel", - "start": { - "column": 28, - "line": 36 - } - }, - { - "defaultMessage": "!!!add new workspace", - "end": { - "column": 3, - "line": 43 - }, - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "id": "workspaceDrawer.addNewWorkspaceLabel", - "start": { - "column": 24, - "line": 40 - } - }, - { - "defaultMessage": "!!!Premium feature", - "end": { - "column": 3, - "line": 47 - }, - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "id": "workspaceDrawer.proFeatureBadge", - "start": { - "column": 23, - "line": 44 - } - } - ], - "path": "src/features/workspaces/components/WorkspaceDrawer.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!No services added yet", - "end": { - "column": 3, - "line": 15 - }, - "file": "src/features/workspaces/components/WorkspaceDrawerItem.js", - "id": "workspaceDrawer.item.noServicesAddedYet", - "start": { - "column": 22, - "line": 12 - } - }, - { - "defaultMessage": "!!!edit", - "end": { - "column": 3, - "line": 19 - }, - "file": "src/features/workspaces/components/WorkspaceDrawerItem.js", - "id": "workspaceDrawer.item.contextMenuEdit", - "start": { - "column": 19, - "line": 16 - } - } - ], - "path": "src/features/workspaces/components/WorkspaceDrawerItem.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Your workspaces", - "end": { - "column": 3, - "line": 20 - }, - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "id": "settings.workspaces.headline", - "start": { - "column": 12, - "line": 17 - } - }, - { - "defaultMessage": "!!!You haven't added any workspaces yet.", - "end": { - "column": 3, - "line": 24 - }, - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "id": "settings.workspaces.noWorkspacesAdded", - "start": { - "column": 19, - "line": 21 - } - }, - { - "defaultMessage": "!!!Could not load your workspaces", - "end": { - "column": 3, - "line": 28 - }, - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "id": "settings.workspaces.workspacesRequestFailed", - "start": { - "column": 27, - "line": 25 - } - }, - { - "defaultMessage": "!!!Try again", - "end": { - "column": 3, - "line": 32 - }, - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "id": "settings.workspaces.tryReloadWorkspaces", - "start": { - "column": 23, - "line": 29 - } - }, - { - "defaultMessage": "!!!Your changes have been saved", - "end": { - "column": 3, - "line": 36 - }, - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "id": "settings.workspaces.updatedInfo", - "start": { - "column": 15, - "line": 33 - } - }, - { - "defaultMessage": "!!!Workspace has been deleted", - "end": { - "column": 3, - "line": 40 - }, - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "id": "settings.workspaces.deletedInfo", - "start": { - "column": 15, - "line": 37 - } - }, - { - "defaultMessage": "!!!Info about workspace feature", - "end": { - "column": 3, - "line": 44 - }, - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "id": "settings.workspaces.workspaceFeatureInfo", - "start": { - "column": 24, - "line": 41 - } - }, - { - "defaultMessage": "!!!Less is More: Introducing Franz Workspaces", - "end": { - "column": 3, - "line": 48 - }, - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "id": "settings.workspaces.workspaceFeatureHeadline", - "start": { - "column": 28, - "line": 45 - } - } - ], - "path": "src/features/workspaces/components/WorkspacesDashboard.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Switching to", - "end": { - "column": 3, - "line": 15 - }, - "file": "src/features/workspaces/components/WorkspaceSwitchingIndicator.js", - "id": "workspaces.switchingIndicator.switchingTo", - "start": { - "column": 15, - "line": 12 - } - } - ], - "path": "src/features/workspaces/components/WorkspaceSwitchingIndicator.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Field is required", - "end": { - "column": 3, - "line": 7 - }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.required", - "start": { - "column": 12, - "line": 4 - } - }, - { - "defaultMessage": "!!!Email not valid", - "end": { - "column": 3, - "line": 11 - }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.email", - "start": { - "column": 9, - "line": 8 - } - }, - { - "defaultMessage": "!!!Not a valid URL", - "end": { - "column": 3, - "line": 15 - }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.url", - "start": { - "column": 7, - "line": 12 - } - }, - { - "defaultMessage": "!!!Too few characters", - "end": { - "column": 3, - "line": 19 - }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.minLength", - "start": { - "column": 13, - "line": 16 - } - }, - { - "defaultMessage": "!!!At least one is required", - "end": { - "column": 3, - "line": 23 - }, - "file": "src/helpers/validation-helpers.js", - "id": "validation.oneRequired", - "start": { - "column": 15, - "line": 20 - } - } - ], - "path": "src/helpers/validation-helpers.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Can't connect to Franz Online Services", - "end": { - "column": 3, - "line": 7 - }, - "file": "src/i18n/globalMessages.js", - "id": "global.api.unhealthy", - "start": { - "column": 16, - "line": 4 - } - }, - { - "defaultMessage": "!!!You are not connected to the internet.", - "end": { - "column": 3, - "line": 11 - }, - "file": "src/i18n/globalMessages.js", - "id": "global.notConnectedToTheInternet", - "start": { - "column": 29, - "line": 8 - } - }, - { - "defaultMessage": "!!!Spell checking language", - "end": { - "column": 3, - "line": 15 - }, - "file": "src/i18n/globalMessages.js", - "id": "global.spellchecking.language", - "start": { - "column": 24, - "line": 12 - } - }, - { - "defaultMessage": "!!!Use System Default ({default})", - "end": { - "column": 3, - "line": 19 - }, - "file": "src/i18n/globalMessages.js", - "id": "global.spellchecker.useDefault", - "start": { - "column": 29, - "line": 16 - } - }, - { - "defaultMessage": "!!!Detect language automatically", - "end": { - "column": 3, - "line": 23 - }, - "file": "src/i18n/globalMessages.js", - "id": "global.spellchecking.autodetect", - "start": { - "column": 34, - "line": 20 - } - }, - { - "defaultMessage": "!!!Automatic", - "end": { - "column": 3, - "line": 27 - }, - "file": "src/i18n/globalMessages.js", - "id": "global.spellchecking.autodetect.short", - "start": { - "column": 39, - "line": 24 - } - } - ], - "path": "src/i18n/globalMessages.json" - }, - { - "descriptors": [ - { - "defaultMessage": "!!!Edit", - "end": { - "column": 3, - "line": 17 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit", - "start": { - "column": 8, - "line": 14 - } - }, - { - "defaultMessage": "!!!Undo", - "end": { - "column": 3, - "line": 21 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.undo", - "start": { - "column": 8, - "line": 18 - } - }, - { - "defaultMessage": "!!!Redo", - "end": { - "column": 3, - "line": 25 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.redo", - "start": { - "column": 8, - "line": 22 - } - }, - { - "defaultMessage": "!!!Cut", - "end": { - "column": 3, - "line": 29 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.cut", - "start": { - "column": 7, - "line": 26 - } - }, - { - "defaultMessage": "!!!Copy", - "end": { - "column": 3, - "line": 33 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.copy", - "start": { - "column": 8, - "line": 30 - } - }, - { - "defaultMessage": "!!!Paste", - "end": { - "column": 3, - "line": 37 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.paste", - "start": { - "column": 9, - "line": 34 - } - }, - { - "defaultMessage": "!!!Paste And Match Style", - "end": { - "column": 3, - "line": 41 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.pasteAndMatchStyle", - "start": { - "column": 22, - "line": 38 - } - }, - { - "defaultMessage": "!!!Delete", - "end": { - "column": 3, - "line": 45 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.delete", - "start": { - "column": 10, - "line": 42 - } - }, - { - "defaultMessage": "!!!Select All", - "end": { - "column": 3, - "line": 49 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.selectAll", - "start": { - "column": 13, - "line": 46 - } - }, - { - "defaultMessage": "!!!Speech", - "end": { - "column": 3, - "line": 53 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.speech", - "start": { - "column": 10, - "line": 50 - } - }, - { - "defaultMessage": "!!!Start Speaking", - "end": { - "column": 3, - "line": 57 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.startSpeaking", - "start": { - "column": 17, - "line": 54 - } - }, - { - "defaultMessage": "!!!Stop Speaking", - "end": { - "column": 3, - "line": 61 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.stopSpeaking", - "start": { - "column": 16, - "line": 58 - } - }, - { - "defaultMessage": "!!!Start Dictation", - "end": { - "column": 3, - "line": 65 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.startDictation", - "start": { - "column": 18, - "line": 62 - } - }, - { - "defaultMessage": "!!!Emoji & Symbols", - "end": { - "column": 3, - "line": 69 - }, - "file": "src/lib/Menu.js", - "id": "menu.edit.emojiSymbols", - "start": { - "column": 16, - "line": 66 - } - }, - { - "defaultMessage": "!!!Actual Size", - "end": { - "column": 3, - "line": 73 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.resetZoom", - "start": { - "column": 13, - "line": 70 - } - }, - { - "defaultMessage": "!!!Zoom In", - "end": { - "column": 3, - "line": 77 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.zoomIn", - "start": { - "column": 10, - "line": 74 - } - }, - { - "defaultMessage": "!!!Zoom Out", - "end": { - "column": 3, - "line": 81 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.zoomOut", - "start": { - "column": 11, - "line": 78 - } - }, - { - "defaultMessage": "!!!Enter Full Screen", - "end": { - "column": 3, - "line": 85 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.enterFullScreen", - "start": { - "column": 19, - "line": 82 - } - }, - { - "defaultMessage": "!!!Exit Full Screen", - "end": { - "column": 3, - "line": 89 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.exitFullScreen", - "start": { - "column": 18, - "line": 86 - } - }, - { - "defaultMessage": "!!!Toggle Full Screen", - "end": { - "column": 3, - "line": 93 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.toggleFullScreen", - "start": { - "column": 20, - "line": 90 - } - }, - { - "defaultMessage": "!!!Toggle Developer Tools", - "end": { - "column": 3, - "line": 97 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.toggleDevTools", - "start": { - "column": 18, - "line": 94 - } - }, - { - "defaultMessage": "!!!Toggle Service Developer Tools", - "end": { - "column": 3, - "line": 101 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.toggleServiceDevTools", - "start": { - "column": 25, - "line": 98 - } - }, - { - "defaultMessage": "!!!Reload Service", - "end": { - "column": 3, - "line": 105 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.reloadService", - "start": { - "column": 17, - "line": 102 - } - }, - { - "defaultMessage": "!!!Reload Franz", - "end": { - "column": 3, - "line": 109 - }, - "file": "src/lib/Menu.js", - "id": "menu.view.reloadFranz", - "start": { - "column": 15, - "line": 106 - } - }, - { - "defaultMessage": "!!!Minimize", - "end": { - "column": 3, - "line": 113 - }, - "file": "src/lib/Menu.js", - "id": "menu.window.minimize", - "start": { - "column": 12, - "line": 110 - } - }, - { - "defaultMessage": "!!!Close", - "end": { - "column": 3, - "line": 117 - }, - "file": "src/lib/Menu.js", - "id": "menu.window.close", - "start": { - "column": 9, - "line": 114 - } - }, - { - "defaultMessage": "!!!Learn More", - "end": { - "column": 3, - "line": 121 - }, - "file": "src/lib/Menu.js", - "id": "menu.help.learnMore", - "start": { - "column": 13, - "line": 118 - } - }, - { - "defaultMessage": "!!!Changelog", - "end": { - "column": 3, - "line": 125 - }, - "file": "src/lib/Menu.js", - "id": "menu.help.changelog", - "start": { - "column": 13, - "line": 122 - } - }, - { - "defaultMessage": "!!!Support", - "end": { - "column": 3, - "line": 129 - }, - "file": "src/lib/Menu.js", - "id": "menu.help.support", - "start": { - "column": 11, - "line": 126 - } - }, - { - "defaultMessage": "!!!Terms of Service", - "end": { - "column": 3, - "line": 133 - }, - "file": "src/lib/Menu.js", - "id": "menu.help.tos", - "start": { - "column": 7, - "line": 130 - } - }, - { - "defaultMessage": "!!!Privacy Statement", - "end": { - "column": 3, - "line": 137 - }, - "file": "src/lib/Menu.js", - "id": "menu.help.privacy", - "start": { - "column": 11, - "line": 134 - } - }, - { - "defaultMessage": "!!!File", - "end": { - "column": 3, - "line": 141 - }, - "file": "src/lib/Menu.js", - "id": "menu.file", - "start": { - "column": 8, - "line": 138 - } - }, - { - "defaultMessage": "!!!View", - "end": { - "column": 3, - "line": 145 - }, - "file": "src/lib/Menu.js", - "id": "menu.view", - "start": { - "column": 8, - "line": 142 - } - }, - { - "defaultMessage": "!!!Services", - "end": { - "column": 3, - "line": 149 - }, - "file": "src/lib/Menu.js", - "id": "menu.services", - "start": { - "column": 12, - "line": 146 - } - }, - { - "defaultMessage": "!!!Window", - "end": { - "column": 3, - "line": 153 - }, - "file": "src/lib/Menu.js", - "id": "menu.window", - "start": { - "column": 10, - "line": 150 - } - }, - { - "defaultMessage": "!!!Help", - "end": { - "column": 3, - "line": 157 - }, - "file": "src/lib/Menu.js", - "id": "menu.help", - "start": { - "column": 8, - "line": 154 - } - }, - { - "defaultMessage": "!!!About Franz", - "end": { - "column": 3, - "line": 161 - }, - "file": "src/lib/Menu.js", - "id": "menu.app.about", - "start": { - "column": 9, - "line": 158 - } - }, - { - "defaultMessage": "!!!What's new?", - "end": { - "column": 3, - "line": 165 - }, - "file": "src/lib/Menu.js", - "id": "menu.app.announcement", - "start": { - "column": 16, - "line": 162 - } - }, - { - "defaultMessage": "!!!Settings", - "end": { - "column": 3, - "line": 169 - }, - "file": "src/lib/Menu.js", - "id": "menu.app.settings", - "start": { - "column": 12, - "line": 166 - } - }, - { - "defaultMessage": "!!!Hide", - "end": { - "column": 3, - "line": 173 - }, - "file": "src/lib/Menu.js", - "id": "menu.app.hide", - "start": { - "column": 8, - "line": 170 - } - }, - { - "defaultMessage": "!!!Hide Others", - "end": { - "column": 3, - "line": 177 - }, - "file": "src/lib/Menu.js", - "id": "menu.app.hideOthers", - "start": { - "column": 14, - "line": 174 - } - }, - { - "defaultMessage": "!!!Unhide", - "end": { - "column": 3, - "line": 181 - }, - "file": "src/lib/Menu.js", - "id": "menu.app.unhide", - "start": { - "column": 10, - "line": 178 - } - }, - { - "defaultMessage": "!!!Quit", - "end": { - "column": 3, - "line": 185 - }, - "file": "src/lib/Menu.js", - "id": "menu.app.quit", - "start": { - "column": 8, - "line": 182 - } - }, - { - "defaultMessage": "!!!Add New Service...", - "end": { - "column": 3, - "line": 189 - }, - "file": "src/lib/Menu.js", - "id": "menu.services.addNewService", - "start": { - "column": 17, - "line": 186 - } - }, - { - "defaultMessage": "!!!Add New Workspace...", - "end": { - "column": 3, - "line": 193 - }, - "file": "src/lib/Menu.js", - "id": "menu.workspaces.addNewWorkspace", - "start": { - "column": 19, - "line": 190 - } - }, - { - "defaultMessage": "!!!Open workspace drawer", - "end": { - "column": 3, - "line": 197 - }, - "file": "src/lib/Menu.js", - "id": "menu.workspaces.openWorkspaceDrawer", - "start": { - "column": 23, - "line": 194 - } - }, - { - "defaultMessage": "!!!Close workspace drawer", - "end": { - "column": 3, - "line": 201 - }, - "file": "src/lib/Menu.js", - "id": "menu.workspaces.closeWorkspaceDrawer", - "start": { - "column": 24, - "line": 198 - } - }, - { - "defaultMessage": "!!!Activate next service...", - "end": { - "column": 3, - "line": 205 - }, - "file": "src/lib/Menu.js", - "id": "menu.services.setNextServiceActive", - "start": { - "column": 23, - "line": 202 - } - }, - { - "defaultMessage": "!!!Activate previous service...", - "end": { - "column": 3, - "line": 209 - }, - "file": "src/lib/Menu.js", - "id": "menu.services.activatePreviousService", - "start": { - "column": 27, - "line": 206 - } - }, - { - "defaultMessage": "!!!Disable notifications & audio", - "end": { - "column": 3, - "line": 213 - }, - "file": "src/lib/Menu.js", - "id": "sidebar.muteApp", - "start": { - "column": 11, - "line": 210 - } - }, - { - "defaultMessage": "!!!Enable notifications & audio", - "end": { - "column": 3, - "line": 217 - }, - "file": "src/lib/Menu.js", - "id": "sidebar.unmuteApp", - "start": { - "column": 13, - "line": 214 - } - }, - { - "defaultMessage": "!!!Workspaces", - "end": { - "column": 3, - "line": 221 - }, - "file": "src/lib/Menu.js", - "id": "menu.workspaces", - "start": { - "column": 14, - "line": 218 - } - }, - { - "defaultMessage": "!!!Default", - "end": { - "column": 3, - "line": 225 - }, - "file": "src/lib/Menu.js", - "id": "menu.workspaces.defaultWorkspace", - "start": { - "column": 20, - "line": 222 - } - } - ], - "path": "src/lib/Menu.json" - } -] \ No newline at end of file diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 07602e61f..70b869557 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -164,6 +164,7 @@ "settings.app.headlineGeneral": "General", "settings.app.headlineLanguage": "Language", "settings.app.headlineUpdates": "Updates", + "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", "settings.app.restartRequired": "Changes require restart", "settings.app.subheadlineCache": "Cache", "settings.app.translationHelp": "Help us to translate Franz into your language.", @@ -319,4 +320,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/messages/src/components/auth/Import.json b/src/i18n/messages/src/components/auth/Import.json deleted file mode 100644 index 264fc729b..000000000 --- a/src/i18n/messages/src/components/auth/Import.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "id": "import.headline", - "defaultMessage": "!!!Import your Franz 4 services", - "file": "src/components/auth/Import.js", - "start": { - "line": 13, - "column": 12 - }, - "end": { - "line": 16, - "column": 3 - } - }, - { - "id": "import.notSupportedHeadline", - "defaultMessage": "!!!Services not yet supported in Franz 5", - "file": "src/components/auth/Import.js", - "start": { - "line": 17, - "column": 24 - }, - "end": { - "line": 20, - "column": 3 - } - }, - { - "id": "import.submit.label", - "defaultMessage": "!!!Import {count} services", - "file": "src/components/auth/Import.js", - "start": { - "line": 21, - "column": 21 - }, - "end": { - "line": 24, - "column": 3 - } - }, - { - "id": "import.skip.label", - "defaultMessage": "!!!I want to add services manually", - "file": "src/components/auth/Import.js", - "start": { - "line": 25, - "column": 19 - }, - "end": { - "line": 28, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Invite.json b/src/i18n/messages/src/components/auth/Invite.json deleted file mode 100644 index 57c9bddcf..000000000 --- a/src/i18n/messages/src/components/auth/Invite.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "id": "settings.invite.headline", - "defaultMessage": "!!!Invite Friends", - "file": "src/components/auth/Invite.js", - "start": { - "line": 16, - "column": 20 - }, - "end": { - "line": 19, - "column": 3 - } - }, - { - "id": "invite.headline.friends", - "defaultMessage": "!!!Invite 3 of your friends or colleagues", - "file": "src/components/auth/Invite.js", - "start": { - "line": 20, - "column": 12 - }, - "end": { - "line": 23, - "column": 3 - } - }, - { - "id": "invite.name.label", - "defaultMessage": "!!!Name", - "file": "src/components/auth/Invite.js", - "start": { - "line": 24, - "column": 13 - }, - "end": { - "line": 27, - "column": 3 - } - }, - { - "id": "invite.email.label", - "defaultMessage": "!!!Email address", - "file": "src/components/auth/Invite.js", - "start": { - "line": 28, - "column": 14 - }, - "end": { - "line": 31, - "column": 3 - } - }, - { - "id": "invite.submit.label", - "defaultMessage": "!!!Send invites", - "file": "src/components/auth/Invite.js", - "start": { - "line": 32, - "column": 21 - }, - "end": { - "line": 35, - "column": 3 - } - }, - { - "id": "invite.skip.label", - "defaultMessage": "!!!I want to do this later", - "file": "src/components/auth/Invite.js", - "start": { - "line": 36, - "column": 19 - }, - "end": { - "line": 39, - "column": 3 - } - }, - { - "id": "invite.successInfo", - "defaultMessage": "!!!Invitations sent successfully", - "file": "src/components/auth/Invite.js", - "start": { - "line": 40, - "column": 21 - }, - "end": { - "line": 43, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Login.json b/src/i18n/messages/src/components/auth/Login.json deleted file mode 100644 index 177f6000b..000000000 --- a/src/i18n/messages/src/components/auth/Login.json +++ /dev/null @@ -1,119 +0,0 @@ -[ - { - "id": "login.headline", - "defaultMessage": "!!!Sign in", - "file": "src/components/auth/Login.js", - "start": { - "line": 17, - "column": 12 - }, - "end": { - "line": 20, - "column": 3 - } - }, - { - "id": "login.email.label", - "defaultMessage": "!!!Email address", - "file": "src/components/auth/Login.js", - "start": { - "line": 21, - "column": 14 - }, - "end": { - "line": 24, - "column": 3 - } - }, - { - "id": "login.password.label", - "defaultMessage": "!!!Password", - "file": "src/components/auth/Login.js", - "start": { - "line": 25, - "column": 17 - }, - "end": { - "line": 28, - "column": 3 - } - }, - { - "id": "login.submit.label", - "defaultMessage": "!!!Sign in", - "file": "src/components/auth/Login.js", - "start": { - "line": 29, - "column": 21 - }, - "end": { - "line": 32, - "column": 3 - } - }, - { - "id": "login.invalidCredentials", - "defaultMessage": "!!!Email or password not valid", - "file": "src/components/auth/Login.js", - "start": { - "line": 33, - "column": 22 - }, - "end": { - "line": 36, - "column": 3 - } - }, - { - "id": "login.tokenExpired", - "defaultMessage": "!!!Your session expired, please login again.", - "file": "src/components/auth/Login.js", - "start": { - "line": 37, - "column": 16 - }, - "end": { - "line": 40, - "column": 3 - } - }, - { - "id": "login.serverLogout", - "defaultMessage": "!!!Your session expired, please login again.", - "file": "src/components/auth/Login.js", - "start": { - "line": 41, - "column": 16 - }, - "end": { - "line": 44, - "column": 3 - } - }, - { - "id": "login.link.signup", - "defaultMessage": "!!!Create a free account", - "file": "src/components/auth/Login.js", - "start": { - "line": 45, - "column": 14 - }, - "end": { - "line": 48, - "column": 3 - } - }, - { - "id": "login.link.password", - "defaultMessage": "!!!Forgot password", - "file": "src/components/auth/Login.js", - "start": { - "line": 49, - "column": 16 - }, - "end": { - "line": 52, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Password.json b/src/i18n/messages/src/components/auth/Password.json deleted file mode 100644 index f335b3acb..000000000 --- a/src/i18n/messages/src/components/auth/Password.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "id": "password.headline", - "defaultMessage": "!!!Forgot password", - "file": "src/components/auth/Password.js", - "start": { - "line": 14, - "column": 12 - }, - "end": { - "line": 17, - "column": 3 - } - }, - { - "id": "password.email.label", - "defaultMessage": "!!!Email address", - "file": "src/components/auth/Password.js", - "start": { - "line": 18, - "column": 14 - }, - "end": { - "line": 21, - "column": 3 - } - }, - { - "id": "password.submit.label", - "defaultMessage": "!!!Submit", - "file": "src/components/auth/Password.js", - "start": { - "line": 22, - "column": 21 - }, - "end": { - "line": 25, - "column": 3 - } - }, - { - "id": "password.successInfo", - "defaultMessage": "!!!Your new password was sent to your email address", - "file": "src/components/auth/Password.js", - "start": { - "line": 26, - "column": 15 - }, - "end": { - "line": 29, - "column": 3 - } - }, - { - "id": "password.noUser", - "defaultMessage": "!!!No user affiliated with that email address", - "file": "src/components/auth/Password.js", - "start": { - "line": 30, - "column": 10 - }, - "end": { - "line": 33, - "column": 3 - } - }, - { - "id": "password.link.signup", - "defaultMessage": "!!!Create a free account", - "file": "src/components/auth/Password.js", - "start": { - "line": 34, - "column": 14 - }, - "end": { - "line": 37, - "column": 3 - } - }, - { - "id": "password.link.login", - "defaultMessage": "!!!Sign in to your account", - "file": "src/components/auth/Password.js", - "start": { - "line": 38, - "column": 13 - }, - "end": { - "line": 41, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Pricing.json b/src/i18n/messages/src/components/auth/Pricing.json deleted file mode 100644 index f711a55b4..000000000 --- a/src/i18n/messages/src/components/auth/Pricing.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "id": "pricing.headline", - "defaultMessage": "!!!Support Franz", - "file": "src/components/auth/Pricing.js", - "start": { - "line": 13, - "column": 12 - }, - "end": { - "line": 16, - "column": 3 - } - }, - { - "id": "pricing.support.label", - "defaultMessage": "!!!Select your support plan", - "file": "src/components/auth/Pricing.js", - "start": { - "line": 17, - "column": 23 - }, - "end": { - "line": 20, - "column": 3 - } - }, - { - "id": "pricing.submit.label", - "defaultMessage": "!!!Support the development of Franz", - "file": "src/components/auth/Pricing.js", - "start": { - "line": 21, - "column": 21 - }, - "end": { - "line": 24, - "column": 3 - } - }, - { - "id": "pricing.link.skipPayment", - "defaultMessage": "!!!I don't want to support the development of Franz.", - "file": "src/components/auth/Pricing.js", - "start": { - "line": 25, - "column": 15 - }, - "end": { - "line": 28, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Signup.json b/src/i18n/messages/src/components/auth/Signup.json deleted file mode 100644 index a09745048..000000000 --- a/src/i18n/messages/src/components/auth/Signup.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "id": "signup.headline", - "defaultMessage": "!!!Sign up", - "file": "src/components/auth/Signup.js", - "start": { - "line": 18, - "column": 12 - }, - "end": { - "line": 21, - "column": 3 - } - }, - { - "id": "signup.firstname.label", - "defaultMessage": "!!!Firstname", - "file": "src/components/auth/Signup.js", - "start": { - "line": 22, - "column": 18 - }, - "end": { - "line": 25, - "column": 3 - } - }, - { - "id": "signup.lastname.label", - "defaultMessage": "!!!Lastname", - "file": "src/components/auth/Signup.js", - "start": { - "line": 26, - "column": 17 - }, - "end": { - "line": 29, - "column": 3 - } - }, - { - "id": "signup.email.label", - "defaultMessage": "!!!Email address", - "file": "src/components/auth/Signup.js", - "start": { - "line": 30, - "column": 14 - }, - "end": { - "line": 33, - "column": 3 - } - }, - { - "id": "signup.company.label", - "defaultMessage": "!!!Company", - "file": "src/components/auth/Signup.js", - "start": { - "line": 34, - "column": 16 - }, - "end": { - "line": 37, - "column": 3 - } - }, - { - "id": "signup.password.label", - "defaultMessage": "!!!Password", - "file": "src/components/auth/Signup.js", - "start": { - "line": 38, - "column": 17 - }, - "end": { - "line": 41, - "column": 3 - } - }, - { - "id": "signup.legal.info", - "defaultMessage": "!!!By creating a Franz account you accept the", - "file": "src/components/auth/Signup.js", - "start": { - "line": 42, - "column": 13 - }, - "end": { - "line": 45, - "column": 3 - } - }, - { - "id": "signup.legal.terms", - "defaultMessage": "!!!Terms of service", - "file": "src/components/auth/Signup.js", - "start": { - "line": 46, - "column": 9 - }, - "end": { - "line": 49, - "column": 3 - } - }, - { - "id": "signup.legal.privacy", - "defaultMessage": "!!!Privacy Statement", - "file": "src/components/auth/Signup.js", - "start": { - "line": 50, - "column": 11 - }, - "end": { - "line": 53, - "column": 3 - } - }, - { - "id": "signup.submit.label", - "defaultMessage": "!!!Create account", - "file": "src/components/auth/Signup.js", - "start": { - "line": 54, - "column": 21 - }, - "end": { - "line": 57, - "column": 3 - } - }, - { - "id": "signup.link.login", - "defaultMessage": "!!!Already have an account, sign in?", - "file": "src/components/auth/Signup.js", - "start": { - "line": 58, - "column": 13 - }, - "end": { - "line": 61, - "column": 3 - } - }, - { - "id": "signup.emailDuplicate", - "defaultMessage": "!!!A user with that email address already exists", - "file": "src/components/auth/Signup.js", - "start": { - "line": 62, - "column": 18 - }, - "end": { - "line": 65, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Welcome.json b/src/i18n/messages/src/components/auth/Welcome.json deleted file mode 100644 index b4d2ce689..000000000 --- a/src/i18n/messages/src/components/auth/Welcome.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "id": "welcome.signupButton", - "defaultMessage": "!!!Create a free account", - "file": "src/components/auth/Welcome.js", - "start": { - "line": 9, - "column": 16 - }, - "end": { - "line": 12, - "column": 3 - } - }, - { - "id": "welcome.loginButton", - "defaultMessage": "!!!Login to your account", - "file": "src/components/auth/Welcome.js", - "start": { - "line": 13, - "column": 15 - }, - "end": { - "line": 16, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json deleted file mode 100644 index 4dd354afc..000000000 --- a/src/i18n/messages/src/components/layout/AppLayout.json +++ /dev/null @@ -1,80 +0,0 @@ -[ - { - "id": "infobar.servicesUpdated", - "defaultMessage": "!!!Your services have been updated.", - "file": "src/components/layout/AppLayout.js", - "start": { - "line": 26, - "column": 19 - }, - "end": { - "line": 29, - "column": 3 - } - }, - { - "id": "infobar.updateAvailable", - "defaultMessage": "!!!A new update for Franz is available.", - "file": "src/components/layout/AppLayout.js", - "start": { - "line": 30, - "column": 19 - }, - "end": { - "line": 33, - "column": 3 - } - }, - { - "id": "infobar.buttonReloadServices", - "defaultMessage": "!!!Reload services", - "file": "src/components/layout/AppLayout.js", - "start": { - "line": 34, - "column": 24 - }, - "end": { - "line": 37, - "column": 3 - } - }, - { - "id": "infobar.buttonChangelog", - "defaultMessage": "!!!Changelog", - "file": "src/components/layout/AppLayout.js", - "start": { - "line": 38, - "column": 13 - }, - "end": { - "line": 41, - "column": 3 - } - }, - { - "id": "infobar.buttonInstallUpdate", - "defaultMessage": "!!!Restart & install update", - "file": "src/components/layout/AppLayout.js", - "start": { - "line": 42, - "column": 23 - }, - "end": { - "line": 45, - "column": 3 - } - }, - { - "id": "infobar.requiredRequestsFailed", - "defaultMessage": "!!!Could not load services and user information", - "file": "src/components/layout/AppLayout.js", - "start": { - "line": 46, - "column": 26 - }, - "end": { - "line": 49, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/layout/Sidebar.json b/src/i18n/messages/src/components/layout/Sidebar.json deleted file mode 100644 index d67adc96e..000000000 --- a/src/i18n/messages/src/components/layout/Sidebar.json +++ /dev/null @@ -1,80 +0,0 @@ -[ - { - "id": "sidebar.settings", - "defaultMessage": "!!!Settings", - "file": "src/components/layout/Sidebar.js", - "start": { - "line": 13, - "column": 12 - }, - "end": { - "line": 16, - "column": 3 - } - }, - { - "id": "sidebar.addNewService", - "defaultMessage": "!!!Add new service", - "file": "src/components/layout/Sidebar.js", - "start": { - "line": 17, - "column": 17 - }, - "end": { - "line": 20, - "column": 3 - } - }, - { - "id": "sidebar.muteApp", - "defaultMessage": "!!!Disable notifications & audio", - "file": "src/components/layout/Sidebar.js", - "start": { - "line": 21, - "column": 8 - }, - "end": { - "line": 24, - "column": 3 - } - }, - { - "id": "sidebar.unmuteApp", - "defaultMessage": "!!!Enable notifications & audio", - "file": "src/components/layout/Sidebar.js", - "start": { - "line": 25, - "column": 10 - }, - "end": { - "line": 28, - "column": 3 - } - }, - { - "id": "sidebar.openWorkspaceDrawer", - "defaultMessage": "!!!Open workspace drawer", - "file": "src/components/layout/Sidebar.js", - "start": { - "line": 29, - "column": 23 - }, - "end": { - "line": 32, - "column": 3 - } - }, - { - "id": "sidebar.closeWorkspaceDrawer", - "defaultMessage": "!!!Close workspace drawer", - "file": "src/components/layout/Sidebar.js", - "start": { - "line": 33, - "column": 24 - }, - "end": { - "line": 36, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json b/src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json deleted file mode 100644 index c8fe802df..000000000 --- a/src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json +++ /dev/null @@ -1,67 +0,0 @@ -[ - { - "id": "service.errorHandler.headline", - "defaultMessage": "!!!Oh no!", - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "start": { - "line": 12, - "column": 12 - }, - "end": { - "line": 15, - "column": 3 - } - }, - { - "id": "service.errorHandler.text", - "defaultMessage": "!!!{name} has failed to load.", - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "start": { - "line": 16, - "column": 8 - }, - "end": { - "line": 19, - "column": 3 - } - }, - { - "id": "service.errorHandler.action", - "defaultMessage": "!!!Reload {name}", - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "start": { - "line": 20, - "column": 10 - }, - "end": { - "line": 23, - "column": 3 - } - }, - { - "id": "service.errorHandler.editAction", - "defaultMessage": "!!!Edit {name}", - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "start": { - "line": 24, - "column": 14 - }, - "end": { - "line": 27, - "column": 3 - } - }, - { - "id": "service.errorHandler.message", - "defaultMessage": "!!!Error:", - "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", - "start": { - "line": 28, - "column": 16 - }, - "end": { - "line": 31, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/ServiceDisabled.json b/src/i18n/messages/src/components/services/content/ServiceDisabled.json deleted file mode 100644 index 8bfad28c7..000000000 --- a/src/i18n/messages/src/components/services/content/ServiceDisabled.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "id": "service.disabledHandler.headline", - "defaultMessage": "!!!{name} is disabled", - "file": "src/components/services/content/ServiceDisabled.js", - "start": { - "line": 9, - "column": 12 - }, - "end": { - "line": 12, - "column": 3 - } - }, - { - "id": "service.disabledHandler.action", - "defaultMessage": "!!!Enable {name}", - "file": "src/components/services/content/ServiceDisabled.js", - "start": { - "line": 13, - "column": 10 - }, - "end": { - "line": 16, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/Services.json b/src/i18n/messages/src/components/services/content/Services.json deleted file mode 100644 index 884ab0c90..000000000 --- a/src/i18n/messages/src/components/services/content/Services.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "id": "services.welcome", - "defaultMessage": "!!!Welcome to Franz", - "file": "src/components/services/content/Services.js", - "start": { - "line": 11, - "column": 11 - }, - "end": { - "line": 14, - "column": 3 - } - }, - { - "id": "services.getStarted", - "defaultMessage": "!!!Get started", - "file": "src/components/services/content/Services.js", - "start": { - "line": 15, - "column": 14 - }, - "end": { - "line": 18, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/WebviewCrashHandler.json b/src/i18n/messages/src/components/services/content/WebviewCrashHandler.json deleted file mode 100644 index c3d6c41a5..000000000 --- a/src/i18n/messages/src/components/services/content/WebviewCrashHandler.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "id": "service.crashHandler.headline", - "defaultMessage": "!!!Oh no!", - "file": "src/components/services/content/WebviewCrashHandler.js", - "start": { - "line": 10, - "column": 12 - }, - "end": { - "line": 13, - "column": 3 - } - }, - { - "id": "service.crashHandler.text", - "defaultMessage": "!!!{name} has caused an error.", - "file": "src/components/services/content/WebviewCrashHandler.js", - "start": { - "line": 14, - "column": 8 - }, - "end": { - "line": 17, - "column": 3 - } - }, - { - "id": "service.crashHandler.action", - "defaultMessage": "!!!Reload {name}", - "file": "src/components/services/content/WebviewCrashHandler.js", - "start": { - "line": 18, - "column": 10 - }, - "end": { - "line": 21, - "column": 3 - } - }, - { - "id": "service.crashHandler.autoReload", - "defaultMessage": "!!!Trying to automatically restore {name} in {seconds} seconds", - "file": "src/components/services/content/WebviewCrashHandler.js", - "start": { - "line": 22, - "column": 14 - }, - "end": { - "line": 25, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/tabs/TabItem.json b/src/i18n/messages/src/components/services/tabs/TabItem.json deleted file mode 100644 index 08a07845c..000000000 --- a/src/i18n/messages/src/components/services/tabs/TabItem.json +++ /dev/null @@ -1,119 +0,0 @@ -[ - { - "id": "tabs.item.reload", - "defaultMessage": "!!!Reload", - "file": "src/components/services/tabs/TabItem.js", - "start": { - "line": 15, - "column": 10 - }, - "end": { - "line": 18, - "column": 3 - } - }, - { - "id": "tabs.item.edit", - "defaultMessage": "!!!Edit", - "file": "src/components/services/tabs/TabItem.js", - "start": { - "line": 19, - "column": 8 - }, - "end": { - "line": 22, - "column": 3 - } - }, - { - "id": "tabs.item.disableNotifications", - "defaultMessage": "!!!Disable notifications", - "file": "src/components/services/tabs/TabItem.js", - "start": { - "line": 23, - "column": 24 - }, - "end": { - "line": 26, - "column": 3 - } - }, - { - "id": "tabs.item.enableNotification", - "defaultMessage": "!!!Enable notifications", - "file": "src/components/services/tabs/TabItem.js", - "start": { - "line": 27, - "column": 23 - }, - "end": { - "line": 30, - "column": 3 - } - }, - { - "id": "tabs.item.disableAudio", - "defaultMessage": "!!!Disable audio", - "file": "src/components/services/tabs/TabItem.js", - "start": { - "line": 31, - "column": 16 - }, - "end": { - "line": 34, - "column": 3 - } - }, - { - "id": "tabs.item.enableAudio", - "defaultMessage": "!!!Enable audio", - "file": "src/components/services/tabs/TabItem.js", - "start": { - "line": 35, - "column": 15 - }, - "end": { - "line": 38, - "column": 3 - } - }, - { - "id": "tabs.item.disableService", - "defaultMessage": "!!!Disable Service", - "file": "src/components/services/tabs/TabItem.js", - "start": { - "line": 39, - "column": 18 - }, - "end": { - "line": 42, - "column": 3 - } - }, - { - "id": "tabs.item.enableService", - "defaultMessage": "!!!Enable Service", - "file": "src/components/services/tabs/TabItem.js", - "start": { - "line": 43, - "column": 17 - }, - "end": { - "line": 46, - "column": 3 - } - }, - { - "id": "tabs.item.deleteService", - "defaultMessage": "!!!Delete Service", - "file": "src/components/services/tabs/TabItem.js", - "start": { - "line": 47, - "column": 17 - }, - "end": { - "line": 50, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/account/AccountDashboard.json b/src/i18n/messages/src/components/settings/account/AccountDashboard.json deleted file mode 100644 index 603950395..000000000 --- a/src/i18n/messages/src/components/settings/account/AccountDashboard.json +++ /dev/null @@ -1,197 +0,0 @@ -[ - { - "id": "settings.account.headline", - "defaultMessage": "!!!Account", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 15, - "column": 12 - }, - "end": { - "line": 18, - "column": 3 - } - }, - { - "id": "settings.account.headlineSubscription", - "defaultMessage": "!!!Your Subscription", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 19, - "column": 24 - }, - "end": { - "line": 22, - "column": 3 - } - }, - { - "id": "settings.account.headlineUpgrade", - "defaultMessage": "!!!Upgrade your Account", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 23, - "column": 19 - }, - "end": { - "line": 26, - "column": 3 - } - }, - { - "id": "settings.account.headlineInvoices", - "defaultMessage": "!!Invoices", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 27, - "column": 20 - }, - "end": { - "line": 30, - "column": 3 - } - }, - { - "id": "settings.account.headlineDangerZone", - "defaultMessage": "!!Danger Zone", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 31, - "column": 22 - }, - "end": { - "line": 34, - "column": 3 - } - }, - { - "id": "settings.account.manageSubscription.label", - "defaultMessage": "!!!Manage your subscription", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 35, - "column": 33 - }, - "end": { - "line": 38, - "column": 3 - } - }, - { - "id": "settings.account.accountType.basic", - "defaultMessage": "!!!Basic Account", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 39, - "column": 20 - }, - "end": { - "line": 42, - "column": 3 - } - }, - { - "id": "settings.account.accountType.premium", - "defaultMessage": "!!!Premium Supporter Account", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 43, - "column": 22 - }, - "end": { - "line": 46, - "column": 3 - } - }, - { - "id": "settings.account.account.editButton", - "defaultMessage": "!!!Edit Account", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 47, - "column": 21 - }, - "end": { - "line": 50, - "column": 3 - } - }, - { - "id": "settings.account.invoiceDownload", - "defaultMessage": "!!!Download", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 51, - "column": 19 - }, - "end": { - "line": 54, - "column": 3 - } - }, - { - "id": "settings.account.userInfoRequestFailed", - "defaultMessage": "!!!Could not load user information", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 55, - "column": 25 - }, - "end": { - "line": 58, - "column": 3 - } - }, - { - "id": "settings.account.tryReloadUserInfoRequest", - "defaultMessage": "!!!Try again", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 59, - "column": 28 - }, - "end": { - "line": 62, - "column": 3 - } - }, - { - "id": "settings.account.deleteAccount", - "defaultMessage": "!!!Delete account", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 63, - "column": 17 - }, - "end": { - "line": 66, - "column": 3 - } - }, - { - "id": "settings.account.deleteInfo", - "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 67, - "column": 14 - }, - "end": { - "line": 70, - "column": 3 - } - }, - { - "id": "settings.account.deleteEmailSent", - "defaultMessage": "!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", - "file": "src/components/settings/account/AccountDashboard.js", - "start": { - "line": 71, - "column": 19 - }, - "end": { - "line": 74, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json deleted file mode 100644 index 77b0ed8a4..000000000 --- a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "id": "settings.navigation.availableServices", - "defaultMessage": "!!!Available services", - "file": "src/components/settings/navigation/SettingsNavigation.js", - "start": { - "line": 12, - "column": 21 - }, - "end": { - "line": 15, - "column": 3 - } - }, - { - "id": "settings.navigation.yourServices", - "defaultMessage": "!!!Your services", - "file": "src/components/settings/navigation/SettingsNavigation.js", - "start": { - "line": 16, - "column": 16 - }, - "end": { - "line": 19, - "column": 3 - } - }, - { - "id": "settings.navigation.yourWorkspaces", - "defaultMessage": "!!!Your workspaces", - "file": "src/components/settings/navigation/SettingsNavigation.js", - "start": { - "line": 20, - "column": 18 - }, - "end": { - "line": 23, - "column": 3 - } - }, - { - "id": "settings.navigation.account", - "defaultMessage": "!!!Account", - "file": "src/components/settings/navigation/SettingsNavigation.js", - "start": { - "line": 24, - "column": 11 - }, - "end": { - "line": 27, - "column": 3 - } - }, - { - "id": "settings.navigation.settings", - "defaultMessage": "!!!Settings", - "file": "src/components/settings/navigation/SettingsNavigation.js", - "start": { - "line": 28, - "column": 12 - }, - "end": { - "line": 31, - "column": 3 - } - }, - { - "id": "settings.navigation.inviteFriends", - "defaultMessage": "!!!Invite Friends", - "file": "src/components/settings/navigation/SettingsNavigation.js", - "start": { - "line": 32, - "column": 17 - }, - "end": { - "line": 35, - "column": 3 - } - }, - { - "id": "settings.navigation.logout", - "defaultMessage": "!!!Logout", - "file": "src/components/settings/navigation/SettingsNavigation.js", - "start": { - "line": 36, - "column": 10 - }, - "end": { - "line": 39, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json b/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json deleted file mode 100644 index 7d9ed3283..000000000 --- a/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json +++ /dev/null @@ -1,106 +0,0 @@ -[ - { - "id": "settings.recipes.headline", - "defaultMessage": "!!!Available Services", - "file": "src/components/settings/recipes/RecipesDashboard.js", - "start": { - "line": 15, - "column": 12 - }, - "end": { - "line": 18, - "column": 3 - } - }, - { - "id": "settings.searchService", - "defaultMessage": "!!!Search service", - "file": "src/components/settings/recipes/RecipesDashboard.js", - "start": { - "line": 19, - "column": 17 - }, - "end": { - "line": 22, - "column": 3 - } - }, - { - "id": "settings.recipes.mostPopular", - "defaultMessage": "!!!Most popular", - "file": "src/components/settings/recipes/RecipesDashboard.js", - "start": { - "line": 23, - "column": 22 - }, - "end": { - "line": 26, - "column": 3 - } - }, - { - "id": "settings.recipes.all", - "defaultMessage": "!!!All services", - "file": "src/components/settings/recipes/RecipesDashboard.js", - "start": { - "line": 27, - "column": 14 - }, - "end": { - "line": 30, - "column": 3 - } - }, - { - "id": "settings.recipes.dev", - "defaultMessage": "!!!Development", - "file": "src/components/settings/recipes/RecipesDashboard.js", - "start": { - "line": 31, - "column": 14 - }, - "end": { - "line": 34, - "column": 3 - } - }, - { - "id": "settings.recipes.nothingFound", - "defaultMessage": "!!!Sorry, but no service matched your search term.", - "file": "src/components/settings/recipes/RecipesDashboard.js", - "start": { - "line": 35, - "column": 16 - }, - "end": { - "line": 38, - "column": 3 - } - }, - { - "id": "settings.recipes.servicesSuccessfulAddedInfo", - "defaultMessage": "!!!Service successfully added", - "file": "src/components/settings/recipes/RecipesDashboard.js", - "start": { - "line": 39, - "column": 31 - }, - "end": { - "line": 42, - "column": 3 - } - }, - { - "id": "settings.recipes.missingService", - "defaultMessage": "!!!Missing a service?", - "file": "src/components/settings/recipes/RecipesDashboard.js", - "start": { - "line": 43, - "column": 18 - }, - "end": { - "line": 46, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/services/EditServiceForm.json b/src/i18n/messages/src/components/settings/services/EditServiceForm.json deleted file mode 100644 index 42b741b7a..000000000 --- a/src/i18n/messages/src/components/settings/services/EditServiceForm.json +++ /dev/null @@ -1,288 +0,0 @@ -[ - { - "id": "settings.service.form.saveButton", - "defaultMessage": "!!!Save service", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 22, - "column": 15 - }, - "end": { - "line": 25, - "column": 3 - } - }, - { - "id": "settings.service.form.deleteButton", - "defaultMessage": "!!!Delete Service", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 26, - "column": 17 - }, - "end": { - "line": 29, - "column": 3 - } - }, - { - "id": "settings.service.form.availableServices", - "defaultMessage": "!!!Available services", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 30, - "column": 21 - }, - "end": { - "line": 33, - "column": 3 - } - }, - { - "id": "settings.service.form.yourServices", - "defaultMessage": "!!!Your services", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 34, - "column": 16 - }, - "end": { - "line": 37, - "column": 3 - } - }, - { - "id": "settings.service.form.addServiceHeadline", - "defaultMessage": "!!!Add {name}", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 38, - "column": 22 - }, - "end": { - "line": 41, - "column": 3 - } - }, - { - "id": "settings.service.form.editServiceHeadline", - "defaultMessage": "!!!Edit {name}", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 42, - "column": 23 - }, - "end": { - "line": 45, - "column": 3 - } - }, - { - "id": "settings.service.form.tabHosted", - "defaultMessage": "!!!Hosted", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 46, - "column": 13 - }, - "end": { - "line": 49, - "column": 3 - } - }, - { - "id": "settings.service.form.tabOnPremise", - "defaultMessage": "!!!Self hosted ⭐️", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 50, - "column": 16 - }, - "end": { - "line": 53, - "column": 3 - } - }, - { - "id": "settings.service.form.useHostedService", - "defaultMessage": "!!!Use the hosted {name} service.", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 54, - "column": 20 - }, - "end": { - "line": 57, - "column": 3 - } - }, - { - "id": "settings.service.form.customUrlValidationError", - "defaultMessage": "!!!Could not validate custom {name} server.", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 58, - "column": 28 - }, - "end": { - "line": 61, - "column": 3 - } - }, - { - "id": "settings.service.form.customUrlPremiumInfo", - "defaultMessage": "!!!To add self hosted services, you need a Franz Premium Supporter Account.", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 62, - "column": 24 - }, - "end": { - "line": 65, - "column": 3 - } - }, - { - "id": "settings.service.form.customUrlUpgradeAccount", - "defaultMessage": "!!!Upgrade your account", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 66, - "column": 27 - }, - "end": { - "line": 69, - "column": 3 - } - }, - { - "id": "settings.service.form.indirectMessageInfo", - "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 70, - "column": 23 - }, - "end": { - "line": 73, - "column": 3 - } - }, - { - "id": "settings.service.form.isMutedInfo", - "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 74, - "column": 15 - }, - "end": { - "line": 77, - "column": 3 - } - }, - { - "id": "settings.service.form.headlineNotifications", - "defaultMessage": "!!!Notifications", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 78, - "column": 25 - }, - "end": { - "line": 81, - "column": 3 - } - }, - { - "id": "settings.service.form.headlineBadges", - "defaultMessage": "!!!Unread message badges", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 82, - "column": 18 - }, - "end": { - "line": 85, - "column": 3 - } - }, - { - "id": "settings.service.form.headlineGeneral", - "defaultMessage": "!!!General", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 86, - "column": 19 - }, - "end": { - "line": 89, - "column": 3 - } - }, - { - "id": "settings.service.form.iconDelete", - "defaultMessage": "!!!Delete", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 90, - "column": 14 - }, - "end": { - "line": 93, - "column": 3 - } - }, - { - "id": "settings.service.form.iconUpload", - "defaultMessage": "!!!Drop your image, or click here", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 94, - "column": 14 - }, - "end": { - "line": 97, - "column": 3 - } - }, - { - "id": "settings.service.form.proxy.headline", - "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 98, - "column": 17 - }, - "end": { - "line": 101, - "column": 3 - } - }, - { - "id": "settings.service.form.proxy.restartInfo", - "defaultMessage": "!!!Please restart Franz after changing proxy Settings.", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 102, - "column": 20 - }, - "end": { - "line": 105, - "column": 3 - } - }, - { - "id": "settings.service.form.proxy.info", - "defaultMessage": "!!!Proxy settings will not be synchronized with the Franz servers.", - "file": "src/components/settings/services/EditServiceForm.js", - "start": { - "line": 106, - "column": 13 - }, - "end": { - "line": 109, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/services/ServiceError.json b/src/i18n/messages/src/components/settings/services/ServiceError.json deleted file mode 100644 index 648fc5b3e..000000000 --- a/src/i18n/messages/src/components/settings/services/ServiceError.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "id": "settings.service.error.headline", - "defaultMessage": "!!!Error", - "file": "src/components/settings/services/ServiceError.js", - "start": { - "line": 10, - "column": 12 - }, - "end": { - "line": 13, - "column": 3 - } - }, - { - "id": "settings.service.error.goBack", - "defaultMessage": "!!!Back to services", - "file": "src/components/settings/services/ServiceError.js", - "start": { - "line": 14, - "column": 10 - }, - "end": { - "line": 17, - "column": 3 - } - }, - { - "id": "settings.service.form.availableServices", - "defaultMessage": "!!!Available services", - "file": "src/components/settings/services/ServiceError.js", - "start": { - "line": 18, - "column": 21 - }, - "end": { - "line": 21, - "column": 3 - } - }, - { - "id": "settings.service.error.message", - "defaultMessage": "!!!Could not load service recipe.", - "file": "src/components/settings/services/ServiceError.js", - "start": { - "line": 22, - "column": 16 - }, - "end": { - "line": 25, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/services/ServiceItem.json b/src/i18n/messages/src/components/settings/services/ServiceItem.json deleted file mode 100644 index ffea8b9e1..000000000 --- a/src/i18n/messages/src/components/settings/services/ServiceItem.json +++ /dev/null @@ -1,41 +0,0 @@ -[ - { - "id": "settings.services.tooltip.isDisabled", - "defaultMessage": "!!!Service is disabled", - "file": "src/components/settings/services/ServiceItem.js", - "start": { - "line": 11, - "column": 21 - }, - "end": { - "line": 14, - "column": 3 - } - }, - { - "id": "settings.services.tooltip.notificationsDisabled", - "defaultMessage": "!!!Notifications are disabled", - "file": "src/components/settings/services/ServiceItem.js", - "start": { - "line": 15, - "column": 32 - }, - "end": { - "line": 18, - "column": 3 - } - }, - { - "id": "settings.services.tooltip.isMuted", - "defaultMessage": "!!!All sounds are muted", - "file": "src/components/settings/services/ServiceItem.js", - "start": { - "line": 19, - "column": 18 - }, - "end": { - "line": 22, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/services/ServicesDashboard.json b/src/i18n/messages/src/components/settings/services/ServicesDashboard.json deleted file mode 100644 index 3803c6512..000000000 --- a/src/i18n/messages/src/components/settings/services/ServicesDashboard.json +++ /dev/null @@ -1,119 +0,0 @@ -[ - { - "id": "settings.services.headline", - "defaultMessage": "!!!Your services", - "file": "src/components/settings/services/ServicesDashboard.js", - "start": { - "line": 14, - "column": 12 - }, - "end": { - "line": 17, - "column": 3 - } - }, - { - "id": "settings.searchService", - "defaultMessage": "!!!Search service", - "file": "src/components/settings/services/ServicesDashboard.js", - "start": { - "line": 18, - "column": 17 - }, - "end": { - "line": 21, - "column": 3 - } - }, - { - "id": "settings.services.noServicesAdded", - "defaultMessage": "!!!You haven't added any services yet.", - "file": "src/components/settings/services/ServicesDashboard.js", - "start": { - "line": 22, - "column": 19 - }, - "end": { - "line": 25, - "column": 3 - } - }, - { - "id": "settings.recipes.nothingFound", - "defaultMessage": "!!!Sorry, but no service matched your search term.", - "file": "src/components/settings/services/ServicesDashboard.js", - "start": { - "line": 26, - "column": 18 - }, - "end": { - "line": 29, - "column": 3 - } - }, - { - "id": "settings.services.discoverServices", - "defaultMessage": "!!!Discover services", - "file": "src/components/settings/services/ServicesDashboard.js", - "start": { - "line": 30, - "column": 20 - }, - "end": { - "line": 33, - "column": 3 - } - }, - { - "id": "settings.services.servicesRequestFailed", - "defaultMessage": "!!!Could not load your services", - "file": "src/components/settings/services/ServicesDashboard.js", - "start": { - "line": 34, - "column": 25 - }, - "end": { - "line": 37, - "column": 3 - } - }, - { - "id": "settings.account.tryReloadServices", - "defaultMessage": "!!!Try again", - "file": "src/components/settings/services/ServicesDashboard.js", - "start": { - "line": 38, - "column": 21 - }, - "end": { - "line": 41, - "column": 3 - } - }, - { - "id": "settings.services.updatedInfo", - "defaultMessage": "!!!Your changes have been saved", - "file": "src/components/settings/services/ServicesDashboard.js", - "start": { - "line": 42, - "column": 15 - }, - "end": { - "line": 45, - "column": 3 - } - }, - { - "id": "settings.services.deletedInfo", - "defaultMessage": "!!!Service has been deleted", - "file": "src/components/settings/services/ServicesDashboard.js", - "start": { - "line": 46, - "column": 15 - }, - "end": { - "line": 49, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json deleted file mode 100644 index c64f477be..000000000 --- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json +++ /dev/null @@ -1,223 +0,0 @@ -[ - { - "id": "settings.app.headline", - "defaultMessage": "!!!Settings", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 16, - "column": 12 - }, - "end": { - "line": 19, - "column": 3 - } - }, - { - "id": "settings.app.headlineGeneral", - "defaultMessage": "!!!General", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 20, - "column": 19 - }, - "end": { - "line": 23, - "column": 3 - } - }, - { - "id": "settings.app.headlineLanguage", - "defaultMessage": "!!!Language", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 24, - "column": 20 - }, - "end": { - "line": 27, - "column": 3 - } - }, - { - "id": "settings.app.headlineUpdates", - "defaultMessage": "!!!Updates", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 28, - "column": 19 - }, - "end": { - "line": 31, - "column": 3 - } - }, - { - "id": "settings.app.headlineAppearance", - "defaultMessage": "!!!Appearance", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 32, - "column": 22 - }, - "end": { - "line": 35, - "column": 3 - } - }, - { - "id": "settings.app.headlineAdvanced", - "defaultMessage": "!!!Advanced", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 36, - "column": 20 - }, - "end": { - "line": 39, - "column": 3 - } - }, - { - "id": "settings.app.translationHelp", - "defaultMessage": "!!!Help us to translate Franz into your language.", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 40, - "column": 19 - }, - "end": { - "line": 43, - "column": 3 - } - }, - { - "id": "settings.app.subheadlineCache", - "defaultMessage": "!!!Cache", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 44, - "column": 20 - }, - "end": { - "line": 47, - "column": 3 - } - }, - { - "id": "settings.app.cacheInfo", - "defaultMessage": "!!!Franz cache is currently using {size} of disk space.", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 48, - "column": 13 - }, - "end": { - "line": 51, - "column": 3 - } - }, - { - "id": "settings.app.buttonClearAllCache", - "defaultMessage": "!!!Clear cache", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 52, - "column": 23 - }, - "end": { - "line": 55, - "column": 3 - } - }, - { - "id": "settings.app.buttonSearchForUpdate", - "defaultMessage": "!!!Check for updates", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 56, - "column": 25 - }, - "end": { - "line": 59, - "column": 3 - } - }, - { - "id": "settings.app.buttonInstallUpdate", - "defaultMessage": "!!!Restart & install update", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 60, - "column": 23 - }, - "end": { - "line": 63, - "column": 3 - } - }, - { - "id": "settings.app.updateStatusSearching", - "defaultMessage": "!!!Is searching for update", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 64, - "column": 25 - }, - "end": { - "line": 67, - "column": 3 - } - }, - { - "id": "settings.app.updateStatusAvailable", - "defaultMessage": "!!!Update available, downloading...", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 68, - "column": 25 - }, - "end": { - "line": 71, - "column": 3 - } - }, - { - "id": "settings.app.updateStatusUpToDate", - "defaultMessage": "!!!You are using the latest version of Franz", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 72, - "column": 24 - }, - "end": { - "line": 75, - "column": 3 - } - }, - { - "id": "settings.app.currentVersion", - "defaultMessage": "!!!Current version:", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 76, - "column": 18 - }, - "end": { - "line": 79, - "column": 3 - } - }, - { - "id": "settings.app.restartRequired", - "defaultMessage": "!!!Changes require restart", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 80, - "column": 29 - }, - "end": { - "line": 83, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/user/EditUserForm.json b/src/i18n/messages/src/components/settings/user/EditUserForm.json deleted file mode 100644 index 3a59f8681..000000000 --- a/src/i18n/messages/src/components/settings/user/EditUserForm.json +++ /dev/null @@ -1,80 +0,0 @@ -[ - { - "id": "settings.account.headline", - "defaultMessage": "!!!Account", - "file": "src/components/settings/user/EditUserForm.js", - "start": { - "line": 15, - "column": 12 - }, - "end": { - "line": 18, - "column": 3 - } - }, - { - "id": "settings.account.headlineProfile", - "defaultMessage": "!!!Update Profile", - "file": "src/components/settings/user/EditUserForm.js", - "start": { - "line": 19, - "column": 19 - }, - "end": { - "line": 22, - "column": 3 - } - }, - { - "id": "settings.account.headlineAccount", - "defaultMessage": "!!!Account Information", - "file": "src/components/settings/user/EditUserForm.js", - "start": { - "line": 23, - "column": 19 - }, - "end": { - "line": 26, - "column": 3 - } - }, - { - "id": "settings.account.headlinePassword", - "defaultMessage": "!!!Change Password", - "file": "src/components/settings/user/EditUserForm.js", - "start": { - "line": 27, - "column": 20 - }, - "end": { - "line": 30, - "column": 3 - } - }, - { - "id": "settings.account.successInfo", - "defaultMessage": "!!!Your changes have been saved", - "file": "src/components/settings/user/EditUserForm.js", - "start": { - "line": 31, - "column": 15 - }, - "end": { - "line": 34, - "column": 3 - } - }, - { - "id": "settings.account.buttonSave", - "defaultMessage": "!!!Update profile", - "file": "src/components/settings/user/EditUserForm.js", - "start": { - "line": 35, - "column": 14 - }, - "end": { - "line": 38, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/subscription/SubscriptionForm.json b/src/i18n/messages/src/components/subscription/SubscriptionForm.json deleted file mode 100644 index cc7470358..000000000 --- a/src/i18n/messages/src/components/subscription/SubscriptionForm.json +++ /dev/null @@ -1,171 +0,0 @@ -[ - { - "id": "subscription.submit.label", - "defaultMessage": "!!!Support the development of Franz", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 14, - "column": 21 - }, - "end": { - "line": 17, - "column": 3 - } - }, - { - "id": "subscription.paymentSessionError", - "defaultMessage": "!!!Could not initialize payment form", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 18, - "column": 23 - }, - "end": { - "line": 21, - "column": 3 - } - }, - { - "id": "subscription.type.free", - "defaultMessage": "!!!free", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 22, - "column": 12 - }, - "end": { - "line": 25, - "column": 3 - } - }, - { - "id": "subscription.type.month", - "defaultMessage": "!!!month", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 26, - "column": 15 - }, - "end": { - "line": 29, - "column": 3 - } - }, - { - "id": "subscription.type.year", - "defaultMessage": "!!!year", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 30, - "column": 14 - }, - "end": { - "line": 33, - "column": 3 - } - }, - { - "id": "subscription.includedFeatures", - "defaultMessage": "!!!The Franz Premium Supporter Account includes", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 34, - "column": 20 - }, - "end": { - "line": 37, - "column": 3 - } - }, - { - "id": "subscription.features.onpremise.mattermost", - "defaultMessage": "!!!Add on-premise/hosted services like Mattermost", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 38, - "column": 13 - }, - "end": { - "line": 41, - "column": 3 - } - }, - { - "id": "subscription.features.noInterruptions", - "defaultMessage": "!!!No app delays & nagging to upgrade license", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 42, - "column": 19 - }, - "end": { - "line": 45, - "column": 3 - } - }, - { - "id": "subscription.features.proxy", - "defaultMessage": "!!!Proxy support for services", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 46, - "column": 9 - }, - "end": { - "line": 49, - "column": 3 - } - }, - { - "id": "subscription.features.spellchecker", - "defaultMessage": "!!!Support for Spellchecker", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 50, - "column": 16 - }, - "end": { - "line": 53, - "column": 3 - } - }, - { - "id": "subscription.features.ads", - "defaultMessage": "!!!No ads, ever!", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 54, - "column": 7 - }, - "end": { - "line": 57, - "column": 3 - } - }, - { - "id": "subscription.features.comingSoon", - "defaultMessage": "!!!coming soon", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 58, - "column": 14 - }, - "end": { - "line": 61, - "column": 3 - } - }, - { - "id": "subscription.euTaxInfo", - "defaultMessage": "!!!EU residents: local sales tax may apply", - "file": "src/components/subscription/SubscriptionForm.js", - "start": { - "line": 62, - "column": 13 - }, - "end": { - "line": 65, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/subscription/SubscriptionPopup.json b/src/i18n/messages/src/components/subscription/SubscriptionPopup.json deleted file mode 100644 index c06da7531..000000000 --- a/src/i18n/messages/src/components/subscription/SubscriptionPopup.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "id": "subscriptionPopup.buttonCancel", - "defaultMessage": "!!!Cancel", - "file": "src/components/subscription/SubscriptionPopup.js", - "start": { - "line": 11, - "column": 16 - }, - "end": { - "line": 14, - "column": 3 - } - }, - { - "id": "subscriptionPopup.buttonDone", - "defaultMessage": "!!!Done", - "file": "src/components/subscription/SubscriptionPopup.js", - "start": { - "line": 15, - "column": 14 - }, - "end": { - "line": 18, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json b/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json deleted file mode 100644 index 320d3ca3e..000000000 --- a/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "id": "premiumFeature.button.upgradeAccount", - "defaultMessage": "!!!Upgrade account", - "file": "src/components/ui/PremiumFeatureContainer/index.js", - "start": { - "line": 15, - "column": 10 - }, - "end": { - "line": 18, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/ui/WebviewLoader/index.json b/src/i18n/messages/src/components/ui/WebviewLoader/index.json deleted file mode 100644 index ef3e4b593..000000000 --- a/src/i18n/messages/src/components/ui/WebviewLoader/index.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "id": "service.webviewLoader.loading", - "defaultMessage": "!!!Loading", - "file": "src/components/ui/WebviewLoader/index.js", - "start": { - "line": 11, - "column": 11 - }, - "end": { - "line": 14, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/components/util/ErrorBoundary/index.json b/src/i18n/messages/src/components/util/ErrorBoundary/index.json deleted file mode 100644 index 43c323031..000000000 --- a/src/i18n/messages/src/components/util/ErrorBoundary/index.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "id": "app.errorHandler.headline", - "defaultMessage": "!!!Something went wrong.", - "file": "src/components/util/ErrorBoundary/index.js", - "start": { - "line": 11, - "column": 12 - }, - "end": { - "line": 14, - "column": 3 - } - }, - { - "id": "app.errorHandler.action", - "defaultMessage": "!!!Reload", - "file": "src/components/util/ErrorBoundary/index.js", - "start": { - "line": 15, - "column": 10 - }, - "end": { - "line": 18, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/containers/settings/EditServiceScreen.json b/src/i18n/messages/src/containers/settings/EditServiceScreen.json deleted file mode 100644 index 42ca42125..000000000 --- a/src/i18n/messages/src/containers/settings/EditServiceScreen.json +++ /dev/null @@ -1,197 +0,0 @@ -[ - { - "id": "settings.service.form.name", - "defaultMessage": "!!!Name", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 28, - "column": 8 - }, - "end": { - "line": 31, - "column": 3 - } - }, - { - "id": "settings.service.form.enableService", - "defaultMessage": "!!!Enable service", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 32, - "column": 17 - }, - "end": { - "line": 35, - "column": 3 - } - }, - { - "id": "settings.service.form.enableNotification", - "defaultMessage": "!!!Enable Notifications", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 36, - "column": 22 - }, - "end": { - "line": 39, - "column": 3 - } - }, - { - "id": "settings.service.form.enableBadge", - "defaultMessage": "!!!Show unread message badges", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 40, - "column": 15 - }, - "end": { - "line": 43, - "column": 3 - } - }, - { - "id": "settings.service.form.enableAudio", - "defaultMessage": "!!!Enable audio", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 44, - "column": 15 - }, - "end": { - "line": 47, - "column": 3 - } - }, - { - "id": "settings.service.form.team", - "defaultMessage": "!!!Team", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 48, - "column": 8 - }, - "end": { - "line": 51, - "column": 3 - } - }, - { - "id": "settings.service.form.customUrl", - "defaultMessage": "!!!Custom server", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 52, - "column": 13 - }, - "end": { - "line": 55, - "column": 3 - } - }, - { - "id": "settings.service.form.indirectMessages", - "defaultMessage": "!!!Show message badge for all new messages", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 56, - "column": 20 - }, - "end": { - "line": 59, - "column": 3 - } - }, - { - "id": "settings.service.form.icon", - "defaultMessage": "!!!Custom icon", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 60, - "column": 8 - }, - "end": { - "line": 63, - "column": 3 - } - }, - { - "id": "settings.service.form.enableDarkMode", - "defaultMessage": "!!!Enable Dark Mode", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 64, - "column": 18 - }, - "end": { - "line": 67, - "column": 3 - } - }, - { - "id": "settings.service.form.proxy.isEnabled", - "defaultMessage": "!!!Use Proxy", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 68, - "column": 15 - }, - "end": { - "line": 71, - "column": 3 - } - }, - { - "id": "settings.service.form.proxy.host", - "defaultMessage": "!!!Proxy Host/IP", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 72, - "column": 13 - }, - "end": { - "line": 75, - "column": 3 - } - }, - { - "id": "settings.service.form.proxy.port", - "defaultMessage": "!!!Port", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 76, - "column": 13 - }, - "end": { - "line": 79, - "column": 3 - } - }, - { - "id": "settings.service.form.proxy.user", - "defaultMessage": "!!!User", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 80, - "column": 13 - }, - "end": { - "line": 83, - "column": 3 - } - }, - { - "id": "settings.service.form.proxy.password", - "defaultMessage": "!!!Password", - "file": "src/containers/settings/EditServiceScreen.js", - "start": { - "line": 84, - "column": 17 - }, - "end": { - "line": 87, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json deleted file mode 100644 index d3b413540..000000000 --- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "id": "settings.app.form.autoLaunchOnStart", - "defaultMessage": "!!!Launch Franz on start", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 22, - "column": 21 - }, - "end": { - "line": 25, - "column": 3 - } - }, - { - "id": "settings.app.form.autoLaunchInBackground", - "defaultMessage": "!!!Open in background", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 26, - "column": 26 - }, - "end": { - "line": 29, - "column": 3 - } - }, - { - "id": "settings.app.form.runInBackground", - "defaultMessage": "!!!Keep Franz in background when closing the window", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 30, - "column": 19 - }, - "end": { - "line": 33, - "column": 3 - } - }, - { - "id": "settings.app.form.enableSystemTray", - "defaultMessage": "!!!Show Franz in system tray", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 34, - "column": 20 - }, - "end": { - "line": 37, - "column": 3 - } - }, - { - "id": "settings.app.form.minimizeToSystemTray", - "defaultMessage": "!!!Minimize Franz to system tray", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 38, - "column": 24 - }, - "end": { - "line": 41, - "column": 3 - } - }, - { - "id": "settings.app.form.language", - "defaultMessage": "!!!Language", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 42, - "column": 12 - }, - "end": { - "line": 45, - "column": 3 - } - }, - { - "id": "settings.app.form.darkMode", - "defaultMessage": "!!!Dark Mode", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 46, - "column": 12 - }, - "end": { - "line": 49, - "column": 3 - } - }, - { - "id": "settings.app.form.showDisabledServices", - "defaultMessage": "!!!Display disabled services tabs", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 50, - "column": 24 - }, - "end": { - "line": 53, - "column": 3 - } - }, - { - "id": "settings.app.form.showMessagesBadgesWhenMuted", - "defaultMessage": "!!!Show unread message badge when notifications are disabled", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 54, - "column": 29 - }, - "end": { - "line": 57, - "column": 3 - } - }, - { - "id": "settings.app.form.enableSpellchecking", - "defaultMessage": "!!!Enable spell checking", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 58, - "column": 23 - }, - "end": { - "line": 61, - "column": 3 - } - }, - { - "id": "settings.app.form.enableGPUAcceleration", - "defaultMessage": "!!!Enable GPU Acceleration", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 62, - "column": 25 - }, - "end": { - "line": 65, - "column": 3 - } - }, - { - "id": "settings.app.form.beta", - "defaultMessage": "!!!Include beta versions", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 66, - "column": 8 - }, - "end": { - "line": 69, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/containers/settings/EditUserScreen.json b/src/i18n/messages/src/containers/settings/EditUserScreen.json deleted file mode 100644 index 70ff29945..000000000 --- a/src/i18n/messages/src/containers/settings/EditUserScreen.json +++ /dev/null @@ -1,119 +0,0 @@ -[ - { - "id": "settings.user.form.firstname", - "defaultMessage": "!!!Firstname", - "file": "src/containers/settings/EditUserScreen.js", - "start": { - "line": 14, - "column": 13 - }, - "end": { - "line": 17, - "column": 3 - } - }, - { - "id": "settings.user.form.lastname", - "defaultMessage": "!!!Lastname", - "file": "src/containers/settings/EditUserScreen.js", - "start": { - "line": 18, - "column": 12 - }, - "end": { - "line": 21, - "column": 3 - } - }, - { - "id": "settings.user.form.email", - "defaultMessage": "!!!Email", - "file": "src/containers/settings/EditUserScreen.js", - "start": { - "line": 22, - "column": 9 - }, - "end": { - "line": 25, - "column": 3 - } - }, - { - "id": "settings.user.form.accountType.label", - "defaultMessage": "!!!Account type", - "file": "src/containers/settings/EditUserScreen.js", - "start": { - "line": 26, - "column": 20 - }, - "end": { - "line": 29, - "column": 3 - } - }, - { - "id": "settings.user.form.accountType.individual", - "defaultMessage": "!!!Individual", - "file": "src/containers/settings/EditUserScreen.js", - "start": { - "line": 30, - "column": 25 - }, - "end": { - "line": 33, - "column": 3 - } - }, - { - "id": "settings.user.form.accountType.non-profit", - "defaultMessage": "!!!Non-Profit", - "file": "src/containers/settings/EditUserScreen.js", - "start": { - "line": 34, - "column": 24 - }, - "end": { - "line": 37, - "column": 3 - } - }, - { - "id": "settings.user.form.accountType.company", - "defaultMessage": "!!!Company", - "file": "src/containers/settings/EditUserScreen.js", - "start": { - "line": 38, - "column": 22 - }, - "end": { - "line": 41, - "column": 3 - } - }, - { - "id": "settings.user.form.currentPassword", - "defaultMessage": "!!!Current password", - "file": "src/containers/settings/EditUserScreen.js", - "start": { - "line": 42, - "column": 19 - }, - "end": { - "line": 45, - "column": 3 - } - }, - { - "id": "settings.user.form.newPassword", - "defaultMessage": "!!!New password", - "file": "src/containers/settings/EditUserScreen.js", - "start": { - "line": 46, - "column": 15 - }, - "end": { - "line": 49, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/features/announcements/Component.json b/src/i18n/messages/src/features/announcements/Component.json deleted file mode 100644 index c31c35fc7..000000000 --- a/src/i18n/messages/src/features/announcements/Component.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "id": "feature.announcements.changelog.headline", - "defaultMessage": "!!!What's new in Franz {version}?", - "file": "src/features/announcements/Component.js", - "start": { - "line": 11, - "column": 12 - }, - "end": { - "line": 14, - "column": 3 - } - } -] diff --git a/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json b/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json deleted file mode 100644 index eb1b66916..000000000 --- a/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "id": "feature.announcements.changelog.headline", - "defaultMessage": "!!!Changes in Franz {version}", - "file": "src/features/announcements/components/AnnouncementScreen.js", - "start": { - "line": 20, - "column": 12 - }, - "end": { - "line": 23, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/features/delayApp/Component.json b/src/i18n/messages/src/features/delayApp/Component.json deleted file mode 100644 index bacd9444a..000000000 --- a/src/i18n/messages/src/features/delayApp/Component.json +++ /dev/null @@ -1,41 +0,0 @@ -[ - { - "id": "feature.delayApp.headline", - "defaultMessage": "!!!Please purchase license to skip waiting", - "file": "src/features/delayApp/Component.js", - "start": { - "line": 15, - "column": 12 - }, - "end": { - "line": 18, - "column": 3 - } - }, - { - "id": "feature.delayApp.action", - "defaultMessage": "!!!Get a Franz Supporter License", - "file": "src/features/delayApp/Component.js", - "start": { - "line": 19, - "column": 10 - }, - "end": { - "line": 22, - "column": 3 - } - }, - { - "id": "feature.delayApp.text", - "defaultMessage": "!!!Franz will continue in {seconds} seconds.", - "file": "src/features/delayApp/Component.js", - "start": { - "line": 23, - "column": 8 - }, - "end": { - "line": 26, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/features/shareFranz/Component.json b/src/i18n/messages/src/features/shareFranz/Component.json deleted file mode 100644 index 34a43d5a0..000000000 --- a/src/i18n/messages/src/features/shareFranz/Component.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "id": "feature.shareFranz.headline", - "defaultMessage": "!!!Franz is better together!", - "file": "src/features/shareFranz/Component.js", - "start": { - "line": 15, - "column": 12 - }, - "end": { - "line": 18, - "column": 3 - } - }, - { - "id": "feature.shareFranz.text", - "defaultMessage": "!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.", - "file": "src/features/shareFranz/Component.js", - "start": { - "line": 19, - "column": 8 - }, - "end": { - "line": 22, - "column": 3 - } - }, - { - "id": "feature.shareFranz.action.email", - "defaultMessage": "!!!Share as email", - "file": "src/features/shareFranz/Component.js", - "start": { - "line": 23, - "column": 16 - }, - "end": { - "line": 26, - "column": 3 - } - }, - { - "id": "feature.shareFranz.action.facebook", - "defaultMessage": "!!!Share on Facebook", - "file": "src/features/shareFranz/Component.js", - "start": { - "line": 27, - "column": 19 - }, - "end": { - "line": 30, - "column": 3 - } - }, - { - "id": "feature.shareFranz.action.twitter", - "defaultMessage": "!!!Share on Twitter", - "file": "src/features/shareFranz/Component.js", - "start": { - "line": 31, - "column": 18 - }, - "end": { - "line": 34, - "column": 3 - } - }, - { - "id": "feature.shareFranz.shareText.email", - "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", - "file": "src/features/shareFranz/Component.js", - "start": { - "line": 35, - "column": 18 - }, - "end": { - "line": 38, - "column": 3 - } - }, - { - "id": "feature.shareFranz.shareText.twitter", - "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @FranzMessenger", - "file": "src/features/shareFranz/Component.js", - "start": { - "line": 39, - "column": 20 - }, - "end": { - "line": 42, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json deleted file mode 100644 index f62bac42c..000000000 --- a/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "id": "settings.workspace.add.form.submitButton", - "defaultMessage": "!!!Create workspace", - "file": "src/features/workspaces/components/CreateWorkspaceForm.js", - "start": { - "line": 13, - "column": 16 - }, - "end": { - "line": 16, - "column": 3 - } - }, - { - "id": "settings.workspace.add.form.name", - "defaultMessage": "!!!Name", - "file": "src/features/workspaces/components/CreateWorkspaceForm.js", - "start": { - "line": 17, - "column": 8 - }, - "end": { - "line": 20, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json deleted file mode 100644 index 7b0c3e1ce..000000000 --- a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json +++ /dev/null @@ -1,67 +0,0 @@ -[ - { - "id": "settings.workspace.form.buttonDelete", - "defaultMessage": "!!!Delete workspace", - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "start": { - "line": 19, - "column": 16 - }, - "end": { - "line": 22, - "column": 3 - } - }, - { - "id": "settings.workspace.form.buttonSave", - "defaultMessage": "!!!Save workspace", - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "start": { - "line": 23, - "column": 14 - }, - "end": { - "line": 26, - "column": 3 - } - }, - { - "id": "settings.workspace.form.name", - "defaultMessage": "!!!Name", - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "start": { - "line": 27, - "column": 8 - }, - "end": { - "line": 30, - "column": 3 - } - }, - { - "id": "settings.workspace.form.yourWorkspaces", - "defaultMessage": "!!!Your workspaces", - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "start": { - "line": 31, - "column": 18 - }, - "end": { - "line": 34, - "column": 3 - } - }, - { - "id": "settings.workspace.form.servicesInWorkspaceHeadline", - "defaultMessage": "!!!Services in this Workspace", - "file": "src/features/workspaces/components/EditWorkspaceForm.js", - "start": { - "line": 35, - "column": 31 - }, - "end": { - "line": 38, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json deleted file mode 100644 index 9f0935620..000000000 --- a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawer.json +++ /dev/null @@ -1,106 +0,0 @@ -[ - { - "id": "workspaceDrawer.headline", - "defaultMessage": "!!!Workspaces", - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "start": { - "line": 16, - "column": 12 - }, - "end": { - "line": 19, - "column": 3 - } - }, - { - "id": "workspaceDrawer.allServices", - "defaultMessage": "!!!All services", - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "start": { - "line": 20, - "column": 15 - }, - "end": { - "line": 23, - "column": 3 - } - }, - { - "id": "workspaceDrawer.workspacesSettingsTooltip", - "defaultMessage": "!!!Workspaces settings", - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "start": { - "line": 24, - "column": 29 - }, - "end": { - "line": 27, - "column": 3 - } - }, - { - "id": "workspaceDrawer.workspaceFeatureInfo", - "defaultMessage": "!!!Info about workspace feature", - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "start": { - "line": 28, - "column": 24 - }, - "end": { - "line": 31, - "column": 3 - } - }, - { - "id": "workspaceDrawer.premiumCtaButtonLabel", - "defaultMessage": "!!!Create your first workspace", - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "start": { - "line": 32, - "column": 25 - }, - "end": { - "line": 35, - "column": 3 - } - }, - { - "id": "workspaceDrawer.reactivatePremiumAccountLabel", - "defaultMessage": "!!!Reactivate premium account", - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "start": { - "line": 36, - "column": 28 - }, - "end": { - "line": 39, - "column": 3 - } - }, - { - "id": "workspaceDrawer.addNewWorkspaceLabel", - "defaultMessage": "!!!add new workspace", - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "start": { - "line": 40, - "column": 24 - }, - "end": { - "line": 43, - "column": 3 - } - }, - { - "id": "workspaceDrawer.proFeatureBadge", - "defaultMessage": "!!!Premium feature", - "file": "src/features/workspaces/components/WorkspaceDrawer.js", - "start": { - "line": 44, - "column": 23 - }, - "end": { - "line": 47, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawerItem.json b/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawerItem.json deleted file mode 100644 index 4ff190606..000000000 --- a/src/i18n/messages/src/features/workspaces/components/WorkspaceDrawerItem.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "id": "workspaceDrawer.item.noServicesAddedYet", - "defaultMessage": "!!!No services added yet", - "file": "src/features/workspaces/components/WorkspaceDrawerItem.js", - "start": { - "line": 12, - "column": 22 - }, - "end": { - "line": 15, - "column": 3 - } - }, - { - "id": "workspaceDrawer.item.contextMenuEdit", - "defaultMessage": "!!!edit", - "file": "src/features/workspaces/components/WorkspaceDrawerItem.js", - "start": { - "line": 16, - "column": 19 - }, - "end": { - "line": 19, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspaceSwitchingIndicator.json b/src/i18n/messages/src/features/workspaces/components/WorkspaceSwitchingIndicator.json deleted file mode 100644 index 4f3e6d55c..000000000 --- a/src/i18n/messages/src/features/workspaces/components/WorkspaceSwitchingIndicator.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "id": "workspaces.switchingIndicator.switchingTo", - "defaultMessage": "!!!Switching to", - "file": "src/features/workspaces/components/WorkspaceSwitchingIndicator.js", - "start": { - "line": 12, - "column": 15 - }, - "end": { - "line": 15, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json deleted file mode 100644 index ef8f1bebc..000000000 --- a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json +++ /dev/null @@ -1,106 +0,0 @@ -[ - { - "id": "settings.workspaces.headline", - "defaultMessage": "!!!Your workspaces", - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "start": { - "line": 17, - "column": 12 - }, - "end": { - "line": 20, - "column": 3 - } - }, - { - "id": "settings.workspaces.noWorkspacesAdded", - "defaultMessage": "!!!You haven't added any workspaces yet.", - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "start": { - "line": 21, - "column": 19 - }, - "end": { - "line": 24, - "column": 3 - } - }, - { - "id": "settings.workspaces.workspacesRequestFailed", - "defaultMessage": "!!!Could not load your workspaces", - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "start": { - "line": 25, - "column": 27 - }, - "end": { - "line": 28, - "column": 3 - } - }, - { - "id": "settings.workspaces.tryReloadWorkspaces", - "defaultMessage": "!!!Try again", - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "start": { - "line": 29, - "column": 23 - }, - "end": { - "line": 32, - "column": 3 - } - }, - { - "id": "settings.workspaces.updatedInfo", - "defaultMessage": "!!!Your changes have been saved", - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "start": { - "line": 33, - "column": 15 - }, - "end": { - "line": 36, - "column": 3 - } - }, - { - "id": "settings.workspaces.deletedInfo", - "defaultMessage": "!!!Workspace has been deleted", - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "start": { - "line": 37, - "column": 15 - }, - "end": { - "line": 40, - "column": 3 - } - }, - { - "id": "settings.workspaces.workspaceFeatureInfo", - "defaultMessage": "!!!Info about workspace feature", - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "start": { - "line": 41, - "column": 24 - }, - "end": { - "line": 44, - "column": 3 - } - }, - { - "id": "settings.workspaces.workspaceFeatureHeadline", - "defaultMessage": "!!!Less is More: Introducing Franz Workspaces", - "file": "src/features/workspaces/components/WorkspacesDashboard.js", - "start": { - "line": 45, - "column": 28 - }, - "end": { - "line": 48, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/helpers/validation-helpers.json b/src/i18n/messages/src/helpers/validation-helpers.json deleted file mode 100644 index 86bfe1500..000000000 --- a/src/i18n/messages/src/helpers/validation-helpers.json +++ /dev/null @@ -1,67 +0,0 @@ -[ - { - "id": "validation.required", - "defaultMessage": "!!!Field is required", - "file": "src/helpers/validation-helpers.js", - "start": { - "line": 4, - "column": 12 - }, - "end": { - "line": 7, - "column": 3 - } - }, - { - "id": "validation.email", - "defaultMessage": "!!!Email not valid", - "file": "src/helpers/validation-helpers.js", - "start": { - "line": 8, - "column": 9 - }, - "end": { - "line": 11, - "column": 3 - } - }, - { - "id": "validation.url", - "defaultMessage": "!!!Not a valid URL", - "file": "src/helpers/validation-helpers.js", - "start": { - "line": 12, - "column": 7 - }, - "end": { - "line": 15, - "column": 3 - } - }, - { - "id": "validation.minLength", - "defaultMessage": "!!!Too few characters", - "file": "src/helpers/validation-helpers.js", - "start": { - "line": 16, - "column": 13 - }, - "end": { - "line": 19, - "column": 3 - } - }, - { - "id": "validation.oneRequired", - "defaultMessage": "!!!At least one is required", - "file": "src/helpers/validation-helpers.js", - "start": { - "line": 20, - "column": 15 - }, - "end": { - "line": 23, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/i18n/globalMessages.json b/src/i18n/messages/src/i18n/globalMessages.json deleted file mode 100644 index 28001614f..000000000 --- a/src/i18n/messages/src/i18n/globalMessages.json +++ /dev/null @@ -1,80 +0,0 @@ -[ - { - "id": "global.api.unhealthy", - "defaultMessage": "!!!Can't connect to Franz Online Services", - "file": "src/i18n/globalMessages.js", - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 7, - "column": 3 - } - }, - { - "id": "global.notConnectedToTheInternet", - "defaultMessage": "!!!You are not connected to the internet.", - "file": "src/i18n/globalMessages.js", - "start": { - "line": 8, - "column": 29 - }, - "end": { - "line": 11, - "column": 3 - } - }, - { - "id": "global.spellchecking.language", - "defaultMessage": "!!!Spell checking language", - "file": "src/i18n/globalMessages.js", - "start": { - "line": 12, - "column": 24 - }, - "end": { - "line": 15, - "column": 3 - } - }, - { - "id": "global.spellchecker.useDefault", - "defaultMessage": "!!!Use System Default ({default})", - "file": "src/i18n/globalMessages.js", - "start": { - "line": 16, - "column": 29 - }, - "end": { - "line": 19, - "column": 3 - } - }, - { - "id": "global.spellchecking.autodetect", - "defaultMessage": "!!!Detect language automatically", - "file": "src/i18n/globalMessages.js", - "start": { - "line": 20, - "column": 34 - }, - "end": { - "line": 23, - "column": 3 - } - }, - { - "id": "global.spellchecking.autodetect.short", - "defaultMessage": "!!!Automatic", - "file": "src/i18n/globalMessages.js", - "start": { - "line": 24, - "column": 39 - }, - "end": { - "line": 27, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json deleted file mode 100644 index a2ce34cd4..000000000 --- a/src/i18n/messages/src/lib/Menu.json +++ /dev/null @@ -1,691 +0,0 @@ -[ - { - "id": "menu.edit", - "defaultMessage": "!!!Edit", - "file": "src/lib/Menu.js", - "start": { - "line": 14, - "column": 8 - }, - "end": { - "line": 17, - "column": 3 - } - }, - { - "id": "menu.edit.undo", - "defaultMessage": "!!!Undo", - "file": "src/lib/Menu.js", - "start": { - "line": 18, - "column": 8 - }, - "end": { - "line": 21, - "column": 3 - } - }, - { - "id": "menu.edit.redo", - "defaultMessage": "!!!Redo", - "file": "src/lib/Menu.js", - "start": { - "line": 22, - "column": 8 - }, - "end": { - "line": 25, - "column": 3 - } - }, - { - "id": "menu.edit.cut", - "defaultMessage": "!!!Cut", - "file": "src/lib/Menu.js", - "start": { - "line": 26, - "column": 7 - }, - "end": { - "line": 29, - "column": 3 - } - }, - { - "id": "menu.edit.copy", - "defaultMessage": "!!!Copy", - "file": "src/lib/Menu.js", - "start": { - "line": 30, - "column": 8 - }, - "end": { - "line": 33, - "column": 3 - } - }, - { - "id": "menu.edit.paste", - "defaultMessage": "!!!Paste", - "file": "src/lib/Menu.js", - "start": { - "line": 34, - "column": 9 - }, - "end": { - "line": 37, - "column": 3 - } - }, - { - "id": "menu.edit.pasteAndMatchStyle", - "defaultMessage": "!!!Paste And Match Style", - "file": "src/lib/Menu.js", - "start": { - "line": 38, - "column": 22 - }, - "end": { - "line": 41, - "column": 3 - } - }, - { - "id": "menu.edit.delete", - "defaultMessage": "!!!Delete", - "file": "src/lib/Menu.js", - "start": { - "line": 42, - "column": 10 - }, - "end": { - "line": 45, - "column": 3 - } - }, - { - "id": "menu.edit.selectAll", - "defaultMessage": "!!!Select All", - "file": "src/lib/Menu.js", - "start": { - "line": 46, - "column": 13 - }, - "end": { - "line": 49, - "column": 3 - } - }, - { - "id": "menu.edit.speech", - "defaultMessage": "!!!Speech", - "file": "src/lib/Menu.js", - "start": { - "line": 50, - "column": 10 - }, - "end": { - "line": 53, - "column": 3 - } - }, - { - "id": "menu.edit.startSpeaking", - "defaultMessage": "!!!Start Speaking", - "file": "src/lib/Menu.js", - "start": { - "line": 54, - "column": 17 - }, - "end": { - "line": 57, - "column": 3 - } - }, - { - "id": "menu.edit.stopSpeaking", - "defaultMessage": "!!!Stop Speaking", - "file": "src/lib/Menu.js", - "start": { - "line": 58, - "column": 16 - }, - "end": { - "line": 61, - "column": 3 - } - }, - { - "id": "menu.edit.startDictation", - "defaultMessage": "!!!Start Dictation", - "file": "src/lib/Menu.js", - "start": { - "line": 62, - "column": 18 - }, - "end": { - "line": 65, - "column": 3 - } - }, - { - "id": "menu.edit.emojiSymbols", - "defaultMessage": "!!!Emoji & Symbols", - "file": "src/lib/Menu.js", - "start": { - "line": 66, - "column": 16 - }, - "end": { - "line": 69, - "column": 3 - } - }, - { - "id": "menu.view.resetZoom", - "defaultMessage": "!!!Actual Size", - "file": "src/lib/Menu.js", - "start": { - "line": 70, - "column": 13 - }, - "end": { - "line": 73, - "column": 3 - } - }, - { - "id": "menu.view.zoomIn", - "defaultMessage": "!!!Zoom In", - "file": "src/lib/Menu.js", - "start": { - "line": 74, - "column": 10 - }, - "end": { - "line": 77, - "column": 3 - } - }, - { - "id": "menu.view.zoomOut", - "defaultMessage": "!!!Zoom Out", - "file": "src/lib/Menu.js", - "start": { - "line": 78, - "column": 11 - }, - "end": { - "line": 81, - "column": 3 - } - }, - { - "id": "menu.view.enterFullScreen", - "defaultMessage": "!!!Enter Full Screen", - "file": "src/lib/Menu.js", - "start": { - "line": 82, - "column": 19 - }, - "end": { - "line": 85, - "column": 3 - } - }, - { - "id": "menu.view.exitFullScreen", - "defaultMessage": "!!!Exit Full Screen", - "file": "src/lib/Menu.js", - "start": { - "line": 86, - "column": 18 - }, - "end": { - "line": 89, - "column": 3 - } - }, - { - "id": "menu.view.toggleFullScreen", - "defaultMessage": "!!!Toggle Full Screen", - "file": "src/lib/Menu.js", - "start": { - "line": 90, - "column": 20 - }, - "end": { - "line": 93, - "column": 3 - } - }, - { - "id": "menu.view.toggleDevTools", - "defaultMessage": "!!!Toggle Developer Tools", - "file": "src/lib/Menu.js", - "start": { - "line": 94, - "column": 18 - }, - "end": { - "line": 97, - "column": 3 - } - }, - { - "id": "menu.view.toggleServiceDevTools", - "defaultMessage": "!!!Toggle Service Developer Tools", - "file": "src/lib/Menu.js", - "start": { - "line": 98, - "column": 25 - }, - "end": { - "line": 101, - "column": 3 - } - }, - { - "id": "menu.view.reloadService", - "defaultMessage": "!!!Reload Service", - "file": "src/lib/Menu.js", - "start": { - "line": 102, - "column": 17 - }, - "end": { - "line": 105, - "column": 3 - } - }, - { - "id": "menu.view.reloadFranz", - "defaultMessage": "!!!Reload Franz", - "file": "src/lib/Menu.js", - "start": { - "line": 106, - "column": 15 - }, - "end": { - "line": 109, - "column": 3 - } - }, - { - "id": "menu.window.minimize", - "defaultMessage": "!!!Minimize", - "file": "src/lib/Menu.js", - "start": { - "line": 110, - "column": 12 - }, - "end": { - "line": 113, - "column": 3 - } - }, - { - "id": "menu.window.close", - "defaultMessage": "!!!Close", - "file": "src/lib/Menu.js", - "start": { - "line": 114, - "column": 9 - }, - "end": { - "line": 117, - "column": 3 - } - }, - { - "id": "menu.help.learnMore", - "defaultMessage": "!!!Learn More", - "file": "src/lib/Menu.js", - "start": { - "line": 118, - "column": 13 - }, - "end": { - "line": 121, - "column": 3 - } - }, - { - "id": "menu.help.changelog", - "defaultMessage": "!!!Changelog", - "file": "src/lib/Menu.js", - "start": { - "line": 122, - "column": 13 - }, - "end": { - "line": 125, - "column": 3 - } - }, - { - "id": "menu.help.support", - "defaultMessage": "!!!Support", - "file": "src/lib/Menu.js", - "start": { - "line": 126, - "column": 11 - }, - "end": { - "line": 129, - "column": 3 - } - }, - { - "id": "menu.help.tos", - "defaultMessage": "!!!Terms of Service", - "file": "src/lib/Menu.js", - "start": { - "line": 130, - "column": 7 - }, - "end": { - "line": 133, - "column": 3 - } - }, - { - "id": "menu.help.privacy", - "defaultMessage": "!!!Privacy Statement", - "file": "src/lib/Menu.js", - "start": { - "line": 134, - "column": 11 - }, - "end": { - "line": 137, - "column": 3 - } - }, - { - "id": "menu.file", - "defaultMessage": "!!!File", - "file": "src/lib/Menu.js", - "start": { - "line": 138, - "column": 8 - }, - "end": { - "line": 141, - "column": 3 - } - }, - { - "id": "menu.view", - "defaultMessage": "!!!View", - "file": "src/lib/Menu.js", - "start": { - "line": 142, - "column": 8 - }, - "end": { - "line": 145, - "column": 3 - } - }, - { - "id": "menu.services", - "defaultMessage": "!!!Services", - "file": "src/lib/Menu.js", - "start": { - "line": 146, - "column": 12 - }, - "end": { - "line": 149, - "column": 3 - } - }, - { - "id": "menu.window", - "defaultMessage": "!!!Window", - "file": "src/lib/Menu.js", - "start": { - "line": 150, - "column": 10 - }, - "end": { - "line": 153, - "column": 3 - } - }, - { - "id": "menu.help", - "defaultMessage": "!!!Help", - "file": "src/lib/Menu.js", - "start": { - "line": 154, - "column": 8 - }, - "end": { - "line": 157, - "column": 3 - } - }, - { - "id": "menu.app.about", - "defaultMessage": "!!!About Franz", - "file": "src/lib/Menu.js", - "start": { - "line": 158, - "column": 9 - }, - "end": { - "line": 161, - "column": 3 - } - }, - { - "id": "menu.app.announcement", - "defaultMessage": "!!!What's new?", - "file": "src/lib/Menu.js", - "start": { - "line": 162, - "column": 16 - }, - "end": { - "line": 165, - "column": 3 - } - }, - { - "id": "menu.app.settings", - "defaultMessage": "!!!Settings", - "file": "src/lib/Menu.js", - "start": { - "line": 166, - "column": 12 - }, - "end": { - "line": 169, - "column": 3 - } - }, - { - "id": "menu.app.hide", - "defaultMessage": "!!!Hide", - "file": "src/lib/Menu.js", - "start": { - "line": 170, - "column": 8 - }, - "end": { - "line": 173, - "column": 3 - } - }, - { - "id": "menu.app.hideOthers", - "defaultMessage": "!!!Hide Others", - "file": "src/lib/Menu.js", - "start": { - "line": 174, - "column": 14 - }, - "end": { - "line": 177, - "column": 3 - } - }, - { - "id": "menu.app.unhide", - "defaultMessage": "!!!Unhide", - "file": "src/lib/Menu.js", - "start": { - "line": 178, - "column": 10 - }, - "end": { - "line": 181, - "column": 3 - } - }, - { - "id": "menu.app.quit", - "defaultMessage": "!!!Quit", - "file": "src/lib/Menu.js", - "start": { - "line": 182, - "column": 8 - }, - "end": { - "line": 185, - "column": 3 - } - }, - { - "id": "menu.services.addNewService", - "defaultMessage": "!!!Add New Service...", - "file": "src/lib/Menu.js", - "start": { - "line": 186, - "column": 17 - }, - "end": { - "line": 189, - "column": 3 - } - }, - { - "id": "menu.workspaces.addNewWorkspace", - "defaultMessage": "!!!Add New Workspace...", - "file": "src/lib/Menu.js", - "start": { - "line": 190, - "column": 19 - }, - "end": { - "line": 193, - "column": 3 - } - }, - { - "id": "menu.workspaces.openWorkspaceDrawer", - "defaultMessage": "!!!Open workspace drawer", - "file": "src/lib/Menu.js", - "start": { - "line": 194, - "column": 23 - }, - "end": { - "line": 197, - "column": 3 - } - }, - { - "id": "menu.workspaces.closeWorkspaceDrawer", - "defaultMessage": "!!!Close workspace drawer", - "file": "src/lib/Menu.js", - "start": { - "line": 198, - "column": 24 - }, - "end": { - "line": 201, - "column": 3 - } - }, - { - "id": "menu.services.setNextServiceActive", - "defaultMessage": "!!!Activate next service...", - "file": "src/lib/Menu.js", - "start": { - "line": 202, - "column": 23 - }, - "end": { - "line": 205, - "column": 3 - } - }, - { - "id": "menu.services.activatePreviousService", - "defaultMessage": "!!!Activate previous service...", - "file": "src/lib/Menu.js", - "start": { - "line": 206, - "column": 27 - }, - "end": { - "line": 209, - "column": 3 - } - }, - { - "id": "sidebar.muteApp", - "defaultMessage": "!!!Disable notifications & audio", - "file": "src/lib/Menu.js", - "start": { - "line": 210, - "column": 11 - }, - "end": { - "line": 213, - "column": 3 - } - }, - { - "id": "sidebar.unmuteApp", - "defaultMessage": "!!!Enable notifications & audio", - "file": "src/lib/Menu.js", - "start": { - "line": 214, - "column": 13 - }, - "end": { - "line": 217, - "column": 3 - } - }, - { - "id": "menu.workspaces", - "defaultMessage": "!!!Workspaces", - "file": "src/lib/Menu.js", - "start": { - "line": 218, - "column": 14 - }, - "end": { - "line": 221, - "column": 3 - } - }, - { - "id": "menu.workspaces.defaultWorkspace", - "defaultMessage": "!!!Default", - "file": "src/lib/Menu.js", - "start": { - "line": 222, - "column": 20 - }, - "end": { - "line": 225, - "column": 3 - } - } -] \ No newline at end of file diff --git a/src/index.js b/src/index.js index 05c793d98..3fe996aa7 100644 --- a/src/index.js +++ b/src/index.js @@ -305,6 +305,20 @@ const createWindow = () => { }); }; +// Allow passing command line parameters/switches to electron +// https://electronjs.org/docs/api/chrome-command-line-switches +// used for Kerberos support +// Usage e.g. MACOS +// $ Franz.app/Contents/MacOS/Franz --auth-server-whitelist *.mydomain.com --auth-negotiate-delegate-whitelist *.mydomain.com +const argv = require('minimist')(process.argv.slice(1)); + +if (argv['auth-server-whitelist']) { + app.commandLine.appendSwitch('auth-server-whitelist', argv['auth-server-whitelist']); +} +if (argv['auth-negotiate-delegate-whitelist']) { + app.commandLine.appendSwitch('auth-negotiate-delegate-whitelist', argv['auth-negotiate-delegate-whitelist']); +} + // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index 534690fbb..31555dd5c 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js @@ -178,6 +178,7 @@ export default class UserStore extends Store { password, accountType, company, + locale: this.stores.app.locale, }); this.hasCompletedSignup = false; diff --git a/src/stores/lib/Reaction.js b/src/stores/lib/Reaction.js index b123ec01c..f2642908f 100644 --- a/src/stores/lib/Reaction.js +++ b/src/stores/lib/Reaction.js @@ -1,4 +1,3 @@ -// @flow import { autorun } from 'mobx'; export default class Reaction { @@ -15,14 +14,18 @@ export default class Reaction { start() { if (!this.isRunning) { this.dispose = autorun(() => this.reaction()); - this.isRunning = true; + this.isActive = true; } } stop() { if (this.isRunning) { this.dispose(); - this.isRunning = true; + this.isActive = false; } } } + +export const createReactions = reactions => ( + reactions.map(r => new Reaction(r)) +); -- cgit v1.2.3-70-g09d2