aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar André Oliveira <oliveira.andrerodrigues95@gmail.com>2023-10-27 01:23:59 +0100
committerLibravatar André Oliveira <oliveira.andrerodrigues95@gmail.com>2023-10-27 01:23:59 +0100
commitd157b865035a7b45484c0e52159da7f7670e9a86 (patch)
treef88655edc5c81f94df4bcbe6bc654995ca2af79d /src
parentMerge branch 'develop' into release (Bump to 6.5.2) (diff)
parentadd MentorPK as a contributor for code (#1427) (diff)
downloadferdium-app-d157b865035a7b45484c0e52159da7f7670e9a86.tar.gz
ferdium-app-d157b865035a7b45484c0e52159da7f7670e9a86.tar.zst
ferdium-app-d157b865035a7b45484c0e52159da7f7670e9a86.zip
Merge branch 'develop' into release (Bump to 6.6.0)v6.6.0
Diffstat (limited to 'src')
-rw-r--r--src/components/AppUpdateInfoBar.tsx4
-rw-r--r--src/components/settings/account/AccountDashboard.tsx4
-rw-r--r--src/components/settings/recipes/RecipesDashboard.tsx4
-rw-r--r--src/components/settings/services/ServicesDashboard.tsx2
-rw-r--r--src/components/settings/team/TeamDashboard.tsx4
-rw-r--r--src/components/ui/FullscreenLoader/index.tsx8
-rw-r--r--src/components/ui/FullscreenLoader/styles.ts1
-rw-r--r--src/components/ui/InfoBar.tsx18
-rw-r--r--src/components/ui/Infobox.tsx18
-rw-r--r--src/components/ui/Loader.tsx46
-rw-r--r--src/components/ui/button/index.tsx27
-rw-r--r--src/components/ui/loader/index.tsx41
-rw-r--r--src/electron/ipc-api/dnd.ts2
-rw-r--r--src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx18
-rw-r--r--src/features/workspaces/components/WorkspacesDashboard.tsx2
-rw-r--r--src/i18n/locales/de.json2
-rw-r--r--src/i18n/locales/pt.json76
-rw-r--r--src/themes/default/index.ts3
18 files changed, 111 insertions, 169 deletions
diff --git a/src/components/AppUpdateInfoBar.tsx b/src/components/AppUpdateInfoBar.tsx
index b8e1bb61e..103bd2900 100644
--- a/src/components/AppUpdateInfoBar.tsx
+++ b/src/components/AppUpdateInfoBar.tsx
@@ -44,7 +44,9 @@ const AppUpdateInfoBar = (props: IProps) => {
44 onHide={onHide} 44 onHide={onHide}
45 > 45 >
46 <Icon icon={mdiInformation} /> 46 <Icon icon={mdiInformation} />
47 {intl.formatMessage(messages.updateAvailable)}{' '} 47 <p style={{ padding: '0 0.5rem 0 1rem' }}>
48 {intl.formatMessage(messages.updateAvailable)}
49 </p>
48 <button 50 <button
49 className="info-bar__inline-button" 51 className="info-bar__inline-button"
50 type="button" 52 type="button"
diff --git a/src/components/settings/account/AccountDashboard.tsx b/src/components/settings/account/AccountDashboard.tsx
index de323c06e..ffa684458 100644
--- a/src/components/settings/account/AccountDashboard.tsx
+++ b/src/components/settings/account/AccountDashboard.tsx
@@ -4,7 +4,7 @@ import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { Tooltip as ReactTooltip } from 'react-tooltip'; 4import { Tooltip as ReactTooltip } from 'react-tooltip';
5import { H1, H2 } from '../../ui/headline'; 5import { H1, H2 } from '../../ui/headline';
6 6
7import Loader from '../../ui/Loader'; 7import Loader from '../../ui/loader';
8import Button from '../../ui/button'; 8import Button from '../../ui/button';
9import Infobox from '../../ui/infobox/index'; 9import Infobox from '../../ui/infobox/index';
10import { LOCAL_SERVER, LIVE_FRANZ_API } from '../../../config'; 10import { LOCAL_SERVER, LIVE_FRANZ_API } from '../../../config';
@@ -123,7 +123,7 @@ class AccountDashboard extends Component<IProp> {
123 )} 123 )}
124 {!isUsingWithoutAccount && ( 124 {!isUsingWithoutAccount && (
125 <> 125 <>
126 {isLoading && <Loader />} 126 {isLoading && <Loader color="#FFFFFF" />}
127 127
128 {!isLoading && userInfoRequestFailed && ( 128 {!isLoading && userInfoRequestFailed && (
129 <Infobox 129 <Infobox
diff --git a/src/components/settings/recipes/RecipesDashboard.tsx b/src/components/settings/recipes/RecipesDashboard.tsx
index 7b7ba19b1..c7aeaa9b3 100644
--- a/src/components/settings/recipes/RecipesDashboard.tsx
+++ b/src/components/settings/recipes/RecipesDashboard.tsx
@@ -10,7 +10,7 @@ import { H1, H2, H3 } from '../../ui/headline';
10import SearchInput from '../../ui/SearchInput'; 10import SearchInput from '../../ui/SearchInput';
11import Infobox from '../../ui/infobox/index'; 11import Infobox from '../../ui/infobox/index';
12import RecipeItem from './RecipeItem'; 12import RecipeItem from './RecipeItem';
13import Loader from '../../ui/Loader'; 13import Loader from '../../ui/loader';
14import Appear from '../../ui/effects/Appear'; 14import Appear from '../../ui/effects/Appear';
15import { FERDIUM_SERVICE_REQUEST } from '../../../config'; 15import { FERDIUM_SERVICE_REQUEST } from '../../../config';
16import RecipePreview from '../../../models/RecipePreview'; 16import RecipePreview from '../../../models/RecipePreview';
@@ -219,7 +219,7 @@ class RecipesDashboard extends Component<IProps, IState> {
219 <Icon icon={mdiOpenInNew} /> 219 <Icon icon={mdiOpenInNew} />
220 </a> 220 </a>
221 </div> 221 </div>
222 {/* )} */} 222
223 {isLoading ? ( 223 {isLoading ? (
224 <Loader /> 224 <Loader />
225 ) : ( 225 ) : (
diff --git a/src/components/settings/services/ServicesDashboard.tsx b/src/components/settings/services/ServicesDashboard.tsx
index d64779a36..b8c3ce3f0 100644
--- a/src/components/settings/services/ServicesDashboard.tsx
+++ b/src/components/settings/services/ServicesDashboard.tsx
@@ -5,7 +5,7 @@ import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
5import { To } from 'history'; 5import { To } from 'history';
6import SearchInput from '../../ui/SearchInput'; 6import SearchInput from '../../ui/SearchInput';
7import Infobox from '../../ui/Infobox'; 7import Infobox from '../../ui/Infobox';
8import Loader from '../../ui/Loader'; 8import Loader from '../../ui/loader';
9import FAB from '../../ui/FAB'; 9import FAB from '../../ui/FAB';
10import ServiceItem from './ServiceItem'; 10import ServiceItem from './ServiceItem';
11import Appear from '../../ui/effects/Appear'; 11import Appear from '../../ui/effects/Appear';
diff --git a/src/components/settings/team/TeamDashboard.tsx b/src/components/settings/team/TeamDashboard.tsx
index 77bccb8c3..406656160 100644
--- a/src/components/settings/team/TeamDashboard.tsx
+++ b/src/components/settings/team/TeamDashboard.tsx
@@ -6,7 +6,7 @@ import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
6import { Tooltip as ReactTooltip } from 'react-tooltip'; 6import { Tooltip as ReactTooltip } from 'react-tooltip';
7import withStyles, { WithStylesProps } from 'react-jss'; 7import withStyles, { WithStylesProps } from 'react-jss';
8import classnames from 'classnames'; 8import classnames from 'classnames';
9import Loader from '../../ui/Loader'; 9import Loader from '../../ui/loader';
10import Button from '../../ui/button'; 10import Button from '../../ui/button';
11import Infobox from '../../ui/Infobox'; 11import Infobox from '../../ui/Infobox';
12import { H1 } from '../../ui/headline'; 12import { H1 } from '../../ui/headline';
@@ -128,7 +128,7 @@ class TeamDashboard extends Component<IProps> {
128 </span> 128 </span>
129 </div> 129 </div>
130 <div className="settings__body"> 130 <div className="settings__body">
131 {isLoading && <Loader />} 131 {isLoading && <Loader color="#FFFFFF" />}
132 132
133 {!isLoading && userInfoRequestFailed && ( 133 {!isLoading && userInfoRequestFailed && (
134 <Infobox 134 <Infobox
diff --git a/src/components/ui/FullscreenLoader/index.tsx b/src/components/ui/FullscreenLoader/index.tsx
index 002ee7932..09c1d5fbb 100644
--- a/src/components/ui/FullscreenLoader/index.tsx
+++ b/src/components/ui/FullscreenLoader/index.tsx
@@ -2,7 +2,7 @@ import { Component, ReactElement, ReactNode } from 'react';
2import { observer } from 'mobx-react'; 2import { observer } from 'mobx-react';
3import withStyles, { WithStylesProps } from 'react-jss'; 3import withStyles, { WithStylesProps } from 'react-jss';
4import classnames from 'classnames'; 4import classnames from 'classnames';
5import Loader from '../Loader'; 5import Loader from '../loader/index';
6import styles from './styles'; 6import styles from './styles';
7import { H1 } from '../headline'; 7import { H1 } from '../headline';
8import { Theme } from '../../../themes'; 8import { Theme } from '../../../themes';
@@ -21,7 +21,7 @@ class FullscreenLoader extends Component<IProps> {
21 render(): ReactElement { 21 render(): ReactElement {
22 const { 22 const {
23 classes, 23 classes,
24 theme = '', 24 theme,
25 className = '', 25 className = '',
26 spinnerColor = '', 26 spinnerColor = '',
27 children = null, 27 children = null,
@@ -39,9 +39,7 @@ class FullscreenLoader extends Component<IProps> {
39 > 39 >
40 <H1 className={classes.title}>{title}</H1> 40 <H1 className={classes.title}>{title}</H1>
41 <Loader 41 <Loader
42 color={ 42 color={spinnerColor || theme?.colorFullscreenLoaderSpinner}
43 spinnerColor || (theme && theme.colorFullscreenLoaderSpinner)
44 }
45 loaded={loaded} 43 loaded={loaded}
46 /> 44 />
47 {children && <div className={classes.content}>{children}</div>} 45 {children && <div className={classes.content}>{children}</div>}
diff --git a/src/components/ui/FullscreenLoader/styles.ts b/src/components/ui/FullscreenLoader/styles.ts
index 64d24e4ce..9a1b24400 100644
--- a/src/components/ui/FullscreenLoader/styles.ts
+++ b/src/components/ui/FullscreenLoader/styles.ts
@@ -12,6 +12,7 @@ export default {
12 alignItems: 'center', 12 alignItems: 'center',
13 textAlign: 'center', 13 textAlign: 'center',
14 height: 'auto', 14 height: 'auto',
15 gap: 8,
15 }, 16 },
16 title: { 17 title: {
17 fontSize: 35, 18 fontSize: 35,
diff --git a/src/components/ui/InfoBar.tsx b/src/components/ui/InfoBar.tsx
index b7bfe0fa6..ae37546df 100644
--- a/src/components/ui/InfoBar.tsx
+++ b/src/components/ui/InfoBar.tsx
@@ -1,11 +1,11 @@
1import { Component, MouseEventHandler, ReactNode } from 'react'; 1import { Component, MouseEventHandler, ReactNode } from 'react';
2import { observer } from 'mobx-react'; 2import { observer } from 'mobx-react';
3import classnames from 'classnames'; 3import classnames from 'classnames';
4import Loader from 'react-loader';
5import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
6 5
7import { mdiClose } from '@mdi/js'; 6import { mdiClose } from '@mdi/js';
8import { noop } from 'lodash'; 7import { noop } from 'lodash';
8import Loader from './loader/index';
9import Appear from './effects/Appear'; 9import Appear from './effects/Appear';
10import Icon from './icon'; 10import Icon from './icon';
11 11
@@ -67,15 +67,13 @@ class InfoBar extends Component<IProps> {
67 {children} 67 {children}
68 {ctaLabel && ( 68 {ctaLabel && (
69 <button type="button" className="info-bar__cta" onClick={onClick}> 69 <button type="button" className="info-bar__cta" onClick={onClick}>
70 <Loader 70 <div
71 loaded={!ctaLoading} 71 className="contentWrapper"
72 lines={10} 72 style={{ display: 'flex', gap: '8px' }}
73 scale={0.3} 73 >
74 color="#FFF" 74 <Loader size={18} loaded={!ctaLoading} color="#FFFFFF" />
75 // @ts-expect-error Property 'component' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<ReactLoader> & Readonly<LoaderProps> 75 {ctaLabel}
76 component="span" 76 </div>
77 />
78 {ctaLabel}
79 </button> 77 </button>
80 )} 78 )}
81 {!sticky && ( 79 {!sticky && (
diff --git a/src/components/ui/Infobox.tsx b/src/components/ui/Infobox.tsx
index a794a5e9b..742717ed7 100644
--- a/src/components/ui/Infobox.tsx
+++ b/src/components/ui/Infobox.tsx
@@ -1,10 +1,10 @@
1import { Component, MouseEventHandler, ReactElement, ReactNode } from 'react'; 1import { Component, MouseEventHandler, ReactElement, ReactNode } from 'react';
2import classnames from 'classnames'; 2import classnames from 'classnames';
3import Loader from 'react-loader';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
5import { mdiAlert, mdiCheckboxMarkedCircleOutline, mdiClose } from '@mdi/js'; 4import { mdiAlert, mdiCheckboxMarkedCircleOutline, mdiClose } from '@mdi/js';
6import { noop } from 'lodash'; 5import { noop } from 'lodash';
7import { observer } from 'mobx-react'; 6import { observer } from 'mobx-react';
7import Loader from './loader/index';
8import Icon from './icon'; 8import Icon from './icon';
9 9
10const icons = { 10const icons = {
@@ -80,15 +80,13 @@ class Infobox extends Component<IProps, IState> {
80 <div className="infobox__content">{children}</div> 80 <div className="infobox__content">{children}</div>
81 {ctaLabel && ( 81 {ctaLabel && (
82 <button className="infobox__cta" onClick={ctaOnClick} type="button"> 82 <button className="infobox__cta" onClick={ctaOnClick} type="button">
83 <Loader 83 <div
84 loaded={!ctaLoading} 84 className="contentWrapper"
85 lines={10} 85 style={{ display: 'flex', gap: '8px' }}
86 scale={0.3} 86 >
87 color="#FFF" 87 <Loader size={18} loaded={!ctaLoading} color="#FFFFFF" />
88 // @ts-expect-error Property 'component' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<ReactLoader> & Readonly<LoaderProps> 88 {ctaLabel}
89 component="span" 89 </div>
90 />
91 {ctaLabel}
92 </button> 90 </button>
93 )} 91 )}
94 {dismissible && ( 92 {dismissible && (
diff --git a/src/components/ui/Loader.tsx b/src/components/ui/Loader.tsx
deleted file mode 100644
index d4457ae5f..000000000
--- a/src/components/ui/Loader.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
1import { Component, ReactElement, ReactNode } from 'react';
2import { observer, inject } from 'mobx-react';
3import Loader from 'react-loader';
4
5import { FerdiumStores } from '../../@types/stores.types';
6
7interface IProps {
8 className?: string;
9 color?: string;
10 loaded?: boolean;
11 stores?: FerdiumStores;
12 children?: ReactNode;
13}
14
15// TODO: Can this file be merged into the './loader/index.tsx' file?
16@inject('stores')
17@observer
18class LoaderComponent extends Component<IProps> {
19 render(): ReactElement {
20 const {
21 loaded = false,
22 color = 'ACCENT',
23 className,
24 children,
25 } = this.props;
26
27 const loaderColor =
28 color === 'ACCENT' ? this.props.stores!.settings.app.accentColor : color;
29
30 return (
31 // @ts-expect-error Property 'children' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<ReactLoader> & Readonly<LoaderProps>'
32 <Loader
33 loaded={loaded}
34 width={4}
35 scale={0.6}
36 color={loaderColor}
37 component="span"
38 className={className}
39 >
40 {children}
41 </Loader>
42 );
43 }
44}
45
46export default LoaderComponent;
diff --git a/src/components/ui/button/index.tsx b/src/components/ui/button/index.tsx
index c37a88afa..f8bcf76b2 100644
--- a/src/components/ui/button/index.tsx
+++ b/src/components/ui/button/index.tsx
@@ -5,7 +5,7 @@ import { Property } from 'csstype';
5import { noop } from 'lodash'; 5import { noop } from 'lodash';
6import { Component, MouseEventHandler } from 'react'; 6import { Component, MouseEventHandler } from 'react';
7import withStyles, { WithStylesProps } from 'react-jss'; 7import withStyles, { WithStylesProps } from 'react-jss';
8import Loader from 'react-loader'; 8import Loader from '../loader/index';
9import { Theme } from '../../../themes'; 9import { Theme } from '../../../themes';
10import { IFormField } from '../typings/generic'; 10import { IFormField } from '../typings/generic';
11 11
@@ -111,16 +111,8 @@ const styles = (theme: Theme) => ({
111 disabled: { 111 disabled: {
112 opacity: theme.inputDisabledOpacity, 112 opacity: theme.inputDisabledOpacity,
113 }, 113 },
114 loader: {
115 position: 'relative' as Property.Position,
116 width: 20,
117 height: 18,
118 zIndex: 9999,
119 },
120 loaderContainer: { 114 loaderContainer: {
121 width: (props: IProps): string => (props.busy ? '40px' : '0'),
122 height: 20, 115 height: 20,
123 overflow: 'hidden',
124 transition: loaderContainerTransition, 116 transition: loaderContainerTransition,
125 marginLeft: (props: IProps): number => (props.busy ? 20 : 10), 117 marginLeft: (props: IProps): number => (props.busy ? 20 : 10),
126 marginRight: (props: IProps): number => (props.busy ? -20 : -10), 118 marginRight: (props: IProps): number => (props.busy ? -20 : -10),
@@ -200,18 +192,11 @@ class ButtonComponent extends Component<IProps, IState> {
200 192
201 const content = ( 193 const content = (
202 <> 194 <>
203 <div className={classes.loaderContainer}> 195 {showLoader && (
204 {showLoader && ( 196 <div className={classes.loaderContainer}>
205 <Loader 197 <Loader size={18} color="#FFFFFF" />
206 loaded={false} 198 </div>
207 width={4} 199 )}
208 scale={0.45}
209 // color={theme.buttonLoaderColor[buttonType!]}
210 // @ts-expect-error Property 'parentClassName' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<ReactLoader> & Readonly<LoaderProps>
211 parentClassName={classes.loader}
212 />
213 )}
214 </div>
215 <div className={classes.label}> 200 <div className={classes.label}>
216 {icon && <Icon path={icon} size={0.8} className={classes.icon} />} 201 {icon && <Icon path={icon} size={0.8} className={classes.icon} />}
217 {label} 202 {label}
diff --git a/src/components/ui/loader/index.tsx b/src/components/ui/loader/index.tsx
index 957899bdc..2cee00d96 100644
--- a/src/components/ui/loader/index.tsx
+++ b/src/components/ui/loader/index.tsx
@@ -1,26 +1,39 @@
1import classnames from 'classnames'; 1import classnames from 'classnames';
2import { Component } from 'react'; 2import { Component } from 'react';
3import injectStyle, { WithStylesProps } from 'react-jss'; 3import injectStyle, { WithStylesProps } from 'react-jss';
4import ReactLoader from 'react-loader'; 4import { Oval } from 'react-loader-spinner';
5import { Theme } from '../../../themes'; 5import { inject } from 'mobx-react';
6import { FerdiumStores } from '../../../@types/stores.types';
6 7
7const styles = (theme: Theme) => ({ 8const styles = () => ({
8 container: { 9 container: {
9 position: 'relative', 10 position: 'relative',
10 height: 60, 11 display: 'flex',
12 justifyContent: 'center',
13 alignItems: 'center',
14 height: 'inherit',
11 }, 15 },
12 loader: {},
13 color: theme.colorText,
14}); 16});
15 17
16interface IProps extends WithStylesProps<typeof styles> { 18interface IProps extends WithStylesProps<typeof styles> {
17 className?: string; 19 className?: string;
18 color?: string; 20 color?: string;
21 size?: number;
22 loaded?: boolean;
23 stores?: FerdiumStores;
19} 24}
20 25
26@inject('stores')
21class LoaderComponent extends Component<IProps> { 27class LoaderComponent extends Component<IProps> {
22 render() { 28 render() {
23 const { classes, className, color } = this.props; 29 const {
30 classes,
31 className,
32 size = 36,
33 color = this.props.stores?.settings.app.accentColor,
34 loaded = false,
35 } = this.props;
36 const loaderColor = color || '#FFFFFF';
24 37
25 return ( 38 return (
26 <div 39 <div
@@ -30,13 +43,13 @@ class LoaderComponent extends Component<IProps> {
30 })} 43 })}
31 data-type="franz-loader" 44 data-type="franz-loader"
32 > 45 >
33 <ReactLoader 46 <Oval
34 loaded={false} 47 strokeWidth={5}
35 width={4} 48 color={loaderColor}
36 scale={0.75} 49 secondaryColor={loaderColor}
37 color={color || classes.color} 50 height={size}
38 // @ts-expect-error Property 'parentClassName' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<ReactLoader> & Readonly<LoaderProps></LoaderProps> 51 width={size}
39 parentClassName={classes.loader} 52 visible={!loaded}
40 /> 53 />
41 </div> 54 </div>
42 ); 55 );
diff --git a/src/electron/ipc-api/dnd.ts b/src/electron/ipc-api/dnd.ts
index 6e6e0920f..30ace7c84 100644
--- a/src/electron/ipc-api/dnd.ts
+++ b/src/electron/ipc-api/dnd.ts
@@ -17,7 +17,7 @@ export default async () => {
17 } 17 }
18 18
19 try { 19 try {
20 const isDND = getDoNotDisturb(); 20 const isDND = await getDoNotDisturb();
21 debug('Fetching DND state, set to', isDND); 21 debug('Fetching DND state, set to', isDND);
22 return isDND; 22 return isDND;
23 } catch (error) { 23 } catch (error) {
diff --git a/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx b/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx
index e1cc0f785..0fce811e5 100644
--- a/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx
+++ b/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx
@@ -3,9 +3,8 @@ import { observer } from 'mobx-react';
3import withStyles, { WithStylesProps } from 'react-jss'; 3import withStyles, { WithStylesProps } from 'react-jss';
4import classnames from 'classnames'; 4import classnames from 'classnames';
5import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 5import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
6import Loader from '../../../components/ui/loader/index'; 6import Loader from '../../../components/ui/loader';
7import { workspaceStore } from '../index'; 7import { workspaceStore } from '../index';
8import { Theme } from '../../../themes';
9 8
10const messages = defineMessages({ 9const messages = defineMessages({
11 switchingTo: { 10 switchingTo: {
@@ -41,8 +40,6 @@ const styles = theme => ({
41 zIndex: 200, 40 zIndex: 200,
42 }, 41 },
43 spinner: { 42 spinner: {
44 width: 40,
45 height: 40,
46 marginRight: 10, 43 marginRight: 10,
47 }, 44 },
48 message: { 45 message: {
@@ -52,14 +49,14 @@ const styles = theme => ({
52 }, 49 },
53}); 50});
54 51
55interface IProps extends WithStylesProps<typeof styles>, WrappedComponentProps { 52interface IProps
56 theme?: Theme; 53 extends WithStylesProps<typeof styles>,
57} 54 WrappedComponentProps {}
58 55
59@observer 56@observer
60class WorkspaceSwitchingIndicator extends Component<IProps> { 57class WorkspaceSwitchingIndicator extends Component<IProps> {
61 render(): ReactElement | null { 58 render(): ReactElement | null {
62 const { classes, intl, theme } = this.props; 59 const { classes, intl } = this.props;
63 const { isSwitchingWorkspace, nextWorkspace } = workspaceStore; 60 const { isSwitchingWorkspace, nextWorkspace } = workspaceStore;
64 61
65 if (!isSwitchingWorkspace) { 62 if (!isSwitchingWorkspace) {
@@ -73,10 +70,7 @@ class WorkspaceSwitchingIndicator extends Component<IProps> {
73 return ( 70 return (
74 <div className={classnames([classes.wrapper])}> 71 <div className={classnames([classes.wrapper])}>
75 <div className={classes.component}> 72 <div className={classes.component}>
76 <Loader 73 <Loader className={classes.spinner} color="#FFFFFF" />
77 className={classes.spinner}
78 color={theme?.workspaces.switchingIndicator.spinnerColor}
79 />
80 <p className={classes.message}> 74 <p className={classes.message}>
81 {`${intl.formatMessage(messages.switchingTo)} ${nextWorkspaceName}`} 75 {`${intl.formatMessage(messages.switchingTo)} ${nextWorkspaceName}`}
82 </p> 76 </p>
diff --git a/src/features/workspaces/components/WorkspacesDashboard.tsx b/src/features/workspaces/components/WorkspacesDashboard.tsx
index ba06730a0..0a417bffd 100644
--- a/src/features/workspaces/components/WorkspacesDashboard.tsx
+++ b/src/features/workspaces/components/WorkspacesDashboard.tsx
@@ -3,7 +3,7 @@ import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import withStyles, { WithStylesProps } from 'react-jss'; 4import withStyles, { WithStylesProps } from 'react-jss';
5import Infobox from '../../../components/ui/infobox/index'; 5import Infobox from '../../../components/ui/infobox/index';
6import Loader from '../../../components/ui/Loader'; 6import Loader from '../../../components/ui/loader';
7import WorkspaceItem from './WorkspaceItem'; 7import WorkspaceItem from './WorkspaceItem';
8import CreateWorkspaceForm from './CreateWorkspaceForm'; 8import CreateWorkspaceForm from './CreateWorkspaceForm';
9import Request from '../../../stores/lib/Request'; 9import Request from '../../../stores/lib/Request';
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index ea7df29e2..66514ad8f 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -9,6 +9,8 @@
9 "connectionLostBanner.cta": "Dienst neu laden", 9 "connectionLostBanner.cta": "Dienst neu laden",
10 "connectionLostBanner.informationLink": "Was ist passiert?", 10 "connectionLostBanner.informationLink": "Was ist passiert?",
11 "connectionLostBanner.message": "Oh nein! Ferdium hat die Verbindung zu „{name}” verloren.", 11 "connectionLostBanner.message": "Oh nein! Ferdium hat die Verbindung zu „{name}” verloren.",
12 "downloadManager.empty": "Ihre Download-Liste ist leer.",
13 "downloadManager.headline": "Download-Manager",
12 "feature.basicAuth.signIn": "Anmelden", 14 "feature.basicAuth.signIn": "Anmelden",
13 "feature.publishDebugInfo.error": "Beim Veröffentlichen der Debug-Informationen ist ein Fehler aufgetreten. Bitte versuche es später noch einmal oder sehe dir die Konsole für weitere Informationen an.", 15 "feature.publishDebugInfo.error": "Beim Veröffentlichen der Debug-Informationen ist ein Fehler aufgetreten. Bitte versuche es später noch einmal oder sehe dir die Konsole für weitere Informationen an.",
14 "feature.publishDebugInfo.info": "Die Veröffentlichung deiner Debug-Informationen hilft uns, Probleme und Fehler in Ferdium zu finden. Indem du deine Debug-Informationen veröffentlichst, akzeptierst du die Datenschutzbestimmungen und Nutzungsbedingungen vom Ferdium Debugger", 16 "feature.publishDebugInfo.info": "Die Veröffentlichung deiner Debug-Informationen hilft uns, Probleme und Fehler in Ferdium zu finden. Indem du deine Debug-Informationen veröffentlichst, akzeptierst du die Datenschutzbestimmungen und Nutzungsbedingungen vom Ferdium Debugger",
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index 4aab9ccb6..f5a56f598 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -18,32 +18,32 @@
18 "feature.publishDebugInfo.terms": "Termos de serviço", 18 "feature.publishDebugInfo.terms": "Termos de serviço",
19 "feature.publishDebugInfo.title": "Publicar informações de depuração", 19 "feature.publishDebugInfo.title": "Publicar informações de depuração",
20 "feature.quickSwitch.info": "Seleccione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.", 20 "feature.quickSwitch.info": "Seleccione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.",
21 "feature.quickSwitch.search": "A procurar...", 21 "feature.quickSwitch.search": "Procurar...",
22 "feature.quickSwitch.title": "Troca Rápida", 22 "feature.quickSwitch.title": "Troca Rápida",
23 "global.api.unhealthy": "Não é possível conectar-se aos serviços online do {serverNameParse}", 23 "global.api.unhealthy": "Não é possível conectar-se aos serviços online do {serverNameParse}",
24 "global.cancel": "cancelar", 24 "global.cancel": "Cancelar",
25 "global.edit": "Editar", 25 "global.edit": "Editar",
26 "global.no": "Não", 26 "global.no": "Não",
27 "global.notConnectedToTheInternet": "Não está ligado à internet.", 27 "global.notConnectedToTheInternet": "Não está ligado à internet.",
28 "global.ok": "OK", 28 "global.ok": "Ok",
29 "global.quit": "Encerrar", 29 "global.quit": "Encerrar",
30 "global.quitConfirmation": "Você realmente quer sair do Ferdium?", 30 "global.quitConfirmation": "Quer mesmo sair do Ferdium?",
31 "global.save": "Guardar", 31 "global.save": "Guardar",
32 "global.settings": "Confirgurações", 32 "global.settings": "Definições",
33 "global.spellchecker.useDefault": "Use o padrão de sistema ({default})", 33 "global.spellchecker.useDefault": "Use o padrão de sistema ({default})",
34 "global.spellchecking.autodetect": "Detectar idioma automaticamente", 34 "global.spellchecking.autodetect": "Detectar idioma automaticamente",
35 "global.spellchecking.autodetect.short": "Automático", 35 "global.spellchecking.autodetect.short": "Automático",
36 "global.spellchecking.language": "Idioma para corrector ortográfico", 36 "global.spellchecking.language": "Idioma do corretor ortográfico",
37 "global.submit": "submeter", 37 "global.submit": "Submeter",
38 "global.userAgentHelp": "Use 'https://whatmyuseragent.com/' (para descobrir) ou 'https://developers.whatismybrowser.com/useragents/explore/' (para escolher) o agente de usuário desejado e copie e cole aqui.", 38 "global.userAgentHelp": "Use 'https://whatmyuseragent.com/' (para descobrir) ou 'https://developers.whatismybrowser.com/useragents/explore/' (para escolher) o User-Agent desejado e copie e cole aqui.",
39 "global.userAgentPref": "Agente do usuário", 39 "global.userAgentPref": "User Agent",
40 "global.yes": "sim", 40 "global.yes": "Sim",
41 "infobar.authRequestFailed": "Houve erros na autenticaçao. Se este erro persistir, por favor, tente desligar e autenticar novamente.", 41 "infobar.authRequestFailed": "Houve erros na autenticação. Se este erro persistir, por favor, tente desligar e autenticar novamente.",
42 "infobar.buttonChangelog": "O que é novo?", 42 "infobar.buttonChangelog": "O que é novo?",
43 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações", 43 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações",
44 "infobar.buttonReloadServices": "Reiniciar serviços", 44 "infobar.buttonReloadServices": "Reiniciar serviços",
45 "infobar.hide": "Ocultar", 45 "infobar.hide": "Ocultar",
46 "infobar.requiredRequestsFailed": "Não foi possível reiniciar os serviços e informações de utilizador", 46 "infobar.requiredRequestsFailed": "Não foi possível carregar os serviços e informações de utilizador",
47 "infobar.servicesUpdated": "Os seus serviços foram atualizados.", 47 "infobar.servicesUpdated": "Os seus serviços foram atualizados.",
48 "infobar.updateAvailable": "Está disponível uma nova atualização do Ferdium.", 48 "infobar.updateAvailable": "Está disponível uma nova atualização do Ferdium.",
49 "infobox.dismiss": "Dispensar", 49 "infobox.dismiss": "Dispensar",
@@ -60,7 +60,7 @@
60 "locked.touchId": "Desbloquear com Touch ID", 60 "locked.touchId": "Desbloquear com Touch ID",
61 "locked.unlockWithPassword": "Desbloquear com palavra-passe", 61 "locked.unlockWithPassword": "Desbloquear com palavra-passe",
62 "login.changeServer": "Mude aqui!", 62 "login.changeServer": "Mude aqui!",
63 "login.changeServerMessage": "Você está usando o Servidor {serverNameParse}, deseja mudar?", 63 "login.changeServerMessage": "Está a usar o Servidor {serverNameParse}, deseja mudar?",
64 "login.customServerQuestion": "Usa uma conta Franz para entrar?", 64 "login.customServerQuestion": "Usa uma conta Franz para entrar?",
65 "login.customServerSuggestion": "Tente importar a sua conta Franz para Ferdium", 65 "login.customServerSuggestion": "Tente importar a sua conta Franz para Ferdium",
66 "login.email.label": "Endereço de E-mail", 66 "login.email.label": "Endereço de E-mail",
@@ -81,7 +81,7 @@
81 "menu.app.hideOthers": "Ocultar Outros", 81 "menu.app.hideOthers": "Ocultar Outros",
82 "menu.app.unhide": "Exibir", 82 "menu.app.unhide": "Exibir",
83 "menu.edit": "Editar", 83 "menu.edit": "Editar",
84 "menu.edit.copy": "copiar", 84 "menu.edit.copy": "Copiar",
85 "menu.edit.cut": "Recortar", 85 "menu.edit.cut": "Recortar",
86 "menu.edit.delete": "Apagar", 86 "menu.edit.delete": "Apagar",
87 "menu.edit.emojiSymbols": "Emoji & Símbolos", 87 "menu.edit.emojiSymbols": "Emoji & Símbolos",
@@ -132,10 +132,10 @@
132 "menu.view.toggleNavigationBar": "Mostrar/esconder Navegação", 132 "menu.view.toggleNavigationBar": "Mostrar/esconder Navegação",
133 "menu.view.toggleServiceDevTools": "Ativar/desativar ferramentas de programador de serviço", 133 "menu.view.toggleServiceDevTools": "Ativar/desativar ferramentas de programador de serviço",
134 "menu.view.toggleTodosDevTools": "Ativar/desativar Ferramentas de Programador para Tarefas", 134 "menu.view.toggleTodosDevTools": "Ativar/desativar Ferramentas de Programador para Tarefas",
135 "menu.view.zoomIn": "Aumentar zoom", 135 "menu.view.zoomIn": "Mais Zoom",
136 "menu.view.zoomOut": "Diminuir o zoom", 136 "menu.view.zoomOut": "Diminuir Zoom",
137 "menu.window": "Janela", 137 "menu.window": "Janela",
138 "menu.window.close": "FECHAR", 138 "menu.window.close": "Fechar",
139 "menu.window.minimize": "Minimizar", 139 "menu.window.minimize": "Minimizar",
140 "menu.workspaces": "Áreas de trabalho", 140 "menu.workspaces": "Áreas de trabalho",
141 "menu.workspaces.addNewWorkspace": "Adicionar nova área de trabalho...", 141 "menu.workspaces.addNewWorkspace": "Adicionar nova área de trabalho...",
@@ -146,8 +146,8 @@
146 "password.headline": "Redefinir senha", 146 "password.headline": "Redefinir senha",
147 "password.link.login": "Entrar na sua conta", 147 "password.link.login": "Entrar na sua conta",
148 "password.link.signup": "Criar uma conta gratuita", 148 "password.link.signup": "Criar uma conta gratuita",
149 "password.noUser": "Nenhum usuário com esse endereço de e-mail foi encontrado", 149 "password.noUser": "Não foi encontrado nenhum utilizador com este e-mail",
150 "password.successInfo": "Sua nova senha foi enviada para seu endereço de e-mail", 150 "password.successInfo": "A nova palavra-passe foi enviada para o seu endereço de e-mail",
151 "service.crashHandler.action": "Recarregar {name}", 151 "service.crashHandler.action": "Recarregar {name}",
152 "service.crashHandler.autoReload": "A tentar restabelecer {name} automaticamente em {seconds} segundos", 152 "service.crashHandler.autoReload": "A tentar restabelecer {name} automaticamente em {seconds} segundos",
153 "service.crashHandler.headline": "Oh não!", 153 "service.crashHandler.headline": "Oh não!",
@@ -158,19 +158,19 @@
158 "service.errorHandler.editAction": "Editar {name}", 158 "service.errorHandler.editAction": "Editar {name}",
159 "service.errorHandler.headline": "Oh não!", 159 "service.errorHandler.headline": "Oh não!",
160 "service.errorHandler.message": "Erro", 160 "service.errorHandler.message": "Erro",
161 "service.errorHandler.text": "{name} não pôde ser iniciado.", 161 "service.errorHandler.text": "{name} não foi carregado.",
162 "service.webviewLoader.loading": "A iniciar {service}", 162 "service.webviewLoader.loading": "A carregar {service}",
163 "services.getStarted": "Iniciar", 163 "services.getStarted": "Iniciar",
164 "services.login": "Por favor, inicie sua sessão para usar Ferdium.", 164 "services.login": "Por favor, inicie sessão para usar Ferdium.",
165 "services.serverInfo": "Opcionalmente, você pode alterar seu servidor Ferdium clicando no cog no canto inferior esquerdo. Se você está mudando de um dos servidores hospedados) para usar Ferdium sem uma conta, por favor, seja informado que você pode exportar seus dados desse servidor e, posteriormente, importá-lo usando o menu Ajuda para ressuscitar todas as suas áreas de trabalho e serviços configurados!", 165 "services.serverInfo": "Opcionalmente, você pode alterar seu servidor Ferdium clicando no cog no canto inferior esquerdo. Se você está mudando de um dos servidores hospedados) para usar Ferdium sem uma conta, por favor, seja informado que você pode exportar seus dados desse servidor e, posteriormente, importá-lo usando o menu Ajuda para ressuscitar todas as suas áreas de trabalho e serviços configurados!",
166 "services.serverless": "Use Ferdium sem conta", 166 "services.serverless": "Use Ferdium sem uma conta",
167 "settings.account.account.editButton": "Editar conta", 167 "settings.account.account.editButton": "Editar conta",
168 "settings.account.accountUnavailable": "Conta indisponível", 168 "settings.account.accountUnavailable": "Conta indisponível",
169 "settings.account.accountUnavailableInfo": "Está a usar o Ferdium sem uma conta. Se deseja usar o Ferdium com uma conta e manter os seus serviços sincronizados entre instalações, por favor, selecione um servidor no separador Configurações e faça a autenticação.", 169 "settings.account.accountUnavailableInfo": "Está a usar o Ferdium sem uma conta. Se deseja usar o Ferdium com uma conta e manter os seus serviços sincronizados entre instalações, por favor, selecione um servidor no separador Configurações e faça a autenticação.",
170 "settings.account.buttonSave": "Atualizar perfil", 170 "settings.account.buttonSave": "Atualizar perfil",
171 "settings.account.deleteAccount": "Apagar conta", 171 "settings.account.deleteAccount": "Apagar conta",
172 "settings.account.deleteEmailSent": "Recebeu um e-mail com um link para confirmar o cancelamento da sua conta. Atenção! A sua conta e dados não poderão ser restaurados!", 172 "settings.account.deleteEmailSent": "Recebeu um e-mail com um link para confirmar o cancelamento da sua conta. Atenção! A sua conta e dados não poderão ser restaurados posteriormente!",
173 "settings.account.deleteInfo": "Se não precisa mais de sua conta Ferdium, pode apagá-la juntamente com toda a sua informação aqui.", 173 "settings.account.deleteInfo": "Se não precisa mais da sua conta Ferdium, pode apagá-la juntamente com toda a sua informação aqui.",
174 "settings.account.headline": "Conta", 174 "settings.account.headline": "Conta",
175 "settings.account.headlineAccount": "Informações da Loja", 175 "settings.account.headlineAccount": "Informações da Loja",
176 "settings.account.headlineDangerZone": "Zona de Perigo", 176 "settings.account.headlineDangerZone": "Zona de Perigo",
@@ -180,11 +180,11 @@
180 "settings.account.successInfo": "As suas alterações foram gravadas", 180 "settings.account.successInfo": "As suas alterações foram gravadas",
181 "settings.account.tryReloadServices": "Tente novamente", 181 "settings.account.tryReloadServices": "Tente novamente",
182 "settings.account.tryReloadUserInfoRequest": "Tente novamente", 182 "settings.account.tryReloadUserInfoRequest": "Tente novamente",
183 "settings.account.userInfoRequestFailed": "Não foi possível carregar as informações de utilizador", 183 "settings.account.userInfoRequestFailed": "Não foi possível carregar as informações do utilizador",
184 "settings.account.yourLicense": "Sua Licença Ferdium", 184 "settings.account.yourLicense": "A sua Licença Ferdium:",
185 "settings.app.accentColorInfo": "Escreva sua escolha de cor em um formato compatível com CSS. (Padrão: {defaultAccentColor} ou limpe o campo de entrada)", 185 "settings.app.accentColorInfo": "Escreva a sua cor num formato compatível com CSS. (Padrão: {defaultAccentColor} ou limpe o campo de entrada)",
186 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações", 186 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações",
187 "settings.app.buttonOpenFerdiumProfileFolder": "Abrir pasta de perfil", 187 "settings.app.buttonOpenFerdiumProfileFolder": "Abrir pasta de Perfil",
188 "settings.app.buttonOpenFerdiumServiceRecipesFolder": "Abrir pasta Receitas de Serviço", 188 "settings.app.buttonOpenFerdiumServiceRecipesFolder": "Abrir pasta Receitas de Serviço",
189 "settings.app.buttonOpenImportExport": "Importar / Exportar", 189 "settings.app.buttonOpenImportExport": "Importar / Exportar",
190 "settings.app.buttonSearchForUpdate": "Procurar atualizações", 190 "settings.app.buttonSearchForUpdate": "Procurar atualizações",
@@ -209,7 +209,7 @@
209 "settings.app.form.enableGlobalHideShortcut": "Ativar o atalho Global para ocultar Ferdium", 209 "settings.app.form.enableGlobalHideShortcut": "Ativar o atalho Global para ocultar Ferdium",
210 "settings.app.form.enableLock": "Ativar palavra-passe", 210 "settings.app.form.enableLock": "Ativar palavra-passe",
211 "settings.app.form.enableLongPressServiceHint": "Habilitar dica de atalho de serviço no toque longo", 211 "settings.app.form.enableLongPressServiceHint": "Habilitar dica de atalho de serviço no toque longo",
212 "settings.app.form.enableMenuBar": "Sempre mostrar Ferdium na Barra de Menu", 212 "settings.app.form.enableMenuBar": "Mostrar sempre o Ferdium na Barra de Menu",
213 "settings.app.form.enableSpellchecking": "Ativar correção ortográfica", 213 "settings.app.form.enableSpellchecking": "Ativar correção ortográfica",
214 "settings.app.form.enableSystemTray": "Sempre mostrar Ferdium na Bandeja do Sistema", 214 "settings.app.form.enableSystemTray": "Sempre mostrar Ferdium na Bandeja do Sistema",
215 "settings.app.form.enableTodos": "Ativar Tarefas do Ferdium", 215 "settings.app.form.enableTodos": "Ativar Tarefas do Ferdium",
@@ -219,8 +219,8 @@
219 "settings.app.form.hibernationStrategy": "Estratégia de hibernação", 219 "settings.app.form.hibernationStrategy": "Estratégia de hibernação",
220 "settings.app.form.hideCollapseButton": "Ocultar botão de Colapsar", 220 "settings.app.form.hideCollapseButton": "Ocultar botão de Colapsar",
221 "settings.app.form.hideNotificationsButton": "Ocultar botão de notificações & som", 221 "settings.app.form.hideNotificationsButton": "Ocultar botão de notificações & som",
222 "settings.app.form.hideRecipesButton": "Ocultar butão de Serviços", 222 "settings.app.form.hideRecipesButton": "Ocultar botão de Serviços",
223 "settings.app.form.hideSettingsButton": "Ocultar butão de Definições", 223 "settings.app.form.hideSettingsButton": "Ocultar botão de Definições",
224 "settings.app.form.hideSplitModeButton": "Ocultar botão de Modo Dividido", 224 "settings.app.form.hideSplitModeButton": "Ocultar botão de Modo Dividido",
225 "settings.app.form.hideWorkspacesButton": "Ocultar botão de Abrir/Fechar barra da Área de Trabalho", 225 "settings.app.form.hideWorkspacesButton": "Ocultar botão de Abrir/Fechar barra da Área de Trabalho",
226 "settings.app.form.iconSize": "Tamanho de ícone de serviço", 226 "settings.app.form.iconSize": "Tamanho de ícone de serviço",
@@ -256,7 +256,7 @@
256 "settings.app.form.universalDarkMode": "Ativar o Modo Noturno Universal", 256 "settings.app.form.universalDarkMode": "Ativar o Modo Noturno Universal",
257 "settings.app.form.useGrayscaleServices": "Usar tons de cinza para Serviços", 257 "settings.app.form.useGrayscaleServices": "Usar tons de cinza para Serviços",
258 "settings.app.form.useHorizontalStyle": "Usar estilo horizontal", 258 "settings.app.form.useHorizontalStyle": "Usar estilo horizontal",
259 "settings.app.form.useTouchIdToUnlock": "Permite usar TouchID para desbloquear Ferdium", 259 "settings.app.form.useTouchIdToUnlock": "Permitir usar TouchID para desbloquear o Ferdium",
260 "settings.app.form.wakeUpHibernationSplay": "Reproduzir ciclos de hibernação/despertar para reduzir a carga", 260 "settings.app.form.wakeUpHibernationSplay": "Reproduzir ciclos de hibernação/despertar para reduzir a carga",
261 "settings.app.form.wakeUpHibernationStrategy": "Estratégia de hibernação após acordar automaticamente", 261 "settings.app.form.wakeUpHibernationStrategy": "Estratégia de hibernação após acordar automaticamente",
262 "settings.app.form.wakeUpStrategy": "Estratégia de despertar", 262 "settings.app.form.wakeUpStrategy": "Estratégia de despertar",
@@ -371,11 +371,11 @@
371 "settings.service.form.proxy.password": "Senha (opcional)", 371 "settings.service.form.proxy.password": "Senha (opcional)",
372 "settings.service.form.proxy.port": "Porta", 372 "settings.service.form.proxy.port": "Porta",
373 "settings.service.form.proxy.restartInfo": "Por favor, reinicie o Ferdium após alterar as configurações de proxy.", 373 "settings.service.form.proxy.restartInfo": "Por favor, reinicie o Ferdium após alterar as configurações de proxy.",
374 "settings.service.form.proxy.user": "Usuário (opcional)", 374 "settings.service.form.proxy.user": "Utilizador (opcional)",
375 "settings.service.form.recipeFileInfo": "Os seus ficheiros serão inseridos na página da web para que possa personalizar os serviços da maneira que desejar. Os ficheiros são apenas armazenados localmente e não são transferidos para outros computadores usando a mesma conta.", 375 "settings.service.form.recipeFileInfo": "Os seus ficheiros serão inseridos na página da web para que possa personalizar os serviços da maneira que desejar. Os ficheiros são apenas armazenados localmente e não são transferidos para outros computadores usando a mesma conta.",
376 "settings.service.form.saveButton": "Gravar serviço", 376 "settings.service.form.saveButton": "Gravar serviço",
377 "settings.service.form.tabHosted": "Alojado", 377 "settings.service.form.tabHosted": "Alojado",
378 "settings.service.form.tabOnPremise": "Auto-alojado ⭐", 378 "settings.service.form.tabOnPremise": "Auto hospedado ⭐",
379 "settings.service.form.team": "Equipa", 379 "settings.service.form.team": "Equipa",
380 "settings.service.form.trapLinkClicks": "Abrir URLs dentro do Ferdium", 380 "settings.service.form.trapLinkClicks": "Abrir URLs dentro do Ferdium",
381 "settings.service.form.useHostedService": "Use o serviço alojado {name}.", 381 "settings.service.form.useHostedService": "Use o serviço alojado {name}.",
@@ -384,7 +384,7 @@
384 "settings.services.deletedInfo": "Serviço apagado", 384 "settings.services.deletedInfo": "Serviço apagado",
385 "settings.services.discoverServices": "Descobrir serviços", 385 "settings.services.discoverServices": "Descobrir serviços",
386 "settings.services.headline": "Os seus serviços", 386 "settings.services.headline": "Os seus serviços",
387 "settings.services.noServicesAdded": "Comece adicionando um serviço.", 387 "settings.services.noServicesAdded": "Para começar, adicione um serviço.",
388 "settings.services.nothingFound": "Desculpe, mas nenhum serviço corresponde ao seu termo de pesquisa.", 388 "settings.services.nothingFound": "Desculpe, mas nenhum serviço corresponde ao seu termo de pesquisa.",
389 "settings.services.servicesRequestFailed": "Não foi possível carregar os seus serviços", 389 "settings.services.servicesRequestFailed": "Não foi possível carregar os seus serviços",
390 "settings.services.tooltip.isDisabled": "O serviço está desativado", 390 "settings.services.tooltip.isDisabled": "O serviço está desativado",
@@ -448,13 +448,13 @@
448 "signup.firstname.label": "Primeiro nome", 448 "signup.firstname.label": "Primeiro nome",
449 "signup.headline": "Entrar", 449 "signup.headline": "Entrar",
450 "signup.lastname.label": "Último Nome", 450 "signup.lastname.label": "Último Nome",
451 "signup.legal.info": "Ao criar uma conta Ferdium, você aceita os", 451 "signup.legal.info": "Ao criar uma conta Ferdium, aceita os",
452 "signup.legal.privacy": "Declaração de Privacidade", 452 "signup.legal.privacy": "Declaração de Privacidade",
453 "signup.legal.terms": "Termos de serviço", 453 "signup.legal.terms": "Termos de serviço",
454 "signup.link.login": "Já tem uma conta, entrar?", 454 "signup.link.login": "Já tem uma conta, entrar?",
455 "signup.password.label": "Palavra-passe", 455 "signup.password.label": "Palavra-passe",
456 "signup.submit.label": "Criar conta", 456 "signup.submit.label": "Criar conta",
457 "tabs.item.confirmDeleteService": "Você realmente deseja excluir o serviço {serviceName}?", 457 "tabs.item.confirmDeleteService": "Tem certeza que deseja excluir o serviço {serviceName}?",
458 "tabs.item.deleteService": "Excluir serviço", 458 "tabs.item.deleteService": "Excluir serviço",
459 "tabs.item.disableAudio": "Desativar áudio", 459 "tabs.item.disableAudio": "Desativar áudio",
460 "tabs.item.disableDarkMode": "Desativar o Modo Escuro", 460 "tabs.item.disableDarkMode": "Desativar o Modo Escuro",
diff --git a/src/themes/default/index.ts b/src/themes/default/index.ts
index 31c6cbd63..cc886f299 100644
--- a/src/themes/default/index.ts
+++ b/src/themes/default/index.ts
@@ -226,9 +226,6 @@ export default (brandPrimary: string) => {
226 }, 226 },
227 }, 227 },
228 }, 228 },
229 switchingIndicator: {
230 spinnerColor: 'white',
231 },
232 }, 229 },
233 230
234 // Todos 231 // Todos