aboutsummaryrefslogtreecommitdiffstats
path: root/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/components')
-rw-r--r--src/components/AppUpdateInfoBar.tsx4
-rw-r--r--src/components/auth/AuthLayout.tsx26
-rw-r--r--src/components/auth/ChangeServer.tsx22
-rw-r--r--src/components/auth/Invite.tsx20
-rw-r--r--src/components/auth/Locked.tsx14
-rw-r--r--src/components/auth/Login.tsx22
-rw-r--r--src/components/auth/Password.tsx18
-rw-r--r--src/components/auth/SetupAssistant.tsx24
-rw-r--r--src/components/auth/Signup.tsx24
-rw-r--r--src/components/auth/Welcome.tsx18
-rw-r--r--src/components/downloadManager/DownloadManagerDashboard.tsx34
-rw-r--r--src/components/downloadManager/DownloadManagerLayout.tsx13
-rw-r--r--src/components/layout/AppLayout.tsx27
-rw-r--r--src/components/layout/Sidebar.tsx22
-rw-r--r--src/components/services/content/ConnectionLostBanner.tsx12
-rw-r--r--src/components/services/content/ServiceDisabled.tsx8
-rw-r--r--src/components/services/content/ServiceView.tsx18
-rw-r--r--src/components/services/content/ServiceWebview.tsx6
-rw-r--r--src/components/services/content/Services.tsx18
-rw-r--r--src/components/services/content/WebviewCrashHandler.tsx8
-rw-r--r--src/components/services/content/WebviewErrorHandler.tsx10
-rw-r--r--src/components/services/tabs/TabBarSortableList.tsx4
-rw-r--r--src/components/services/tabs/TabItem.tsx24
-rw-r--r--src/components/services/tabs/Tabbar.tsx4
-rw-r--r--src/components/settings/SettingsLayout.tsx14
-rw-r--r--src/components/settings/account/AccountDashboard.tsx18
-rw-r--r--src/components/settings/navigation/SettingsNavigation.tsx12
-rw-r--r--src/components/settings/releaseNotes/ReleaseNotesDashboard.tsx6
-rw-r--r--src/components/settings/releaseNotes/ReleaseNotesLayout.tsx14
-rw-r--r--src/components/settings/services/EditServiceForm.tsx38
-rw-r--r--src/components/settings/services/ServiceError.tsx8
-rw-r--r--src/components/settings/services/ServiceItem.tsx16
-rw-r--r--src/components/settings/services/ServicesDashboard.tsx20
-rw-r--r--src/components/settings/settings/EditSettingsForm.tsx44
-rw-r--r--src/components/settings/team/TeamDashboard.tsx18
-rw-r--r--src/components/settings/user/EditUserForm.tsx23
-rw-r--r--src/components/ui/AppLoader/index.tsx8
-rw-r--r--src/components/ui/FAB.tsx4
-rw-r--r--src/components/ui/FullscreenLoader/index.tsx10
-rw-r--r--src/components/ui/InfoBar.tsx14
-rw-r--r--src/components/ui/Infobox.tsx19
-rw-r--r--src/components/ui/Link.tsx12
-rw-r--r--src/components/ui/Modal/index.tsx8
-rw-r--r--src/components/ui/Radio.tsx6
-rw-r--r--src/components/ui/SearchInput.tsx6
-rw-r--r--src/components/ui/Select.tsx16
-rw-r--r--src/components/ui/ServiceIcon.tsx8
-rw-r--r--src/components/ui/Slider.tsx4
-rw-r--r--src/components/ui/StatusBarTargetUrl.tsx4
-rw-r--r--src/components/ui/Tabs/TabItem.tsx2
-rw-r--r--src/components/ui/Tabs/Tabs.tsx11
-rw-r--r--src/components/ui/WebviewLoader/index.tsx10
-rw-r--r--src/components/ui/badge/ProBadge.tsx4
-rw-r--r--src/components/ui/badge/index.tsx6
-rw-r--r--src/components/ui/button/index.tsx13
-rw-r--r--src/components/ui/colorPickerInput/index.tsx16
-rw-r--r--src/components/ui/effects/Appear.tsx2
-rw-r--r--src/components/ui/error/index.tsx2
-rw-r--r--src/components/ui/error/styles.ts2
-rw-r--r--src/components/ui/headline/index.tsx12
-rw-r--r--src/components/ui/icon/index.tsx6
-rw-r--r--src/components/ui/imageUpload/index.tsx10
-rw-r--r--src/components/ui/infobox/index.tsx6
-rw-r--r--src/components/ui/input/index.tsx24
-rw-r--r--src/components/ui/input/styles.ts4
-rw-r--r--src/components/ui/label/index.tsx6
-rw-r--r--src/components/ui/label/styles.ts2
-rw-r--r--src/components/ui/loader/index.tsx6
-rw-r--r--src/components/ui/select/index.tsx13
-rw-r--r--src/components/ui/textarea/index.tsx6
-rw-r--r--src/components/ui/textarea/styles.ts4
-rw-r--r--src/components/ui/toggle/index.tsx10
-rw-r--r--src/components/ui/wrapper/index.tsx4
-rw-r--r--src/components/util/ErrorBoundary/index.tsx6
74 files changed, 545 insertions, 392 deletions
diff --git a/src/components/AppUpdateInfoBar.tsx b/src/components/AppUpdateInfoBar.tsx
index 103bd2900..7bba8053a 100644
--- a/src/components/AppUpdateInfoBar.tsx
+++ b/src/components/AppUpdateInfoBar.tsx
@@ -1,12 +1,12 @@
1import { defineMessages, useIntl } from 'react-intl'; 1import { defineMessages, useIntl } from 'react-intl';
2 2
3import { mdiInformation } from '@mdi/js'; 3import { mdiInformation } from '@mdi/js';
4import { MouseEventHandler } from 'react'; 4import type { MouseEventHandler } from 'react';
5import InfoBar from './ui/InfoBar'; 5import InfoBar from './ui/InfoBar';
6import Icon from './ui/icon'; 6import Icon from './ui/icon';
7 7
8import { onAuthGoToReleaseNotes } from '../helpers/update-helpers';
9import { isWinPortable } from '../environment'; 8import { isWinPortable } from '../environment';
9import { onAuthGoToReleaseNotes } from '../helpers/update-helpers';
10 10
11const messages = defineMessages({ 11const messages = defineMessages({
12 updateAvailable: { 12 updateAvailable: {
diff --git a/src/components/auth/AuthLayout.tsx b/src/components/auth/AuthLayout.tsx
index eeb93b83b..67e898318 100644
--- a/src/components/auth/AuthLayout.tsx
+++ b/src/components/auth/AuthLayout.tsx
@@ -1,24 +1,24 @@
1import { mdiFlash } from '@mdi/js';
2import type { Response } from 'electron';
3import { TitleBar } from 'electron-react-titlebar/renderer';
4import { observer } from 'mobx-react';
1import { 5import {
2 cloneElement,
3 Component, 6 Component,
4 MouseEventHandler, 7 type MouseEventHandler,
5 ReactElement, 8 type ReactElement,
9 cloneElement,
6} from 'react'; 10} from 'react';
7import { observer } from 'mobx-react'; 11import { type WrappedComponentProps, injectIntl } from 'react-intl';
8import { TitleBar } from 'electron-react-titlebar/renderer'; 12import { serverName } from '../../api/apiBase';
9import { injectIntl, WrappedComponentProps } from 'react-intl'; 13import { GITHUB_FERDIUM_URL } from '../../config';
10import { mdiFlash } from '@mdi/js'; 14import { isWindows } from '../../environment';
11import { Response } from 'electron';
12import Link from '../ui/Link';
13import InfoBar from '../ui/InfoBar';
14import { Component as PublishDebugInfo } from '../../features/publishDebugInfo'; 15import { Component as PublishDebugInfo } from '../../features/publishDebugInfo';
15import { updateVersionParse } from '../../helpers/update-helpers'; 16import { updateVersionParse } from '../../helpers/update-helpers';
16import globalMessages from '../../i18n/globalMessages'; 17import globalMessages from '../../i18n/globalMessages';
17import { isWindows } from '../../environment';
18import AppUpdateInfoBar from '../AppUpdateInfoBar'; 18import AppUpdateInfoBar from '../AppUpdateInfoBar';
19import { GITHUB_FERDIUM_URL } from '../../config'; 19import InfoBar from '../ui/InfoBar';
20import Link from '../ui/Link';
20import Icon from '../ui/icon'; 21import Icon from '../ui/icon';
21import { serverName } from '../../api/apiBase';
22 22
23export interface IProps extends WrappedComponentProps { 23export interface IProps extends WrappedComponentProps {
24 children: ReactElement; 24 children: ReactElement;
diff --git a/src/components/auth/ChangeServer.tsx b/src/components/auth/ChangeServer.tsx
index c49e52673..665e8f6f9 100644
--- a/src/components/auth/ChangeServer.tsx
+++ b/src/components/auth/ChangeServer.tsx
@@ -1,19 +1,23 @@
1import { Component, FormEvent, ReactElement } from 'react';
2import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { mdiArrowLeftCircle } from '@mdi/js'; 1import { mdiArrowLeftCircle } from '@mdi/js';
5import { noop } from 'lodash'; 2import { noop } from 'lodash';
3import { observer } from 'mobx-react';
4import { Component, type FormEvent, type ReactElement } from 'react';
5import {
6 type WrappedComponentProps,
7 defineMessages,
8 injectIntl,
9} from 'react-intl';
10import { LIVE_FERDIUM_API, LIVE_FRANZ_API } from '../../config';
11import { url, required } from '../../helpers/validation-helpers';
12import globalMessages from '../../i18n/globalMessages';
6import Form from '../../lib/Form'; 13import Form from '../../lib/Form';
7import Input from '../ui/input/index'; 14import Infobox from '../ui/Infobox';
15import Link from '../ui/Link';
8import Select from '../ui/Select'; 16import Select from '../ui/Select';
9import Button from '../ui/button'; 17import Button from '../ui/button';
10import Link from '../ui/Link';
11import Infobox from '../ui/Infobox';
12import { url, required } from '../../helpers/validation-helpers';
13import { LIVE_FERDIUM_API, LIVE_FRANZ_API } from '../../config';
14import globalMessages from '../../i18n/globalMessages';
15import { H1 } from '../ui/headline'; 18import { H1 } from '../ui/headline';
16import Icon from '../ui/icon'; 19import Icon from '../ui/icon';
20import Input from '../ui/input/index';
17 21
18const messages = defineMessages({ 22const messages = defineMessages({
19 headline: { 23 headline: {
diff --git a/src/components/auth/Invite.tsx b/src/components/auth/Invite.tsx
index 0d39d861a..93441abe3 100644
--- a/src/components/auth/Invite.tsx
+++ b/src/components/auth/Invite.tsx
@@ -1,16 +1,20 @@
1import { Component } from 'react';
2import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { Link } from 'react-router-dom';
5import classnames from 'classnames'; 1import classnames from 'classnames';
6import { noop } from 'lodash'; 2import { noop } from 'lodash';
7import Infobox from '../ui/Infobox'; 3import { observer } from 'mobx-react';
8import Appear from '../ui/effects/Appear'; 4import { Component } from 'react';
9import Form from '../../lib/Form'; 5import {
6 type WrappedComponentProps,
7 defineMessages,
8 injectIntl,
9} from 'react-intl';
10import { Link } from 'react-router-dom';
10import { email, required } from '../../helpers/validation-helpers'; 11import { email, required } from '../../helpers/validation-helpers';
11import Input from '../ui/input/index'; 12import Form from '../../lib/Form';
13import Infobox from '../ui/Infobox';
12import Button from '../ui/button'; 14import Button from '../ui/button';
15import Appear from '../ui/effects/Appear';
13import { H1 } from '../ui/headline'; 16import { H1 } from '../ui/headline';
17import Input from '../ui/input/index';
14 18
15const messages = defineMessages({ 19const messages = defineMessages({
16 settingsHeadline: { 20 settingsHeadline: {
diff --git a/src/components/auth/Locked.tsx b/src/components/auth/Locked.tsx
index 34d010782..46ce24a2e 100644
--- a/src/components/auth/Locked.tsx
+++ b/src/components/auth/Locked.tsx
@@ -1,13 +1,17 @@
1import { systemPreferences } from '@electron/remote'; 1import { systemPreferences } from '@electron/remote';
2import { Component } from 'react';
3import { observer } from 'mobx-react';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
5import { noop } from 'lodash'; 2import { noop } from 'lodash';
3import { observer } from 'mobx-react';
4import { Component } from 'react';
5import {
6 type WrappedComponentProps,
7 defineMessages,
8 injectIntl,
9} from 'react-intl';
10import { isMac } from '../../environment';
6import Form from '../../lib/Form'; 11import Form from '../../lib/Form';
7import Input from '../ui/input/index';
8import Button from '../ui/button'; 12import Button from '../ui/button';
9import { H1 } from '../ui/headline'; 13import { H1 } from '../ui/headline';
10import { isMac } from '../../environment'; 14import Input from '../ui/input/index';
11 15
12const messages = defineMessages({ 16const messages = defineMessages({
13 headline: { 17 headline: {
diff --git a/src/components/auth/Login.tsx b/src/components/auth/Login.tsx
index 9bad731c8..37ce595eb 100644
--- a/src/components/auth/Login.tsx
+++ b/src/components/auth/Login.tsx
@@ -1,19 +1,23 @@
1import { Component, FormEvent, ReactElement } from 'react';
2import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { mdiArrowLeftCircle } from '@mdi/js'; 1import { mdiArrowLeftCircle } from '@mdi/js';
5import { noop } from 'lodash'; 2import { noop } from 'lodash';
6import Icon from '../ui/icon'; 3import { observer } from 'mobx-react';
4import { Component, type FormEvent, type ReactElement } from 'react';
5import {
6 type WrappedComponentProps,
7 defineMessages,
8 injectIntl,
9} from 'react-intl';
10import type { GlobalError } from '../../@types/ferdium-components.types';
11import { serverBase } from '../../api/apiBase'; // TODO: Remove this line after fixing password recovery in-app
7import { LIVE_FRANZ_API } from '../../config'; 12import { LIVE_FRANZ_API } from '../../config';
8import { API_VERSION } from '../../environment-remote'; 13import { API_VERSION } from '../../environment-remote';
9import { serverBase } from '../../api/apiBase'; // TODO: Remove this line after fixing password recovery in-app 14import { email, required } from '../../helpers/validation-helpers';
10import Form from '../../lib/Form'; 15import Form from '../../lib/Form';
11import { required, email } from '../../helpers/validation-helpers';
12import Input from '../ui/input/index';
13import Button from '../ui/button';
14import Link from '../ui/Link'; 16import Link from '../ui/Link';
17import Button from '../ui/button';
15import { H1 } from '../ui/headline'; 18import { H1 } from '../ui/headline';
16import { GlobalError } from '../../@types/ferdium-components.types'; 19import Icon from '../ui/icon';
20import Input from '../ui/input/index';
17 21
18const messages = defineMessages({ 22const messages = defineMessages({
19 headline: { 23 headline: {
diff --git a/src/components/auth/Password.tsx b/src/components/auth/Password.tsx
index 03adc3859..6f398c3fb 100644
--- a/src/components/auth/Password.tsx
+++ b/src/components/auth/Password.tsx
@@ -1,16 +1,20 @@
1import { Component, FormEvent } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 2import { Component, type FormEvent } from 'react';
3import {
4 type WrappedComponentProps,
5 defineMessages,
6 injectIntl,
7} from 'react-intl';
4 8
5import { noop } from 'lodash'; 9import { noop } from 'lodash';
10import { email, required } from '../../helpers/validation-helpers';
11import globalMessages from '../../i18n/globalMessages';
6import Form from '../../lib/Form'; 12import Form from '../../lib/Form';
7import { required, email } from '../../helpers/validation-helpers';
8import Input from '../ui/input/index';
9import Button from '../ui/button';
10import Link from '../ui/Link';
11import Infobox from '../ui/Infobox'; 13import Infobox from '../ui/Infobox';
12import globalMessages from '../../i18n/globalMessages'; 14import Link from '../ui/Link';
15import Button from '../ui/button';
13import { H1 } from '../ui/headline'; 16import { H1 } from '../ui/headline';
17import Input from '../ui/input/index';
14 18
15const messages = defineMessages({ 19const messages = defineMessages({
16 headline: { 20 headline: {
diff --git a/src/components/auth/SetupAssistant.tsx b/src/components/auth/SetupAssistant.tsx
index c25495471..c1965dbb4 100644
--- a/src/components/auth/SetupAssistant.tsx
+++ b/src/components/auth/SetupAssistant.tsx
@@ -1,17 +1,21 @@
1import { Component } from 'react';
2import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import withStyles, { WithStylesProps } from 'react-jss';
5import classnames from 'classnames'; 1import classnames from 'classnames';
6import Input from '../ui/input/index'; 2import { observer } from 'mobx-react';
7import Button from '../ui/button'; 3import { Component } from 'react';
8import Badge from '../ui/badge'; 4import {
9import Modal from '../ui/Modal'; 5 type WrappedComponentProps,
6 defineMessages,
7 injectIntl,
8} from 'react-intl';
9import withStyles, { type WithStylesProps } from 'react-jss';
10import { CDN_URL } from '../../config';
11import globalMessages from '../../i18n/globalMessages';
10import Infobox from '../ui/Infobox'; 12import Infobox from '../ui/Infobox';
13import Modal from '../ui/Modal';
14import Badge from '../ui/badge';
15import Button from '../ui/button';
11import Appear from '../ui/effects/Appear'; 16import Appear from '../ui/effects/Appear';
12import globalMessages from '../../i18n/globalMessages';
13import { CDN_URL } from '../../config';
14import { H1, H2 } from '../ui/headline'; 17import { H1, H2 } from '../ui/headline';
18import Input from '../ui/input/index';
15 19
16const SLACK_ID = 'slack'; 20const SLACK_ID = 'slack';
17 21
diff --git a/src/components/auth/Signup.tsx b/src/components/auth/Signup.tsx
index 06a9774aa..84974fd07 100644
--- a/src/components/auth/Signup.tsx
+++ b/src/components/auth/Signup.tsx
@@ -1,18 +1,22 @@
1import { Component } from 'react';
2import { observer, inject } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { mdiArrowLeftCircle } from '@mdi/js'; 1import { mdiArrowLeftCircle } from '@mdi/js';
5import { noop } from 'lodash'; 2import { noop } from 'lodash';
3import { inject, observer } from 'mobx-react';
4import { Component } from 'react';
5import {
6 type WrappedComponentProps,
7 defineMessages,
8 injectIntl,
9} from 'react-intl';
10import type { GlobalError } from '../../@types/ferdium-components.types';
11import type { Actions } from '../../actions/lib/actions';
12import { serverBase } from '../../api/apiBase';
13import { email, minLength, required } from '../../helpers/validation-helpers';
6import Form from '../../lib/Form'; 14import Form from '../../lib/Form';
7import { required, email, minLength } from '../../helpers/validation-helpers';
8import Input from '../ui/input/index';
9import Button from '../ui/button';
10import Link from '../ui/Link'; 15import Link from '../ui/Link';
11import Icon from '../ui/icon'; 16import Button from '../ui/button';
12import { serverBase } from '../../api/apiBase';
13import { H1 } from '../ui/headline'; 17import { H1 } from '../ui/headline';
14import { GlobalError } from '../../@types/ferdium-components.types'; 18import Icon from '../ui/icon';
15import { Actions } from '../../actions/lib/actions'; 19import Input from '../ui/input/index';
16 20
17const messages = defineMessages({ 21const messages = defineMessages({
18 headline: { 22 headline: {
diff --git a/src/components/auth/Welcome.tsx b/src/components/auth/Welcome.tsx
index c1a2db386..ec1c167c0 100644
--- a/src/components/auth/Welcome.tsx
+++ b/src/components/auth/Welcome.tsx
@@ -1,14 +1,18 @@
1import { Component, ReactElement } from 'react';
2import { observer, inject } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { noop } from 'lodash'; 1import { noop } from 'lodash';
5import serverlessLogin from '../../helpers/serverless-helpers'; 2import { inject, observer } from 'mobx-react';
6import shuffleArray from '../../helpers/array-helpers'; 3import { Component, type ReactElement } from 'react';
4import {
5 type WrappedComponentProps,
6 defineMessages,
7 injectIntl,
8} from 'react-intl';
9import type { StoresProps } from '../../@types/ferdium-components.types';
7import { serverName } from '../../api/apiBase'; 10import { serverName } from '../../api/apiBase';
11import shuffleArray from '../../helpers/array-helpers';
12import serverlessLogin from '../../helpers/serverless-helpers';
13import type RecipePreview from '../../models/RecipePreview';
8import Link from '../ui/Link'; 14import Link from '../ui/Link';
9import { H1 } from '../ui/headline'; 15import { H1 } from '../ui/headline';
10import { StoresProps } from '../../@types/ferdium-components.types';
11import RecipePreview from '../../models/RecipePreview';
12 16
13const messages = defineMessages({ 17const messages = defineMessages({
14 signupButton: { 18 signupButton: {
diff --git a/src/components/downloadManager/DownloadManagerDashboard.tsx b/src/components/downloadManager/DownloadManagerDashboard.tsx
index 25e73d48f..490be269d 100644
--- a/src/components/downloadManager/DownloadManagerDashboard.tsx
+++ b/src/components/downloadManager/DownloadManagerDashboard.tsx
@@ -1,29 +1,29 @@
1import { Component } from 'react'; 1import { mdiDownload } from '@mdi/js';
2import { observer } from 'mobx-react'; 2import CancelIcon from '@mui/icons-material/Cancel';
3import { IntlShape, defineMessages, injectIntl } from 'react-intl'; 3import ClearAllIcon from '@mui/icons-material/ClearAll';
4import { shell } from 'electron'; 4import DeleteIcon from '@mui/icons-material/Delete';
5import prettyBytes from 'pretty-bytes'; 5import FolderIcon from '@mui/icons-material/Folder';
6import PauseIcon from '@mui/icons-material/Pause';
7import PlayArrowIcon from '@mui/icons-material/PlayArrow';
6import { 8import {
7 Typography, 9 Box,
8 Card, 10 Card,
9 CardContent, 11 CardContent,
10 LinearProgress,
11 Box,
12 IconButton, 12 IconButton,
13 LinearProgress,
13 ListItemButton, 14 ListItemButton,
14 ListItemIcon, 15 ListItemIcon,
15 ListItemText, 16 ListItemText,
17 Typography,
16} from '@mui/material'; 18} from '@mui/material';
17import { mdiDownload } from '@mdi/js'; 19import { shell } from 'electron';
18import PlayArrowIcon from '@mui/icons-material/PlayArrow';
19import PauseIcon from '@mui/icons-material/Pause';
20import CancelIcon from '@mui/icons-material/Cancel';
21import FolderIcon from '@mui/icons-material/Folder';
22import DeleteIcon from '@mui/icons-material/Delete';
23import ClearAllIcon from '@mui/icons-material/ClearAll';
24import { round } from 'lodash'; 20import { round } from 'lodash';
25import { RealStores } from '../../stores'; 21import { observer } from 'mobx-react';
26import { Actions } from '../../actions/lib/actions'; 22import prettyBytes from 'pretty-bytes';
23import { Component } from 'react';
24import { type IntlShape, defineMessages, injectIntl } from 'react-intl';
25import type { Actions } from '../../actions/lib/actions';
26import type { RealStores } from '../../stores';
27import Icon from '../ui/icon'; 27import Icon from '../ui/icon';
28 28
29const messages = defineMessages({ 29const messages = defineMessages({
diff --git a/src/components/downloadManager/DownloadManagerLayout.tsx b/src/components/downloadManager/DownloadManagerLayout.tsx
index 1e018cfb8..08c0ace1e 100644
--- a/src/components/downloadManager/DownloadManagerLayout.tsx
+++ b/src/components/downloadManager/DownloadManagerLayout.tsx
@@ -1,14 +1,19 @@
1import React, { Component } from 'react';
2import { inject, observer } from 'mobx-react'; 1import { inject, observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 2import type React from 'react';
3import { Component } from 'react';
4import {
5 type WrappedComponentProps,
6 defineMessages,
7 injectIntl,
8} from 'react-intl';
4 9
5import { mdiClose } from '@mdi/js'; 10import { mdiClose } from '@mdi/js';
6import { Outlet } from 'react-router-dom'; 11import { Outlet } from 'react-router-dom';
7import { Actions } from '../../actions/lib/actions'; 12import type { Actions } from '../../actions/lib/actions';
8import { isEscKeyPress } from '../../jsUtils'; 13import { isEscKeyPress } from '../../jsUtils';
9import Appear from '../ui/effects/Appear'; 14import Appear from '../ui/effects/Appear';
10import ErrorBoundary from '../util/ErrorBoundary';
11import Icon from '../ui/icon'; 15import Icon from '../ui/icon';
16import ErrorBoundary from '../util/ErrorBoundary';
12 17
13const messages = defineMessages({ 18const messages = defineMessages({
14 closeSettings: { 19 closeSettings: {
diff --git a/src/components/layout/AppLayout.tsx b/src/components/layout/AppLayout.tsx
index 97795212a..160664c20 100644
--- a/src/components/layout/AppLayout.tsx
+++ b/src/components/layout/AppLayout.tsx
@@ -1,28 +1,33 @@
1import React, { Component, PropsWithChildren } from 'react';
2import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { TitleBar } from 'electron-react-titlebar/renderer';
5import injectSheet, { WithStylesProps } from 'react-jss';
6import { ipcRenderer } from 'electron'; 1import { ipcRenderer } from 'electron';
2import { TitleBar } from 'electron-react-titlebar/renderer';
3import { observer } from 'mobx-react';
4import type React from 'react';
5import { Component, type PropsWithChildren } from 'react';
6import {
7 type WrappedComponentProps,
8 defineMessages,
9 injectIntl,
10} from 'react-intl';
11import injectSheet, { type WithStylesProps } from 'react-jss';
7 12
8import { mdiFlash, mdiPowerPlug } from '@mdi/js'; 13import { mdiFlash, mdiPowerPlug } from '@mdi/js';
9import { Outlet } from 'react-router-dom'; 14import { Outlet } from 'react-router-dom';
10import InfoBar from '../ui/InfoBar';
11import { Component as BasicAuth } from '../../features/basicAuth'; 15import { Component as BasicAuth } from '../../features/basicAuth';
12import { Component as QuickSwitch } from '../../features/quickSwitch';
13import { Component as PublishDebugInfo } from '../../features/publishDebugInfo'; 16import { Component as PublishDebugInfo } from '../../features/publishDebugInfo';
14import ErrorBoundary from '../util/ErrorBoundary'; 17import { Component as QuickSwitch } from '../../features/quickSwitch';
15import { updateVersionParse } from '../../helpers/update-helpers'; 18import { updateVersionParse } from '../../helpers/update-helpers';
19import InfoBar from '../ui/InfoBar';
20import ErrorBoundary from '../util/ErrorBoundary';
16 21
17import { isMac, isWindows } from '../../environment'; 22import { isMac, isWindows } from '../../environment';
18import WorkspaceSwitchingIndicator from '../../features/workspaces/components/WorkspaceSwitchingIndicator'; 23import Todos from '../../features/todos/containers/TodosScreen';
19import { workspaceStore } from '../../features/workspaces'; 24import { workspaceStore } from '../../features/workspaces';
25import WorkspaceSwitchingIndicator from '../../features/workspaces/components/WorkspaceSwitchingIndicator';
20import AppUpdateInfoBar from '../AppUpdateInfoBar'; 26import AppUpdateInfoBar from '../AppUpdateInfoBar';
21import Todos from '../../features/todos/containers/TodosScreen';
22import Icon from '../ui/icon'; 27import Icon from '../ui/icon';
23 28
24import LockedScreen from '../../containers/auth/LockedScreen'; 29import LockedScreen from '../../containers/auth/LockedScreen';
25import SettingsStore from '../../stores/SettingsStore'; 30import type SettingsStore from '../../stores/SettingsStore';
26 31
27const messages = defineMessages({ 32const messages = defineMessages({
28 servicesUpdated: { 33 servicesUpdated: {
diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx
index 1106113f0..a927d5745 100644
--- a/src/components/layout/Sidebar.tsx
+++ b/src/components/layout/Sidebar.tsx
@@ -1,7 +1,3 @@
1import { Component } from 'react';
2import { Tooltip as ReactTooltip } from 'react-tooltip';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { inject, observer } from 'mobx-react';
5import { 1import {
6 mdiBell, 2 mdiBell,
7 mdiBellOff, 3 mdiBellOff,
@@ -9,14 +5,22 @@ import {
9 mdiChevronDown, 5 mdiChevronDown,
10 mdiChevronRight, 6 mdiChevronRight,
11 mdiCog, 7 mdiCog,
8 mdiDownload,
12 mdiLock, 9 mdiLock,
13 mdiMenu, 10 mdiMenu,
14 mdiPlusBox, 11 mdiPlusBox,
15 mdiViewGrid, 12 mdiViewGrid,
16 mdiViewSplitVertical, 13 mdiViewSplitVertical,
17 mdiDownload,
18} from '@mdi/js'; 14} from '@mdi/js';
19import Tabbar from '../services/tabs/Tabbar'; 15import { inject, observer } from 'mobx-react';
16import { Component } from 'react';
17import {
18 type WrappedComponentProps,
19 defineMessages,
20 injectIntl,
21} from 'react-intl';
22import { Tooltip as ReactTooltip } from 'react-tooltip';
23import type { Actions } from '../../actions/lib/actions';
20import { 24import {
21 addNewServiceShortcutKey, 25 addNewServiceShortcutKey,
22 downloadsShortcutKey, 26 downloadsShortcutKey,
@@ -30,10 +34,10 @@ import {
30import { todosStore } from '../../features/todos'; 34import { todosStore } from '../../features/todos';
31import { todoActions } from '../../features/todos/actions'; 35import { todoActions } from '../../features/todos/actions';
32import globalMessages from '../../i18n/globalMessages'; 36import globalMessages from '../../i18n/globalMessages';
37import type Service from '../../models/Service';
38import type { RealStores } from '../../stores';
39import Tabbar from '../services/tabs/Tabbar';
33import Icon from '../ui/icon'; 40import Icon from '../ui/icon';
34import { Actions } from '../../actions/lib/actions';
35import { RealStores } from '../../stores';
36import Service from '../../models/Service';
37 41
38const messages = defineMessages({ 42const messages = defineMessages({
39 addNewService: { 43 addNewService: {
diff --git a/src/components/services/content/ConnectionLostBanner.tsx b/src/components/services/content/ConnectionLostBanner.tsx
index 7040337f0..04e62ff6b 100644
--- a/src/components/services/content/ConnectionLostBanner.tsx
+++ b/src/components/services/content/ConnectionLostBanner.tsx
@@ -1,8 +1,12 @@
1import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react';
3import withStyles, { WithStylesProps } from 'react-jss';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
5import { mdiAlert } from '@mdi/js'; 1import { mdiAlert } from '@mdi/js';
2import { observer } from 'mobx-react';
3import { Component, type ReactElement } from 'react';
4import {
5 type WrappedComponentProps,
6 defineMessages,
7 injectIntl,
8} from 'react-intl';
9import withStyles, { type WithStylesProps } from 'react-jss';
6import { LIVE_API_FERDIUM_WEBSITE } from '../../../config'; 10import { LIVE_API_FERDIUM_WEBSITE } from '../../../config';
7import Icon from '../../ui/icon'; 11import Icon from '../../ui/icon';
8 12
diff --git a/src/components/services/content/ServiceDisabled.tsx b/src/components/services/content/ServiceDisabled.tsx
index 2f0d439ec..9b9f377b1 100644
--- a/src/components/services/content/ServiceDisabled.tsx
+++ b/src/components/services/content/ServiceDisabled.tsx
@@ -1,6 +1,10 @@
1import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 2import { Component, type ReactElement } from 'react';
3import {
4 type WrappedComponentProps,
5 defineMessages,
6 injectIntl,
7} from 'react-intl';
4import Button from '../../ui/button'; 8import Button from '../../ui/button';
5import { H1 } from '../../ui/headline'; 9import { H1 } from '../../ui/headline';
6 10
diff --git a/src/components/services/content/ServiceView.tsx b/src/components/services/content/ServiceView.tsx
index d89cd0610..577473b5d 100644
--- a/src/components/services/content/ServiceView.tsx
+++ b/src/components/services/content/ServiceView.tsx
@@ -1,18 +1,18 @@
1import { Component } from 'react';
2import { autorun, IReactionDisposer } from 'mobx';
3import { observer, inject } from 'mobx-react';
4import classnames from 'classnames'; 1import classnames from 'classnames';
2import { type IReactionDisposer, autorun } from 'mobx';
3import { inject, observer } from 'mobx-react';
4import { Component } from 'react';
5import TopBarProgress from 'react-topbar-progress-indicator'; 5import TopBarProgress from 'react-topbar-progress-indicator';
6import ServiceModel from '../../../models/Service'; 6import { CUSTOM_WEBSITE_RECIPE_ID } from '../../../config';
7import WebControlsScreen from '../../../features/webControls/containers/WebControlsScreen';
8import type ServiceModel from '../../../models/Service';
9import type { RealStores } from '../../../stores';
7import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; 10import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl';
8import WebviewLoader from '../../ui/WebviewLoader'; 11import WebviewLoader from '../../ui/WebviewLoader';
9import WebviewCrashHandler from './WebviewCrashHandler';
10import WebviewErrorHandler from './WebviewErrorHandler';
11import ServiceDisabled from './ServiceDisabled'; 12import ServiceDisabled from './ServiceDisabled';
12import ServiceWebview from './ServiceWebview'; 13import ServiceWebview from './ServiceWebview';
13import WebControlsScreen from '../../../features/webControls/containers/WebControlsScreen'; 14import WebviewCrashHandler from './WebviewCrashHandler';
14import { CUSTOM_WEBSITE_RECIPE_ID } from '../../../config'; 15import WebviewErrorHandler from './WebviewErrorHandler';
15import { RealStores } from '../../../stores';
16 16
17interface IProps { 17interface IProps {
18 service: ServiceModel; 18 service: ServiceModel;
diff --git a/src/components/services/content/ServiceWebview.tsx b/src/components/services/content/ServiceWebview.tsx
index c598d4be6..0cf34c14b 100644
--- a/src/components/services/content/ServiceWebview.tsx
+++ b/src/components/services/content/ServiceWebview.tsx
@@ -1,9 +1,9 @@
1import { join } from 'node:path'; 1import { join } from 'node:path';
2import { Component, ReactElement } from 'react';
3import { observer } from 'mobx-react';
4import { action, makeObservable, observable, reaction } from 'mobx'; 2import { action, makeObservable, observable, reaction } from 'mobx';
3import { observer } from 'mobx-react';
4import { Component, type ReactElement } from 'react';
5import ElectronWebView from 'react-electron-web-view'; 5import ElectronWebView from 'react-electron-web-view';
6import ServiceModel from '../../../models/Service'; 6import type ServiceModel from '../../../models/Service';
7 7
8const debug = require('../../../preload-safe-debug')('Ferdium:Services'); 8const debug = require('../../../preload-safe-debug')('Ferdium:Services');
9 9
diff --git a/src/components/services/content/Services.tsx b/src/components/services/content/Services.tsx
index 5766e0d75..65359d0b4 100644
--- a/src/components/services/content/Services.tsx
+++ b/src/components/services/content/Services.tsx
@@ -1,13 +1,17 @@
1import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
3import { Link } from 'react-router-dom';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
5import Confetti from 'react-confetti';
6import ms from 'ms'; 2import ms from 'ms';
7import withStyles, { WithStylesProps } from 'react-jss'; 3import { Component, type ReactElement } from 'react';
8import ServiceView from './ServiceView'; 4import Confetti from 'react-confetti';
5import {
6 type WrappedComponentProps,
7 defineMessages,
8 injectIntl,
9} from 'react-intl';
10import withStyles, { type WithStylesProps } from 'react-jss';
11import { Link } from 'react-router-dom';
12import type Service from '../../../models/Service';
9import Appear from '../../ui/effects/Appear'; 13import Appear from '../../ui/effects/Appear';
10import Service from '../../../models/Service'; 14import ServiceView from './ServiceView';
11 15
12const messages = defineMessages({ 16const messages = defineMessages({
13 getStarted: { 17 getStarted: {
diff --git a/src/components/services/content/WebviewCrashHandler.tsx b/src/components/services/content/WebviewCrashHandler.tsx
index 91c9cf927..0306dcbda 100644
--- a/src/components/services/content/WebviewCrashHandler.tsx
+++ b/src/components/services/content/WebviewCrashHandler.tsx
@@ -1,7 +1,11 @@
1import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import ms from 'ms'; 2import ms from 'ms';
3import { Component, type ReactElement } from 'react';
4import {
5 type WrappedComponentProps,
6 defineMessages,
7 injectIntl,
8} from 'react-intl';
5import Button from '../../ui/button'; 9import Button from '../../ui/button';
6import { H1 } from '../../ui/headline'; 10import { H1 } from '../../ui/headline';
7 11
diff --git a/src/components/services/content/WebviewErrorHandler.tsx b/src/components/services/content/WebviewErrorHandler.tsx
index b99c15006..1d33ae117 100644
--- a/src/components/services/content/WebviewErrorHandler.tsx
+++ b/src/components/services/content/WebviewErrorHandler.tsx
@@ -1,7 +1,11 @@
1import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 2import { Component, type ReactElement } from 'react';
4import withStyles, { WithStylesProps } from 'react-jss'; 3import {
4 type WrappedComponentProps,
5 defineMessages,
6 injectIntl,
7} from 'react-intl';
8import withStyles, { type WithStylesProps } from 'react-jss';
5import Button from '../../ui/button'; 9import Button from '../../ui/button';
6import { H1 } from '../../ui/headline'; 10import { H1 } from '../../ui/headline';
7 11
diff --git a/src/components/services/tabs/TabBarSortableList.tsx b/src/components/services/tabs/TabBarSortableList.tsx
index a30587470..2f76c17f1 100644
--- a/src/components/services/tabs/TabBarSortableList.tsx
+++ b/src/components/services/tabs/TabBarSortableList.tsx
@@ -1,9 +1,9 @@
1import { Component } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
2import { Component } from 'react';
3import { SortableContainer } from 'react-sortable-hoc'; 3import { SortableContainer } from 'react-sortable-hoc';
4 4
5import type Service from '../../../models/Service';
5import TabItem from './TabItem'; 6import TabItem from './TabItem';
6import Service from '../../../models/Service';
7 7
8interface IProps { 8interface IProps {
9 showMessageBadgeWhenMutedSetting: boolean; 9 showMessageBadgeWhenMutedSetting: boolean;
diff --git a/src/components/services/tabs/TabItem.tsx b/src/components/services/tabs/TabItem.tsx
index 804efe8a5..bf193e136 100644
--- a/src/components/services/tabs/TabItem.tsx
+++ b/src/components/services/tabs/TabItem.tsx
@@ -1,19 +1,23 @@
1import { app, dialog, Menu } from '@electron/remote'; 1import { Menu, app, dialog } from '@electron/remote';
2import { mdiExclamation, mdiVolumeSource } from '@mdi/js';
3import classnames from 'classnames';
2import { noop } from 'lodash'; 4import { noop } from 'lodash';
3import { Component } from 'react'; 5import { autorun, makeObservable, observable, reaction } from 'mobx';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
5import { inject, observer } from 'mobx-react'; 6import { inject, observer } from 'mobx-react';
6import classnames from 'classnames';
7import { SortableElement } from 'react-sortable-hoc';
8import injectSheet, { WithStylesProps } from 'react-jss';
9import ms from 'ms'; 7import ms from 'ms';
10import { autorun, makeObservable, observable, reaction } from 'mobx'; 8import { Component } from 'react';
11import { mdiExclamation, mdiVolumeSource } from '@mdi/js'; 9import {
12import Service from '../../../models/Service'; 10 type WrappedComponentProps,
11 defineMessages,
12 injectIntl,
13} from 'react-intl';
14import injectSheet, { type WithStylesProps } from 'react-jss';
15import { SortableElement } from 'react-sortable-hoc';
16import type { Stores } from '../../../@types/stores.types';
13import { altKey, cmdOrCtrlShortcutKey, shiftKey } from '../../../environment'; 17import { altKey, cmdOrCtrlShortcutKey, shiftKey } from '../../../environment';
14import globalMessages from '../../../i18n/globalMessages'; 18import globalMessages from '../../../i18n/globalMessages';
19import type Service from '../../../models/Service';
15import Icon from '../../ui/icon'; 20import Icon from '../../ui/icon';
16import { Stores } from '../../../@types/stores.types';
17import MenuItemConstructorOptions = Electron.MenuItemConstructorOptions; 21import MenuItemConstructorOptions = Electron.MenuItemConstructorOptions;
18import { acceleratorString } from '../../../jsUtils'; 22import { acceleratorString } from '../../../jsUtils';
19 23
diff --git a/src/components/services/tabs/Tabbar.tsx b/src/components/services/tabs/Tabbar.tsx
index d19a4b8de..164051aae 100644
--- a/src/components/services/tabs/Tabbar.tsx
+++ b/src/components/services/tabs/Tabbar.tsx
@@ -1,8 +1,8 @@
1import { Component } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
2import { Component } from 'react';
3 3
4import type Service from '../../../models/Service';
4import TabBarSortableList from './TabBarSortableList'; 5import TabBarSortableList from './TabBarSortableList';
5import Service from '../../../models/Service';
6 6
7interface IProps { 7interface IProps {
8 useHorizontalStyle: boolean; 8 useHorizontalStyle: boolean;
diff --git a/src/components/settings/SettingsLayout.tsx b/src/components/settings/SettingsLayout.tsx
index f96ad7394..17f8c3e33 100644
--- a/src/components/settings/SettingsLayout.tsx
+++ b/src/components/settings/SettingsLayout.tsx
@@ -1,12 +1,16 @@
1import { Component, PropsWithChildren, ReactElement } from 'react';
2import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { mdiClose } from '@mdi/js'; 1import { mdiClose } from '@mdi/js';
2import { observer } from 'mobx-react';
3import { Component, type PropsWithChildren, type ReactElement } from 'react';
4import {
5 type WrappedComponentProps,
6 defineMessages,
7 injectIntl,
8} from 'react-intl';
5import { Outlet } from 'react-router-dom'; 9import { Outlet } from 'react-router-dom';
6import ErrorBoundary from '../util/ErrorBoundary'; 10import { isEscKeyPress } from '../../jsUtils';
7import Appear from '../ui/effects/Appear'; 11import Appear from '../ui/effects/Appear';
8import Icon from '../ui/icon'; 12import Icon from '../ui/icon';
9import { isEscKeyPress } from '../../jsUtils'; 13import ErrorBoundary from '../util/ErrorBoundary';
10 14
11const messages = defineMessages({ 15const messages = defineMessages({
12 closeSettings: { 16 closeSettings: {
diff --git a/src/components/settings/account/AccountDashboard.tsx b/src/components/settings/account/AccountDashboard.tsx
index eab019084..76b4ce14e 100644
--- a/src/components/settings/account/AccountDashboard.tsx
+++ b/src/components/settings/account/AccountDashboard.tsx
@@ -1,18 +1,22 @@
1import { Component } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 2import { Component } from 'react';
3import {
4 type WrappedComponentProps,
5 defineMessages,
6 injectIntl,
7} from 'react-intl';
4import { Tooltip as ReactTooltip } from 'react-tooltip'; 8import { Tooltip as ReactTooltip } from 'react-tooltip';
5import { H1, H2 } from '../../ui/headline'; 9import { H1, H2 } from '../../ui/headline';
6 10
7import Loader from '../../ui/loader';
8import Button from '../../ui/button';
9import Infobox from '../../ui/infobox/index';
10import { 11import {
11 DEFAULT_LOADER_COLOR, 12 DEFAULT_LOADER_COLOR,
12 LOCAL_SERVER,
13 LIVE_FRANZ_API, 13 LIVE_FRANZ_API,
14 LOCAL_SERVER,
14} from '../../../config'; 15} from '../../../config';
15import User from '../../../models/User'; 16import type User from '../../../models/User';
17import Button from '../../ui/button';
18import Infobox from '../../ui/infobox/index';
19import Loader from '../../ui/loader';
16 20
17const messages = defineMessages({ 21const messages = defineMessages({
18 headline: { 22 headline: {
diff --git a/src/components/settings/navigation/SettingsNavigation.tsx b/src/components/settings/navigation/SettingsNavigation.tsx
index 66763c6a6..0504b6553 100644
--- a/src/components/settings/navigation/SettingsNavigation.tsx
+++ b/src/components/settings/navigation/SettingsNavigation.tsx
@@ -1,12 +1,16 @@
1import { Component } from 'react';
2import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
3import { inject, observer } from 'mobx-react'; 1import { inject, observer } from 'mobx-react';
2import { Component } from 'react';
3import {
4 type WrappedComponentProps,
5 defineMessages,
6 injectIntl,
7} from 'react-intl';
4import { NavLink } from 'react-router-dom'; 8import { NavLink } from 'react-router-dom';
5import { StoresProps } from '../../../@types/ferdium-components.types'; 9import type { StoresProps } from '../../../@types/ferdium-components.types';
6import { 10import {
7 LOCAL_SERVER,
8 LIVE_FERDIUM_API, 11 LIVE_FERDIUM_API,
9 LIVE_FRANZ_API, 12 LIVE_FRANZ_API,
13 LOCAL_SERVER,
10} from '../../../config'; 14} from '../../../config';
11import globalMessages from '../../../i18n/globalMessages'; 15import globalMessages from '../../../i18n/globalMessages';
12 16
diff --git a/src/components/settings/releaseNotes/ReleaseNotesDashboard.tsx b/src/components/settings/releaseNotes/ReleaseNotesDashboard.tsx
index 9b17e551c..1afc17491 100644
--- a/src/components/settings/releaseNotes/ReleaseNotesDashboard.tsx
+++ b/src/components/settings/releaseNotes/ReleaseNotesDashboard.tsx
@@ -1,7 +1,7 @@
1import { Component } from 'react';
2import { observer } from 'mobx-react';
3import { IntlShape, defineMessages, injectIntl } from 'react-intl';
4import Markdown from 'markdown-to-jsx'; 1import Markdown from 'markdown-to-jsx';
2import { observer } from 'mobx-react';
3import { Component } from 'react';
4import { type IntlShape, defineMessages, injectIntl } from 'react-intl';
5import { ferdiumVersion } from '../../../environment-remote'; 5import { ferdiumVersion } from '../../../environment-remote';
6import { 6import {
7 getFerdiumVersion, 7 getFerdiumVersion,
diff --git a/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx b/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx
index 4a6fe54f4..23db7141e 100644
--- a/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx
+++ b/src/components/settings/releaseNotes/ReleaseNotesLayout.tsx
@@ -1,14 +1,18 @@
1import { Component } from 'react';
2import { inject, observer } from 'mobx-react'; 1import { inject, observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 2import { Component } from 'react';
3import {
4 type WrappedComponentProps,
5 defineMessages,
6 injectIntl,
7} from 'react-intl';
4 8
5import { mdiClose } from '@mdi/js'; 9import { mdiClose } from '@mdi/js';
6import { Outlet } from 'react-router-dom'; 10import { Outlet } from 'react-router-dom';
7import ErrorBoundary from '../../util/ErrorBoundary'; 11import type { Actions } from '../../../actions/lib/actions';
12import { isEscKeyPress } from '../../../jsUtils';
8import Appear from '../../ui/effects/Appear'; 13import Appear from '../../ui/effects/Appear';
9import Icon from '../../ui/icon'; 14import Icon from '../../ui/icon';
10import { isEscKeyPress } from '../../../jsUtils'; 15import ErrorBoundary from '../../util/ErrorBoundary';
11import { Actions } from '../../../actions/lib/actions';
12 16
13const messages = defineMessages({ 17const messages = defineMessages({
14 closeSettings: { 18 closeSettings: {
diff --git a/src/components/settings/services/EditServiceForm.tsx b/src/components/settings/services/EditServiceForm.tsx
index 520cb3c46..69893c16c 100644
--- a/src/components/settings/services/EditServiceForm.tsx
+++ b/src/components/settings/services/EditServiceForm.tsx
@@ -1,25 +1,29 @@
1import { Component, FormEvent, ReactElement } from 'react';
2import { observer } from 'mobx-react';
3import { Link } from 'react-router-dom';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
5import { mdiInformation } from '@mdi/js'; 1import { mdiInformation } from '@mdi/js';
6import { noop } from 'lodash'; 2import { noop } from 'lodash';
7import Form from '../../../lib/Form'; 3import { observer } from 'mobx-react';
8import Tabs from '../../ui/Tabs/Tabs'; 4import { Component, type FormEvent, type ReactElement } from 'react';
9import TabItem from '../../ui/Tabs/TabItem'; 5import {
10import Input from '../../ui/input/index'; 6 type WrappedComponentProps,
11import Toggle from '../../ui/toggle'; 7 defineMessages,
12import Slider from '../../ui/Slider'; 8 injectIntl,
13import Button from '../../ui/button'; 9} from 'react-intl';
14import ImageUpload from '../../ui/imageUpload'; 10import { Link } from 'react-router-dom';
15import Select from '../../ui/Select';
16import { isMac } from '../../../environment'; 11import { isMac } from '../../../environment';
12import { normalizedUrl } from '../../../helpers/url-helpers';
17import globalMessages from '../../../i18n/globalMessages'; 13import globalMessages from '../../../i18n/globalMessages';
18import Icon from '../../ui/icon'; 14import type Form from '../../../lib/Form';
15import type { IRecipe } from '../../../models/Recipe';
16import type Service from '../../../models/Service';
17import Select from '../../ui/Select';
18import Slider from '../../ui/Slider';
19import TabItem from '../../ui/Tabs/TabItem';
20import Tabs from '../../ui/Tabs/Tabs';
21import Button from '../../ui/button';
19import { H3 } from '../../ui/headline'; 22import { H3 } from '../../ui/headline';
20import { IRecipe } from '../../../models/Recipe'; 23import Icon from '../../ui/icon';
21import Service from '../../../models/Service'; 24import ImageUpload from '../../ui/imageUpload';
22import { normalizedUrl } from '../../../helpers/url-helpers'; 25import Input from '../../ui/input/index';
26import Toggle from '../../ui/toggle';
23 27
24const messages = defineMessages({ 28const messages = defineMessages({
25 saveService: { 29 saveService: {
diff --git a/src/components/settings/services/ServiceError.tsx b/src/components/settings/services/ServiceError.tsx
index 87efdeb96..426565547 100644
--- a/src/components/settings/services/ServiceError.tsx
+++ b/src/components/settings/services/ServiceError.tsx
@@ -1,7 +1,11 @@
1import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
2import { Component, type ReactElement } from 'react';
3import {
4 type WrappedComponentProps,
5 defineMessages,
6 injectIntl,
7} from 'react-intl';
3import { Link } from 'react-router-dom'; 8import { Link } from 'react-router-dom';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
5import Infobox from '../../ui/Infobox'; 9import Infobox from '../../ui/Infobox';
6import Button from '../../ui/button'; 10import Button from '../../ui/button';
7 11
diff --git a/src/components/settings/services/ServiceItem.tsx b/src/components/settings/services/ServiceItem.tsx
index 35b63b160..7df59f1d2 100644
--- a/src/components/settings/services/ServiceItem.tsx
+++ b/src/components/settings/services/ServiceItem.tsx
@@ -1,10 +1,14 @@
1import { Component, ReactElement } from 'react';
2import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
3import { Tooltip as ReactTooltip } from 'react-tooltip';
4import { observer } from 'mobx-react';
5import classnames from 'classnames';
6import { mdiBellOff, mdiMessageBulletedOff, mdiPower } from '@mdi/js'; 1import { mdiBellOff, mdiMessageBulletedOff, mdiPower } from '@mdi/js';
7import ServiceModel from '../../../models/Service'; 2import classnames from 'classnames';
3import { observer } from 'mobx-react';
4import { Component, type ReactElement } from 'react';
5import {
6 type WrappedComponentProps,
7 defineMessages,
8 injectIntl,
9} from 'react-intl';
10import { Tooltip as ReactTooltip } from 'react-tooltip';
11import type ServiceModel from '../../../models/Service';
8import Icon from '../../ui/icon'; 12import Icon from '../../ui/icon';
9 13
10const messages = defineMessages({ 14const messages = defineMessages({
diff --git a/src/components/settings/services/ServicesDashboard.tsx b/src/components/settings/services/ServicesDashboard.tsx
index b8c3ce3f0..e63898ae5 100644
--- a/src/components/settings/services/ServicesDashboard.tsx
+++ b/src/components/settings/services/ServicesDashboard.tsx
@@ -1,16 +1,20 @@
1import { Component, ReactElement } from 'react'; 1import type { To } from 'history';
2import { observer } from 'mobx-react'; 2import { observer } from 'mobx-react';
3import { Component, type ReactElement } from 'react';
4import {
5 type WrappedComponentProps,
6 defineMessages,
7 injectIntl,
8} from 'react-intl';
3import { Link } from 'react-router-dom'; 9import { Link } from 'react-router-dom';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 10import type Service from '../../../models/Service';
5import { To } from 'history';
6import SearchInput from '../../ui/SearchInput';
7import Infobox from '../../ui/Infobox';
8import Loader from '../../ui/loader';
9import FAB from '../../ui/FAB'; 11import FAB from '../../ui/FAB';
10import ServiceItem from './ServiceItem'; 12import Infobox from '../../ui/Infobox';
13import SearchInput from '../../ui/SearchInput';
11import Appear from '../../ui/effects/Appear'; 14import Appear from '../../ui/effects/Appear';
12import { H1 } from '../../ui/headline'; 15import { H1 } from '../../ui/headline';
13import Service from '../../../models/Service'; 16import Loader from '../../ui/loader';
17import ServiceItem from './ServiceItem';
14 18
15const messages = defineMessages({ 19const messages = defineMessages({
16 headline: { 20 headline: {
diff --git a/src/components/settings/settings/EditSettingsForm.tsx b/src/components/settings/settings/EditSettingsForm.tsx
index 81cfe8b12..598158e20 100644
--- a/src/components/settings/settings/EditSettingsForm.tsx
+++ b/src/components/settings/settings/EditSettingsForm.tsx
@@ -1,31 +1,20 @@
1import { systemPreferences } from '@electron/remote'; 1import { systemPreferences } from '@electron/remote';
2import { Component, ReactElement } from 'react';
3import { observer } from 'mobx-react';
4import prettyBytes from 'pretty-bytes';
5import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
6import { mdiGithub, mdiOpenInNew, mdiPowerPlug } from '@mdi/js'; 2import { mdiGithub, mdiOpenInNew, mdiPowerPlug } from '@mdi/js';
7import { noop } from 'lodash'; 3import { noop } from 'lodash';
8import Form from '../../../lib/Form'; 4import { observer } from 'mobx-react';
9import Button from '../../ui/button'; 5import prettyBytes from 'pretty-bytes';
10import Toggle from '../../ui/toggle'; 6import { Component, type ReactElement } from 'react';
11import Select from '../../ui/Select';
12import Input from '../../ui/input/index';
13import ColorPickerInput from '../../ui/colorPickerInput';
14import Infobox from '../../ui/Infobox';
15import { H1, H2, H3, H5 } from '../../ui/headline';
16import { 7import {
17 ferdiumVersion, 8 type WrappedComponentProps,
18 userDataCertsPath, 9 defineMessages,
19 userDataPath, 10 injectIntl,
20 userDataRecipesPath, 11} from 'react-intl';
21} from '../../../environment-remote';
22import { updateVersionParse } from '../../../helpers/update-helpers';
23import { 12import {
24 DEFAULT_ACCENT_COLOR, 13 DEFAULT_ACCENT_COLOR,
25 DEFAULT_APP_SETTINGS, 14 DEFAULT_APP_SETTINGS,
26 FERDIUM_TRANSLATION, 15 FERDIUM_TRANSLATION,
27 GITHUB_FRANZ_URL,
28 GITHUB_FERDIUM_URL, 16 GITHUB_FERDIUM_URL,
17 GITHUB_FRANZ_URL,
29 SPLIT_COLUMNS_MAX, 18 SPLIT_COLUMNS_MAX,
30 SPLIT_COLUMNS_MIN, 19 SPLIT_COLUMNS_MIN,
31} from '../../../config'; 20} from '../../../config';
@@ -35,10 +24,25 @@ import {
35 isWindows, 24 isWindows,
36 lockFerdiumShortcutKey, 25 lockFerdiumShortcutKey,
37} from '../../../environment'; 26} from '../../../environment';
27import {
28 ferdiumVersion,
29 userDataCertsPath,
30 userDataPath,
31 userDataRecipesPath,
32} from '../../../environment-remote';
33import { updateVersionParse } from '../../../helpers/update-helpers';
38import { openExternalUrl, openPath } from '../../../helpers/url-helpers'; 34import { openExternalUrl, openPath } from '../../../helpers/url-helpers';
39import globalMessages from '../../../i18n/globalMessages'; 35import globalMessages from '../../../i18n/globalMessages';
40import Icon from '../../ui/icon'; 36import type Form from '../../../lib/Form';
37import Infobox from '../../ui/Infobox';
38import Select from '../../ui/Select';
41import Slider from '../../ui/Slider'; 39import Slider from '../../ui/Slider';
40import Button from '../../ui/button';
41import ColorPickerInput from '../../ui/colorPickerInput';
42import { H1, H2, H3, H5 } from '../../ui/headline';
43import Icon from '../../ui/icon';
44import Input from '../../ui/input/index';
45import Toggle from '../../ui/toggle';
42 46
43const debug = require('../../../preload-safe-debug')( 47const debug = require('../../../preload-safe-debug')(
44 'Ferdium:EditSettingsForm', 48 'Ferdium:EditSettingsForm',
diff --git a/src/components/settings/team/TeamDashboard.tsx b/src/components/settings/team/TeamDashboard.tsx
index 96613373e..b2d5aa6d5 100644
--- a/src/components/settings/team/TeamDashboard.tsx
+++ b/src/components/settings/team/TeamDashboard.tsx
@@ -1,16 +1,20 @@
1// TODO: Is this feature even being used? If not, then we can cleanup this code 1// TODO: Is this feature even being used? If not, then we can cleanup this code
2 2
3import { Component, ReactElement } from 'react'; 3import classnames from 'classnames';
4import { observer } from 'mobx-react'; 4import { observer } from 'mobx-react';
5import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 5import { Component, type ReactElement } from 'react';
6import {
7 type WrappedComponentProps,
8 defineMessages,
9 injectIntl,
10} from 'react-intl';
11import withStyles, { type WithStylesProps } from 'react-jss';
6import { Tooltip as ReactTooltip } from 'react-tooltip'; 12import { Tooltip as ReactTooltip } from 'react-tooltip';
7import withStyles, { WithStylesProps } from 'react-jss'; 13import { DEFAULT_LOADER_COLOR, LIVE_FRANZ_API } from '../../../config';
8import classnames from 'classnames';
9import Loader from '../../ui/loader';
10import Button from '../../ui/button';
11import Infobox from '../../ui/Infobox'; 14import Infobox from '../../ui/Infobox';
15import Button from '../../ui/button';
12import { H1 } from '../../ui/headline'; 16import { H1 } from '../../ui/headline';
13import { DEFAULT_LOADER_COLOR, LIVE_FRANZ_API } from '../../../config'; 17import Loader from '../../ui/loader';
14 18
15const messages = defineMessages({ 19const messages = defineMessages({
16 headline: { 20 headline: {
diff --git a/src/components/settings/user/EditUserForm.tsx b/src/components/settings/user/EditUserForm.tsx
index 5a2a5a83e..f4b84166a 100644
--- a/src/components/settings/user/EditUserForm.tsx
+++ b/src/components/settings/user/EditUserForm.tsx
@@ -1,14 +1,23 @@
1import { Component, FormEvent, FormEventHandler, ReactElement } from 'react'; 1import { noop } from 'lodash';
2import { observer } from 'mobx-react'; 2import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 3import {
4 Component,
5 type FormEvent,
6 type FormEventHandler,
7 type ReactElement,
8} from 'react';
9import {
10 type WrappedComponentProps,
11 defineMessages,
12 injectIntl,
13} from 'react-intl';
4import { Link } from 'react-router-dom'; 14import { Link } from 'react-router-dom';
5import { noop } from 'lodash'; 15import type Form from '../../../lib/Form';
6import Input from '../../ui/input/index';
7import Form from '../../../lib/Form';
8import Button from '../../ui/button';
9import Radio from '../../ui/Radio';
10import Infobox from '../../ui/Infobox'; 16import Infobox from '../../ui/Infobox';
17import Radio from '../../ui/Radio';
18import Button from '../../ui/button';
11import { H2 } from '../../ui/headline'; 19import { H2 } from '../../ui/headline';
20import Input from '../../ui/input/index';
12 21
13const messages = defineMessages({ 22const messages = defineMessages({
14 headline: { 23 headline: {
diff --git a/src/components/ui/AppLoader/index.tsx b/src/components/ui/AppLoader/index.tsx
index 4b5828ef4..a2133e174 100644
--- a/src/components/ui/AppLoader/index.tsx
+++ b/src/components/ui/AppLoader/index.tsx
@@ -1,9 +1,9 @@
1import { Component, ReactElement } from 'react';
2import classnames from 'classnames'; 1import classnames from 'classnames';
3import withStyles, { WithStylesProps } from 'react-jss'; 2import { Component, type ReactElement } from 'react';
4import { Theme } from '../../../themes'; 3import withStyles, { type WithStylesProps } from 'react-jss';
5import FullscreenLoader from '../FullscreenLoader';
6import shuffleArray from '../../../helpers/array-helpers'; 4import shuffleArray from '../../../helpers/array-helpers';
5import type { Theme } from '../../../themes';
6import FullscreenLoader from '../FullscreenLoader';
7 7
8import styles from './styles'; 8import styles from './styles';
9 9
diff --git a/src/components/ui/FAB.tsx b/src/components/ui/FAB.tsx
index acb0f690e..b4eeace8b 100644
--- a/src/components/ui/FAB.tsx
+++ b/src/components/ui/FAB.tsx
@@ -1,7 +1,7 @@
1import { Component, ReactElement, ReactNode } from 'react';
2import { observer } from 'mobx-react';
3import classnames from 'classnames'; 1import classnames from 'classnames';
4import { noop } from 'lodash'; 2import { noop } from 'lodash';
3import { observer } from 'mobx-react';
4import { Component, type ReactElement, type ReactNode } from 'react';
5 5
6interface IProps { 6interface IProps {
7 className: string; 7 className: string;
diff --git a/src/components/ui/FullscreenLoader/index.tsx b/src/components/ui/FullscreenLoader/index.tsx
index 09c1d5fbb..40b04abe8 100644
--- a/src/components/ui/FullscreenLoader/index.tsx
+++ b/src/components/ui/FullscreenLoader/index.tsx
@@ -1,11 +1,11 @@
1import { Component, ReactElement, ReactNode } from 'react';
2import { observer } from 'mobx-react';
3import withStyles, { WithStylesProps } from 'react-jss';
4import classnames from 'classnames'; 1import classnames from 'classnames';
2import { observer } from 'mobx-react';
3import { Component, type ReactElement, type ReactNode } from 'react';
4import withStyles, { type WithStylesProps } from 'react-jss';
5import type { Theme } from '../../../themes';
6import { H1 } from '../headline';
5import Loader from '../loader/index'; 7import Loader from '../loader/index';
6import styles from './styles'; 8import styles from './styles';
7import { H1 } from '../headline';
8import { Theme } from '../../../themes';
9 9
10interface IProps extends WithStylesProps<typeof styles> { 10interface IProps extends WithStylesProps<typeof styles> {
11 className?: string; 11 className?: string;
diff --git a/src/components/ui/InfoBar.tsx b/src/components/ui/InfoBar.tsx
index f3f1adbe7..5fd27f61a 100644
--- a/src/components/ui/InfoBar.tsx
+++ b/src/components/ui/InfoBar.tsx
@@ -1,14 +1,18 @@
1import { Component, MouseEventHandler, ReactNode } from 'react';
2import { observer } from 'mobx-react';
3import classnames from 'classnames'; 1import classnames from 'classnames';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 2import { observer } from 'mobx-react';
3import { Component, type MouseEventHandler, type ReactNode } from 'react';
4import {
5 type WrappedComponentProps,
6 defineMessages,
7 injectIntl,
8} from 'react-intl';
5 9
6import { mdiClose } from '@mdi/js'; 10import { mdiClose } from '@mdi/js';
7import { noop } from 'lodash'; 11import { noop } from 'lodash';
8import Loader from './loader/index'; 12import { DEFAULT_LOADER_COLOR } from '../../config';
9import Appear from './effects/Appear'; 13import Appear from './effects/Appear';
10import Icon from './icon'; 14import Icon from './icon';
11import { DEFAULT_LOADER_COLOR } from '../../config'; 15import Loader from './loader/index';
12 16
13const messages = defineMessages({ 17const messages = defineMessages({
14 hide: { 18 hide: {
diff --git a/src/components/ui/Infobox.tsx b/src/components/ui/Infobox.tsx
index 14e1a581c..fc88c4654 100644
--- a/src/components/ui/Infobox.tsx
+++ b/src/components/ui/Infobox.tsx
@@ -1,12 +1,21 @@
1import { Component, MouseEventHandler, ReactElement, ReactNode } from 'react';
2import classnames from 'classnames';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { mdiAlert, mdiCheckboxMarkedCircleOutline, mdiClose } from '@mdi/js'; 1import { mdiAlert, mdiCheckboxMarkedCircleOutline, mdiClose } from '@mdi/js';
2import classnames from 'classnames';
5import { noop } from 'lodash'; 3import { noop } from 'lodash';
6import { observer } from 'mobx-react'; 4import { observer } from 'mobx-react';
7import Loader from './loader/index'; 5import {
8import Icon from './icon'; 6 Component,
7 type MouseEventHandler,
8 type ReactElement,
9 type ReactNode,
10} from 'react';
11import {
12 type WrappedComponentProps,
13 defineMessages,
14 injectIntl,
15} from 'react-intl';
9import { DEFAULT_LOADER_COLOR } from '../../config'; 16import { DEFAULT_LOADER_COLOR } from '../../config';
17import Icon from './icon';
18import Loader from './loader/index';
10 19
11const icons = { 20const icons = {
12 'checkbox-marked-circle-outline': mdiCheckboxMarkedCircleOutline, 21 'checkbox-marked-circle-outline': mdiCheckboxMarkedCircleOutline,
diff --git a/src/components/ui/Link.tsx b/src/components/ui/Link.tsx
index f9fdd57f9..816798d79 100644
--- a/src/components/ui/Link.tsx
+++ b/src/components/ui/Link.tsx
@@ -1,9 +1,14 @@
1import { Component, CSSProperties, ReactNode, MouseEvent } from 'react';
2import { inject, observer } from 'mobx-react';
3import classnames from 'classnames'; 1import classnames from 'classnames';
2import { inject, observer } from 'mobx-react';
3import {
4 type CSSProperties,
5 Component,
6 type MouseEvent,
7 type ReactNode,
8} from 'react';
9import type { StoresProps } from '../../@types/ferdium-components.types';
4import matchRoute from '../../helpers/routing-helpers'; 10import matchRoute from '../../helpers/routing-helpers';
5import { openExternalUrl } from '../../helpers/url-helpers'; 11import { openExternalUrl } from '../../helpers/url-helpers';
6import { StoresProps } from '../../@types/ferdium-components.types';
7 12
8interface IProps extends Partial<StoresProps> { 13interface IProps extends Partial<StoresProps> {
9 children: ReactNode; 14 children: ReactNode;
@@ -54,7 +59,6 @@ class Link extends Component<IProps> {
54 }); 59 });
55 60
56 return ( 61 return (
57 // biome-ignore lint/a11y/useValidAnchor: <explanation>
58 <a 62 <a
59 href={router.history.createHref(to)} 63 href={router.history.createHref(to)}
60 className={linkClasses} 64 className={linkClasses}
diff --git a/src/components/ui/Modal/index.tsx b/src/components/ui/Modal/index.tsx
index 154beef0c..15326a289 100644
--- a/src/components/ui/Modal/index.tsx
+++ b/src/components/ui/Modal/index.tsx
@@ -1,8 +1,8 @@
1import { Component, ReactNode } from 'react';
2import ReactModal from 'react-modal';
3import classnames from 'classnames';
4import injectCSS, { WithStylesProps } from 'react-jss';
5import { mdiClose } from '@mdi/js'; 1import { mdiClose } from '@mdi/js';
2import classnames from 'classnames';
3import { Component, type ReactNode } from 'react';
4import injectCSS, { type WithStylesProps } from 'react-jss';
5import ReactModal from 'react-modal';
6 6
7import Icon from '../icon'; 7import Icon from '../icon';
8import styles from './styles'; 8import styles from './styles';
diff --git a/src/components/ui/Radio.tsx b/src/components/ui/Radio.tsx
index 901958c78..b556eb4ca 100644
--- a/src/components/ui/Radio.tsx
+++ b/src/components/ui/Radio.tsx
@@ -1,7 +1,7 @@
1import { Component } from 'react';
2import { observer } from 'mobx-react';
3import classnames from 'classnames'; 1import classnames from 'classnames';
4import FieldInterface from 'mobx-react-form/lib/models/FieldInterface'; 2import { observer } from 'mobx-react';
3import type FieldInterface from 'mobx-react-form/lib/models/FieldInterface';
4import { Component } from 'react';
5// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation> 5// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
6import Error from './error'; 6import Error from './error';
7 7
diff --git a/src/components/ui/SearchInput.tsx b/src/components/ui/SearchInput.tsx
index b2caaa1de..2e70d1b35 100644
--- a/src/components/ui/SearchInput.tsx
+++ b/src/components/ui/SearchInput.tsx
@@ -1,8 +1,8 @@
1import { ChangeEvent, Component, ReactElement } from 'react'; 1import { mdiCloseCircleOutline, mdiMagnify } from '@mdi/js';
2import { observer } from 'mobx-react';
3import classnames from 'classnames'; 2import classnames from 'classnames';
4import { debounce, noop } from 'lodash'; 3import { debounce, noop } from 'lodash';
5import { mdiCloseCircleOutline, mdiMagnify } from '@mdi/js'; 4import { observer } from 'mobx-react';
5import { type ChangeEvent, Component, type ReactElement } from 'react';
6import Icon from './icon'; 6import Icon from './icon';
7 7
8interface IProps { 8interface IProps {
diff --git a/src/components/ui/Select.tsx b/src/components/ui/Select.tsx
index a2ed4216f..4abed849d 100644
--- a/src/components/ui/Select.tsx
+++ b/src/components/ui/Select.tsx
@@ -1,14 +1,14 @@
1import classnames from 'classnames';
2import { observer } from 'mobx-react';
1import { 3import {
2 createRef, 4 type ChangeEvent,
3 Component, 5 Component,
4 ReactElement, 6 type ReactElement,
5 RefObject, 7 type ReactNode,
6 ChangeEvent, 8 type RefObject,
7 ReactNode, 9 createRef,
8} from 'react'; 10} from 'react';
9import { observer } from 'mobx-react'; 11import type { Field } from '../../@types/mobx-form.types';
10import classnames from 'classnames';
11import { Field } from '../../@types/mobx-form.types';
12 12
13interface IProps { 13interface IProps {
14 field: Field; 14 field: Field;
diff --git a/src/components/ui/ServiceIcon.tsx b/src/components/ui/ServiceIcon.tsx
index 6920611d0..03a345c23 100644
--- a/src/components/ui/ServiceIcon.tsx
+++ b/src/components/ui/ServiceIcon.tsx
@@ -1,8 +1,8 @@
1import { Component, ReactNode } from 'react';
2import { observer } from 'mobx-react';
3import withStyles, { WithStylesProps } from 'react-jss';
4import classnames from 'classnames'; 1import classnames from 'classnames';
5import ServiceModel from '../../models/Service'; 2import { observer } from 'mobx-react';
3import { Component, type ReactNode } from 'react';
4import withStyles, { type WithStylesProps } from 'react-jss';
5import type ServiceModel from '../../models/Service';
6 6
7const styles = theme => ({ 7const styles = theme => ({
8 root: { 8 root: {
diff --git a/src/components/ui/Slider.tsx b/src/components/ui/Slider.tsx
index aa351ccd2..4f22290ef 100644
--- a/src/components/ui/Slider.tsx
+++ b/src/components/ui/Slider.tsx
@@ -1,7 +1,7 @@
1import { ChangeEvent, Component, ReactElement } from 'react';
2import { observer } from 'mobx-react';
3import classnames from 'classnames'; 1import classnames from 'classnames';
4import { noop } from 'lodash'; 2import { noop } from 'lodash';
3import { observer } from 'mobx-react';
4import { type ChangeEvent, Component, type ReactElement } from 'react';
5 5
6interface IProps { 6interface IProps {
7 field: any; 7 field: any;
diff --git a/src/components/ui/StatusBarTargetUrl.tsx b/src/components/ui/StatusBarTargetUrl.tsx
index d969267eb..92cb6c36d 100644
--- a/src/components/ui/StatusBarTargetUrl.tsx
+++ b/src/components/ui/StatusBarTargetUrl.tsx
@@ -1,6 +1,6 @@
1import { Component } from 'react';
2import { observer } from 'mobx-react';
3import classnames from 'classnames'; 1import classnames from 'classnames';
2import { observer } from 'mobx-react';
3import { Component } from 'react';
4import Appear from './effects/Appear'; 4import Appear from './effects/Appear';
5 5
6interface IProps { 6interface IProps {
diff --git a/src/components/ui/Tabs/TabItem.tsx b/src/components/ui/Tabs/TabItem.tsx
index 55dee42c6..df99a8bfb 100644
--- a/src/components/ui/Tabs/TabItem.tsx
+++ b/src/components/ui/Tabs/TabItem.tsx
@@ -1,4 +1,4 @@
1import { Fragment, ReactElement } from 'react'; 1import { Fragment, type ReactElement } from 'react';
2 2
3export interface IProps { 3export interface IProps {
4 children: 4 children:
diff --git a/src/components/ui/Tabs/Tabs.tsx b/src/components/ui/Tabs/Tabs.tsx
index d7f75c8b8..a5ec148aa 100644
--- a/src/components/ui/Tabs/Tabs.tsx
+++ b/src/components/ui/Tabs/Tabs.tsx
@@ -1,7 +1,12 @@
1import { Children, Component, ReactElement, ReactPortal } from 'react';
2import { observer } from 'mobx-react';
3import classnames from 'classnames'; 1import classnames from 'classnames';
4import { IProps as TabItemProps } from './TabItem'; 2import { observer } from 'mobx-react';
3import {
4 Children,
5 Component,
6 type ReactElement,
7 type ReactPortal,
8} from 'react';
9import type { IProps as TabItemProps } from './TabItem';
5 10
6interface IProps { 11interface IProps {
7 children: 12 children:
diff --git a/src/components/ui/WebviewLoader/index.tsx b/src/components/ui/WebviewLoader/index.tsx
index c4e9c724c..53e10d3b9 100644
--- a/src/components/ui/WebviewLoader/index.tsx
+++ b/src/components/ui/WebviewLoader/index.tsx
@@ -1,7 +1,11 @@
1import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react'; 1import { observer } from 'mobx-react';
3import injectSheet, { WithStylesProps } from 'react-jss'; 2import { Component, type ReactElement } from 'react';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 3import {
4 type WrappedComponentProps,
5 defineMessages,
6 injectIntl,
7} from 'react-intl';
8import injectSheet, { type WithStylesProps } from 'react-jss';
5import FullscreenLoader from '../FullscreenLoader'; 9import FullscreenLoader from '../FullscreenLoader';
6 10
7const messages = defineMessages({ 11const messages = defineMessages({
diff --git a/src/components/ui/badge/ProBadge.tsx b/src/components/ui/badge/ProBadge.tsx
index a5947d3a8..fd5752ed0 100644
--- a/src/components/ui/badge/ProBadge.tsx
+++ b/src/components/ui/badge/ProBadge.tsx
@@ -1,9 +1,9 @@
1import { mdiStar } from '@mdi/js'; 1import { mdiStar } from '@mdi/js';
2import classnames from 'classnames'; 2import classnames from 'classnames';
3import { Component } from 'react'; 3import { Component } from 'react';
4import injectStyle, { WithStylesProps } from 'react-jss'; 4import injectStyle, { type WithStylesProps } from 'react-jss';
5 5
6import { Theme } from '../../../themes'; 6import type { Theme } from '../../../themes';
7import Icon from '../icon'; 7import Icon from '../icon';
8import Badge from './index'; 8import Badge from './index';
9 9
diff --git a/src/components/ui/badge/index.tsx b/src/components/ui/badge/index.tsx
index 44fbf2d4a..e464c07ec 100644
--- a/src/components/ui/badge/index.tsx
+++ b/src/components/ui/badge/index.tsx
@@ -1,8 +1,8 @@
1import classnames from 'classnames'; 1import classnames from 'classnames';
2import { Component, ReactNode } from 'react'; 2import { Component, type ReactNode } from 'react';
3import injectStyle, { WithStylesProps } from 'react-jss'; 3import injectStyle, { type WithStylesProps } from 'react-jss';
4 4
5import { Theme } from '../../../themes'; 5import type { Theme } from '../../../themes';
6 6
7const badgeStyles = (theme: Theme) => { 7const badgeStyles = (theme: Theme) => {
8 const styles = {}; 8 const styles = {};
diff --git a/src/components/ui/button/index.tsx b/src/components/ui/button/index.tsx
index 3247072a9..5c606f274 100644
--- a/src/components/ui/button/index.tsx
+++ b/src/components/ui/button/index.tsx
@@ -1,14 +1,14 @@
1/* eslint-disable no-use-before-define */ 1/* eslint-disable no-use-before-define */
2import Icon from '@mdi/react'; 2import Icon from '@mdi/react';
3import classnames from 'classnames'; 3import classnames from 'classnames';
4import { Property } from 'csstype'; 4import type { Property } from 'csstype';
5import { noop } from 'lodash'; 5import { noop } from 'lodash';
6import { Component, MouseEventHandler } from 'react'; 6import { Component, type MouseEventHandler } from 'react';
7import withStyles, { WithStylesProps } from 'react-jss'; 7import withStyles, { type WithStylesProps } from 'react-jss';
8import Loader from '../loader/index';
9import { Theme } from '../../../themes';
10import { IFormField } from '../typings/generic';
11import { DEFAULT_LOADER_COLOR } from '../../../config'; 8import { DEFAULT_LOADER_COLOR } from '../../../config';
9import type { Theme } from '../../../themes';
10import Loader from '../loader/index';
11import type { IFormField } from '../typings/generic';
12 12
13type ButtonType = 13type ButtonType =
14 | 'primary' 14 | 'primary'
@@ -206,7 +206,6 @@ class ButtonComponent extends Component<IProps, IState> {
206 ); 206 );
207 207
208 const wrapperComponent = href ? ( 208 const wrapperComponent = href ? (
209 // biome-ignore lint/a11y/useValidAnchor: <explanation>
210 <a 209 <a
211 href={href} 210 href={href}
212 target={target} 211 target={target}
diff --git a/src/components/ui/colorPickerInput/index.tsx b/src/components/ui/colorPickerInput/index.tsx
index 39fd0220a..4870a3675 100644
--- a/src/components/ui/colorPickerInput/index.tsx
+++ b/src/components/ui/colorPickerInput/index.tsx
@@ -1,15 +1,15 @@
1import classnames from 'classnames';
2import { noop } from 'lodash';
3import { observer } from 'mobx-react';
1import { 4import {
2 ChangeEvent, 5 type ChangeEvent,
3 Component, 6 Component,
7 type InputHTMLAttributes,
8 type RefObject,
4 createRef, 9 createRef,
5 InputHTMLAttributes,
6 RefObject,
7} from 'react'; 10} from 'react';
8import { observer } from 'mobx-react'; 11import { type Color, type ColorResult, SliderPicker } from 'react-color';
9import classnames from 'classnames'; 12import type { FormFields } from '../../../@types/mobx-form.types';
10import { Color, ColorResult, SliderPicker } from 'react-color';
11import { noop } from 'lodash';
12import { FormFields } from '../../../@types/mobx-form.types';
13 13
14interface IProps extends InputHTMLAttributes<HTMLInputElement>, FormFields { 14interface IProps extends InputHTMLAttributes<HTMLInputElement>, FormFields {
15 onColorChange: (event: ChangeEvent<HTMLInputElement>) => void; 15 onColorChange: (event: ChangeEvent<HTMLInputElement>) => void;
diff --git a/src/components/ui/effects/Appear.tsx b/src/components/ui/effects/Appear.tsx
index 06f63a029..c32c339fd 100644
--- a/src/components/ui/effects/Appear.tsx
+++ b/src/components/ui/effects/Appear.tsx
@@ -1,4 +1,4 @@
1import { ReactElement, ReactNode, useEffect, useState } from 'react'; 1import { type ReactElement, type ReactNode, useEffect, useState } from 'react';
2import { CSSTransition, TransitionGroup } from 'react-transition-group'; 2import { CSSTransition, TransitionGroup } from 'react-transition-group';
3 3
4interface IProps { 4interface IProps {
diff --git a/src/components/ui/error/index.tsx b/src/components/ui/error/index.tsx
index 01fb5ca27..d0008529f 100644
--- a/src/components/ui/error/index.tsx
+++ b/src/components/ui/error/index.tsx
@@ -1,4 +1,4 @@
1import { Classes } from 'jss'; 1import type { Classes } from 'jss';
2import { Component } from 'react'; 2import { Component } from 'react';
3import injectSheet from 'react-jss'; 3import injectSheet from 'react-jss';
4 4
diff --git a/src/components/ui/error/styles.ts b/src/components/ui/error/styles.ts
index 9da95705a..ac781052f 100644
--- a/src/components/ui/error/styles.ts
+++ b/src/components/ui/error/styles.ts
@@ -1,4 +1,4 @@
1import { Theme } from '../../../themes'; 1import type { Theme } from '../../../themes';
2 2
3export default (theme: Theme) => ({ 3export default (theme: Theme) => ({
4 message: { 4 message: {
diff --git a/src/components/ui/headline/index.tsx b/src/components/ui/headline/index.tsx
index 8e40fa896..2070745bb 100644
--- a/src/components/ui/headline/index.tsx
+++ b/src/components/ui/headline/index.tsx
@@ -1,15 +1,15 @@
1import classnames from 'classnames'; 1import classnames from 'classnames';
2import { 2import {
3 Component, 3 Component,
4 type MouseEventHandler,
5 type ReactElement,
6 type ReactNode,
4 createElement, 7 createElement,
5 MouseEventHandler,
6 ReactElement,
7 ReactNode,
8} from 'react'; 8} from 'react';
9import injectStyle, { WithStylesProps } from 'react-jss'; 9import injectStyle, { type WithStylesProps } from 'react-jss';
10 10
11import { Theme } from '../../../themes'; 11import type { Theme } from '../../../themes';
12import { Omit } from '../typings/generic'; 12import type { Omit } from '../typings/generic';
13 13
14const styles = (theme: Theme) => ({ 14const styles = (theme: Theme) => ({
15 headline: { 15 headline: {
diff --git a/src/components/ui/icon/index.tsx b/src/components/ui/icon/index.tsx
index 04a00d0e0..ad9f43730 100644
--- a/src/components/ui/icon/index.tsx
+++ b/src/components/ui/icon/index.tsx
@@ -1,9 +1,9 @@
1import MdiIcon from '@mdi/react'; 1import MdiIcon from '@mdi/react';
2import classnames from 'classnames'; 2import classnames from 'classnames';
3import { Component, ReactElement } from 'react'; 3import { Component, type ReactElement } from 'react';
4import injectStyle, { WithStylesProps } from 'react-jss'; 4import injectStyle, { type WithStylesProps } from 'react-jss';
5 5
6import { Theme } from '../../../themes'; 6import type { Theme } from '../../../themes';
7 7
8const styles = (theme: Theme) => ({ 8const styles = (theme: Theme) => ({
9 icon: { 9 icon: {
diff --git a/src/components/ui/imageUpload/index.tsx b/src/components/ui/imageUpload/index.tsx
index 3b164ed41..876572484 100644
--- a/src/components/ui/imageUpload/index.tsx
+++ b/src/components/ui/imageUpload/index.tsx
@@ -1,11 +1,11 @@
1import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react';
3import classnames from 'classnames';
4import Dropzone from 'react-dropzone';
5import { mdiDelete, mdiFileImage } from '@mdi/js'; 1import { mdiDelete, mdiFileImage } from '@mdi/js';
2import classnames from 'classnames';
3import { observer } from 'mobx-react';
6import prettyBytes from 'pretty-bytes'; 4import prettyBytes from 'pretty-bytes';
7import Icon from '../icon'; 5import { Component, type ReactElement } from 'react';
6import Dropzone from 'react-dropzone';
8import { isWindows } from '../../../environment'; 7import { isWindows } from '../../../environment';
8import Icon from '../icon';
9 9
10interface IProps { 10interface IProps {
11 field: any; 11 field: any;
diff --git a/src/components/ui/infobox/index.tsx b/src/components/ui/infobox/index.tsx
index a1c4f9d21..36ea6a59f 100644
--- a/src/components/ui/infobox/index.tsx
+++ b/src/components/ui/infobox/index.tsx
@@ -2,9 +2,9 @@
2import { mdiClose } from '@mdi/js'; 2import { mdiClose } from '@mdi/js';
3import classnames from 'classnames'; 3import classnames from 'classnames';
4import { noop } from 'lodash'; 4import { noop } from 'lodash';
5import { Component, ReactElement, ReactNode } from 'react'; 5import { Component, type ReactElement, type ReactNode } from 'react';
6import withStyles, { WithStylesProps } from 'react-jss'; 6import withStyles, { type WithStylesProps } from 'react-jss';
7import { Theme } from '../../../themes'; 7import type { Theme } from '../../../themes';
8import Icon from '../icon'; 8import Icon from '../icon';
9 9
10const buttonStyles = (theme: Theme) => { 10const buttonStyles = (theme: Theme) => {
diff --git a/src/components/ui/input/index.tsx b/src/components/ui/input/index.tsx
index 68cc9ee22..c61efe570 100644
--- a/src/components/ui/input/index.tsx
+++ b/src/components/ui/input/index.tsx
@@ -1,22 +1,26 @@
1import { mdiEye, mdiEyeOff } from '@mdi/js'; 1import { mdiEye, mdiEyeOff } from '@mdi/js';
2import classnames from 'classnames'; 2import classnames from 'classnames';
3import { noop } from 'lodash';
4import { observer } from 'mobx-react';
3import { 5import {
4 Component, 6 Component,
7 type InputHTMLAttributes,
8 type KeyboardEvent,
9 type ReactElement,
10 type RefObject,
5 createRef, 11 createRef,
6 InputHTMLAttributes,
7 ReactElement,
8 RefObject,
9 KeyboardEvent,
10} from 'react'; 12} from 'react';
11import withStyles, { WithStylesProps } from 'react-jss'; 13import {
12import { noop } from 'lodash'; 14 type WrappedComponentProps,
13import { observer } from 'mobx-react'; 15 defineMessages,
14import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 16 injectIntl,
15import Icon from '../icon'; 17} from 'react-intl';
16import { IFormField } from '../typings/generic'; 18import withStyles, { type WithStylesProps } from 'react-jss';
17// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation> 19// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
18import Error from '../error'; 20import Error from '../error';
21import Icon from '../icon';
19import Label from '../label'; 22import Label from '../label';
23import type { IFormField } from '../typings/generic';
20import Wrapper from '../wrapper'; 24import Wrapper from '../wrapper';
21import { scorePasswordFunc } from './scorePassword'; 25import { scorePasswordFunc } from './scorePassword';
22import styles from './styles'; 26import styles from './styles';
diff --git a/src/components/ui/input/styles.ts b/src/components/ui/input/styles.ts
index ebae0e40d..580c72889 100644
--- a/src/components/ui/input/styles.ts
+++ b/src/components/ui/input/styles.ts
@@ -1,6 +1,6 @@
1import { Property } from 'csstype'; 1import type { Property } from 'csstype';
2 2
3import { Theme } from '../../../themes'; 3import type { Theme } from '../../../themes';
4 4
5const prefixStyles = (theme: Theme) => ({ 5const prefixStyles = (theme: Theme) => ({
6 background: theme.inputPrefixBackground, 6 background: theme.inputPrefixBackground,
diff --git a/src/components/ui/label/index.tsx b/src/components/ui/label/index.tsx
index 5f5cc5c8e..c0a3903b0 100644
--- a/src/components/ui/label/index.tsx
+++ b/src/components/ui/label/index.tsx
@@ -1,8 +1,8 @@
1import classnames from 'classnames'; 1import classnames from 'classnames';
2import { Component, LabelHTMLAttributes } from 'react'; 2import { Component, type LabelHTMLAttributes } from 'react';
3import injectSheet, { WithStylesProps } from 'react-jss'; 3import injectSheet, { type WithStylesProps } from 'react-jss';
4 4
5import { IFormField } from '../typings/generic'; 5import type { IFormField } from '../typings/generic';
6 6
7import styles from './styles'; 7import styles from './styles';
8 8
diff --git a/src/components/ui/label/styles.ts b/src/components/ui/label/styles.ts
index faa44ae5b..fecfa1816 100644
--- a/src/components/ui/label/styles.ts
+++ b/src/components/ui/label/styles.ts
@@ -1,4 +1,4 @@
1import { Theme } from '../../../themes'; 1import type { Theme } from '../../../themes';
2 2
3export default (theme: Theme) => ({ 3export default (theme: Theme) => ({
4 content: {}, 4 content: {},
diff --git a/src/components/ui/loader/index.tsx b/src/components/ui/loader/index.tsx
index c0ae15028..8757985b9 100644
--- a/src/components/ui/loader/index.tsx
+++ b/src/components/ui/loader/index.tsx
@@ -1,9 +1,9 @@
1import classnames from 'classnames'; 1import classnames from 'classnames';
2import { inject } from 'mobx-react';
2import { Component } from 'react'; 3import { Component } from 'react';
3import injectStyle, { WithStylesProps } from 'react-jss'; 4import injectStyle, { type WithStylesProps } from 'react-jss';
4import { Oval } from 'react-loader-spinner'; 5import { Oval } from 'react-loader-spinner';
5import { inject } from 'mobx-react'; 6import type { FerdiumStores } from '../../../@types/stores.types';
6import { FerdiumStores } from '../../../@types/stores.types';
7import { DEFAULT_LOADER_COLOR } from '../../../config'; 7import { DEFAULT_LOADER_COLOR } from '../../../config';
8 8
9const styles = () => ({ 9const styles = () => ({
diff --git a/src/components/ui/select/index.tsx b/src/components/ui/select/index.tsx
index 0d8520f58..2716ebc2d 100644
--- a/src/components/ui/select/index.tsx
+++ b/src/components/ui/select/index.tsx
@@ -5,14 +5,19 @@ import {
5} from '@mdi/js'; 5} from '@mdi/js';
6import Icon from '@mdi/react'; 6import Icon from '@mdi/react';
7import classnames from 'classnames'; 7import classnames from 'classnames';
8import { ChangeEvent, Component, createRef, ReactElement } from 'react';
9import withStyles, { WithStylesProps } from 'react-jss';
10import { noop } from 'lodash'; 8import { noop } from 'lodash';
11import { Theme } from '../../../themes'; 9import {
12import { IFormField } from '../typings/generic'; 10 type ChangeEvent,
11 Component,
12 type ReactElement,
13 createRef,
14} from 'react';
15import withStyles, { type WithStylesProps } from 'react-jss';
16import type { Theme } from '../../../themes';
13// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation> 17// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
14import Error from '../error'; 18import Error from '../error';
15import Label from '../label'; 19import Label from '../label';
20import type { IFormField } from '../typings/generic';
16import Wrapper from '../wrapper'; 21import Wrapper from '../wrapper';
17 22
18let popupTransition: string = 'none'; 23let popupTransition: string = 'none';
diff --git a/src/components/ui/textarea/index.tsx b/src/components/ui/textarea/index.tsx
index 0967c4c25..4a0e77afe 100644
--- a/src/components/ui/textarea/index.tsx
+++ b/src/components/ui/textarea/index.tsx
@@ -1,9 +1,9 @@
1import classnames from 'classnames'; 1import classnames from 'classnames';
2import { Component, createRef, TextareaHTMLAttributes } from 'react'; 2import { Component, type TextareaHTMLAttributes, createRef } from 'react';
3import injectSheet, { WithStylesProps } from 'react-jss'; 3import injectSheet, { type WithStylesProps } from 'react-jss';
4 4
5import { noop } from 'lodash'; 5import { noop } from 'lodash';
6import { IFormField } from '../typings/generic'; 6import type { IFormField } from '../typings/generic';
7 7
8// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation> 8// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
9import Error from '../error'; 9import Error from '../error';
diff --git a/src/components/ui/textarea/styles.ts b/src/components/ui/textarea/styles.ts
index 36fc2a82e..c4c27b95d 100644
--- a/src/components/ui/textarea/styles.ts
+++ b/src/components/ui/textarea/styles.ts
@@ -1,6 +1,6 @@
1import { Property } from 'csstype'; 1import type { Property } from 'csstype';
2 2
3import { Theme } from '../../../themes'; 3import type { Theme } from '../../../themes';
4 4
5export default (theme: Theme) => ({ 5export default (theme: Theme) => ({
6 label: { 6 label: {
diff --git a/src/components/ui/toggle/index.tsx b/src/components/ui/toggle/index.tsx
index 878ffecdc..dc426b3a1 100644
--- a/src/components/ui/toggle/index.tsx
+++ b/src/components/ui/toggle/index.tsx
@@ -1,13 +1,13 @@
1import classnames from 'classnames'; 1import classnames from 'classnames';
2import { Property } from 'csstype'; 2import type { Property } from 'csstype';
3import { noop } from 'lodash'; 3import { noop } from 'lodash';
4import { Component, InputHTMLAttributes, ReactElement } from 'react'; 4import { Component, type InputHTMLAttributes, type ReactElement } from 'react';
5import withStyles, { WithStylesProps } from 'react-jss'; 5import withStyles, { type WithStylesProps } from 'react-jss';
6import { Theme } from '../../../themes'; 6import type { Theme } from '../../../themes';
7// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation> 7// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
8import Error from '../error'; 8import Error from '../error';
9import Label from '../label'; 9import Label from '../label';
10import { IFormField } from '../typings/generic'; 10import type { IFormField } from '../typings/generic';
11import Wrapper from '../wrapper'; 11import Wrapper from '../wrapper';
12 12
13const buttonTransition: string = window?.matchMedia( 13const buttonTransition: string = window?.matchMedia(
diff --git a/src/components/ui/wrapper/index.tsx b/src/components/ui/wrapper/index.tsx
index 450d09fd1..081b13b36 100644
--- a/src/components/ui/wrapper/index.tsx
+++ b/src/components/ui/wrapper/index.tsx
@@ -1,6 +1,6 @@
1import classnames from 'classnames'; 1import classnames from 'classnames';
2import { Component, ReactNode } from 'react'; 2import { Component, type ReactNode } from 'react';
3import injectStyle, { WithStylesProps } from 'react-jss'; 3import injectStyle, { type WithStylesProps } from 'react-jss';
4 4
5// eslint-disable-next-line no-use-before-define 5// eslint-disable-next-line no-use-before-define
6interface IProps extends WithStylesProps<typeof styles> { 6interface IProps extends WithStylesProps<typeof styles> {
diff --git a/src/components/util/ErrorBoundary/index.tsx b/src/components/util/ErrorBoundary/index.tsx
index 66f860835..a37d1b33a 100644
--- a/src/components/util/ErrorBoundary/index.tsx
+++ b/src/components/util/ErrorBoundary/index.tsx
@@ -1,6 +1,6 @@
1import { Component, ReactNode } from 'react'; 1import { Component, type ReactNode } from 'react';
2import withStyles, { WithStylesProps } from 'react-jss'; 2import { type IntlShape, defineMessages, injectIntl } from 'react-intl';
3import { defineMessages, injectIntl, IntlShape } from 'react-intl'; 3import withStyles, { type WithStylesProps } from 'react-jss';
4 4
5import Button from '../../ui/button'; 5import Button from '../../ui/button';
6import { H1 } from '../../ui/headline'; 6import { H1 } from '../../ui/headline';