diff --git a/package-lock.json b/package-lock.json index affec481ff..efcc13a7e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -124,7 +124,7 @@ "@babel/plugin-transform-private-methods": "7.25.9", "@babel/preset-env": "7.25.9", "@babel/preset-react": "7.25.9", - "@jitsi/eslint-config": "6.0.1", + "@jitsi/eslint-config": "6.0.4", "@react-native/metro-config": "0.75.5", "@types/amplitude-js": "8.16.5", "@types/audioworklet": "0.0.29", @@ -4232,9 +4232,9 @@ } }, "node_modules/@jitsi/eslint-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@jitsi/eslint-config/-/eslint-config-6.0.1.tgz", - "integrity": "sha512-Y7Bkcx7NK4ctYKVX57zS51Z7Ak2jtoYctr/Xso5Gh1E/Gl32KipTkF5Fg142qo1x2KH/ossk/P1emdqTHBnAWQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@jitsi/eslint-config/-/eslint-config-6.0.4.tgz", + "integrity": "sha512-5ReSX/ruQi/JdsMAGRPMZL4WupCmWHEDAd8pFfvd48/JV43ku1fM0j3S3ORtl/QF4/medenRuWL633oyCGXXUA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -28594,9 +28594,9 @@ } }, "@jitsi/eslint-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@jitsi/eslint-config/-/eslint-config-6.0.1.tgz", - "integrity": "sha512-Y7Bkcx7NK4ctYKVX57zS51Z7Ak2jtoYctr/Xso5Gh1E/Gl32KipTkF5Fg142qo1x2KH/ossk/P1emdqTHBnAWQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@jitsi/eslint-config/-/eslint-config-6.0.4.tgz", + "integrity": "sha512-5ReSX/ruQi/JdsMAGRPMZL4WupCmWHEDAd8pFfvd48/JV43ku1fM0j3S3ORtl/QF4/medenRuWL633oyCGXXUA==", "dev": true, "requires": { "@babel/eslint-parser": "^7.25.9", diff --git a/package.json b/package.json index d0cbb39104..fd15c4ffc0 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "@babel/plugin-transform-private-methods": "7.25.9", "@babel/preset-env": "7.25.9", "@babel/preset-react": "7.25.9", - "@jitsi/eslint-config": "6.0.1", + "@jitsi/eslint-config": "6.0.4", "@react-native/metro-config": "0.75.5", "@types/amplitude-js": "8.16.5", "@types/audioworklet": "0.0.29", diff --git a/react/features/av-moderation/reducer.ts b/react/features/av-moderation/reducer.ts index c06e2b4444..da8f5aca0d 100644 --- a/react/features/av-moderation/reducer.ts +++ b/react/features/av-moderation/reducer.ts @@ -1,5 +1,4 @@ -import { MEDIA_TYPE } from '../base/media/constants'; -import type { MediaType } from '../base/media/constants'; +import { MEDIA_TYPE, type MediaType } from '../base/media/constants'; import { PARTICIPANT_LEFT, PARTICIPANT_UPDATED diff --git a/react/features/base/conference/subscriber.ts b/react/features/base/conference/subscriber.ts index ac778635e5..19ff88653f 100644 --- a/react/features/base/conference/subscriber.ts +++ b/react/features/base/conference/subscriber.ts @@ -1,9 +1,9 @@ import { IStore } from '../../app/types'; import { showNotification } from '../../notifications/actions'; import { NOTIFICATION_TIMEOUT_TYPE } from '../../notifications/constants'; -import StateListenerRegistry from '../redux/StateListenerRegistry'; import { setAudioMuted, setVideoMuted } from '../media/actions'; import { VIDEO_MUTISM_AUTHORITY } from '../media/constants'; +import StateListenerRegistry from '../redux/StateListenerRegistry'; let hasShownNotification = false; diff --git a/react/features/base/connection/actions.native.ts b/react/features/base/connection/actions.native.ts index 08045f4834..4fc948d946 100644 --- a/react/features/base/connection/actions.native.ts +++ b/react/features/base/connection/actions.native.ts @@ -1,7 +1,7 @@ import { appNavigate } from '../../app/actions.native'; import { IStore } from '../../app/types'; import { getCustomerDetails } from '../../jaas/actions.any'; -import { isVpaasMeeting, getJaasJWT } from '../../jaas/functions'; +import { getJaasJWT, isVpaasMeeting } from '../../jaas/functions'; import { navigateRoot } from '../../mobile/navigation/rootNavigationContainerRef'; import { screen } from '../../mobile/navigation/routes'; import { setJWT } from '../jwt/actions'; diff --git a/react/features/base/i18n/dateUtil.ts b/react/features/base/i18n/dateUtil.ts index 850fa39697..ddf3df5e70 100644 --- a/react/features/base/i18n/dateUtil.ts +++ b/react/features/base/i18n/dateUtil.ts @@ -1,7 +1,7 @@ import dayjs from 'dayjs'; import durationPlugin from 'dayjs/plugin/duration'; -import relativeTimePlugin from 'dayjs/plugin/relativeTime'; import localizedFormatPlugin from 'dayjs/plugin/localizedFormat'; +import relativeTimePlugin from 'dayjs/plugin/relativeTime'; import i18next from './i18next'; diff --git a/react/features/base/jwt/middleware.ts b/react/features/base/jwt/middleware.ts index ba9df716d8..4c0c7a76d8 100644 --- a/react/features/base/jwt/middleware.ts +++ b/react/features/base/jwt/middleware.ts @@ -4,20 +4,20 @@ import { AnyAction } from 'redux'; import { IStore } from '../../app/types'; import { isVpaasMeeting } from '../../jaas/functions'; +import { getCurrentConference } from '../conference/functions'; import { SET_CONFIG } from '../config/actionTypes'; import { CONNECTION_ESTABLISHED, SET_LOCATION_URL } from '../connection/actionTypes'; import { participantUpdated } from '../participants/actions'; import { getLocalParticipant } from '../participants/functions'; import { IParticipant } from '../participants/types'; import MiddlewareRegistry from '../redux/MiddlewareRegistry'; +import StateListenerRegistry from '../redux/StateListenerRegistry'; import { parseURIString } from '../util/uri'; import { SET_JWT } from './actionTypes'; import { setDelayedLoadOfAvatarUrl, setJWT, setKnownAvatarUrl } from './actions'; import { parseJWTFromURLParams } from './functions'; import logger from './logger'; -import StateListenerRegistry from '../redux/StateListenerRegistry'; -import { getCurrentConference } from '../conference/functions'; /** * Set up a state change listener to perform maintenance tasks when the conference diff --git a/react/features/base/net-info/NetworkInfoService.native.ts b/react/features/base/net-info/NetworkInfoService.native.ts index 8e296570c3..69baa1b2c7 100644 --- a/react/features/base/net-info/NetworkInfoService.native.ts +++ b/react/features/base/net-info/NetworkInfoService.native.ts @@ -1,7 +1,10 @@ -import NetInfo from '@react-native-community/netinfo'; -import type { NetInfoState, NetInfoSubscription } from '@react-native-community/netinfo'; +import { + default as NetInfo, + type NetInfoState, + type NetInfoSubscription +} from '@react-native-community/netinfo'; // eslint-disable-next-line lines-around-comment -// @ts-expect-error +// @ts-ignore import EventEmitter from 'events'; import { ONLINE_STATE_CHANGED_EVENT } from './events'; diff --git a/react/features/base/redux/ReducerRegistry.ts b/react/features/base/redux/ReducerRegistry.ts index 7cd18470ef..223fbe05ba 100644 --- a/react/features/base/redux/ReducerRegistry.ts +++ b/react/features/base/redux/ReducerRegistry.ts @@ -1,5 +1,4 @@ -import { Action, combineReducers } from 'redux'; -import type { Reducer } from 'redux'; +import { Action, type Reducer, combineReducers } from 'redux'; /** * The type of the dictionary/map which associates a reducer (function) with the diff --git a/react/features/base/responsive-ui/functions.ts b/react/features/base/responsive-ui/functions.ts index fb6cad6eb2..57f06ad350 100644 --- a/react/features/base/responsive-ui/functions.ts +++ b/react/features/base/responsive-ui/functions.ts @@ -1,6 +1,7 @@ import { IStateful } from '../app/types'; import { isMobileBrowser } from '../environment/utils'; import { toState } from '../redux/functions'; + import { SMALL_DESKTOP_WIDTH } from './constants'; /** diff --git a/react/features/base/toolbox/components/ToolboxItem.web.tsx b/react/features/base/toolbox/components/ToolboxItem.web.tsx index 8c000ebbbb..fbac9b8890 100644 --- a/react/features/base/toolbox/components/ToolboxItem.web.tsx +++ b/react/features/base/toolbox/components/ToolboxItem.web.tsx @@ -4,8 +4,10 @@ import Icon from '../../icons/components/Icon'; import Tooltip from '../../tooltip/components/Tooltip'; import ContextMenuItem from '../../ui/components/web/ContextMenuItem'; -import AbstractToolboxItem from './AbstractToolboxItem'; -import type { IProps as AbstractToolboxItemProps } from './AbstractToolboxItem'; +import { + default as AbstractToolboxItem, + type IProps as AbstractToolboxItemProps +} from './AbstractToolboxItem'; interface IProps extends AbstractToolboxItemProps { diff --git a/react/features/base/ui/components/web/Input.tsx b/react/features/base/ui/components/web/Input.tsx index b0cefbbde9..d4af9f7060 100644 --- a/react/features/base/ui/components/web/Input.tsx +++ b/react/features/base/ui/components/web/Input.tsx @@ -7,6 +7,7 @@ import Icon from '../../../icons/components/Icon'; import { IconCloseCircle } from '../../../icons/svg'; import { withPixelLineHeight } from '../../../styles/functions.web'; import { IInputProps } from '../types'; + import { HiddenDescription } from './HiddenDescription'; interface IProps extends IInputProps { diff --git a/react/features/chat/components/native/ChatInputBar.tsx b/react/features/chat/components/native/ChatInputBar.tsx index 4f3034b42a..dc806956fa 100644 --- a/react/features/chat/components/native/ChatInputBar.tsx +++ b/react/features/chat/components/native/ChatInputBar.tsx @@ -10,9 +10,9 @@ import { ASPECT_RATIO_WIDE } from '../../../base/responsive-ui/constants'; import IconButton from '../../../base/ui/components/native/IconButton'; import Input from '../../../base/ui/components/native/Input'; import { BUTTON_TYPES } from '../../../base/ui/constants.native'; +import { isSendGroupChatDisabled } from '../../functions'; import styles from './styles'; -import { isSendGroupChatDisabled } from '../../functions'; interface IProps extends WithTranslation { diff --git a/react/features/chat/components/web/Chat.tsx b/react/features/chat/components/web/Chat.tsx index 9f5616380a..e50371d0b3 100644 --- a/react/features/chat/components/web/Chat.tsx +++ b/react/features/chat/components/web/Chat.tsx @@ -1,10 +1,11 @@ +import { throttle } from 'lodash-es'; import React, { useCallback, useEffect, useState } from 'react'; import { connect, useSelector } from 'react-redux'; import { makeStyles } from 'tss-react/mui'; -import { throttle } from 'lodash-es'; import { IReduxState } from '../../../app/types'; import { translate } from '../../../base/i18n/functions'; +import { IconInfo, IconMessage, IconShareDoc, IconSubtitles } from '../../../base/icons/svg'; import { getLocalParticipant } from '../../../base/participants/functions'; import Tabs from '../../../base/ui/components/web/Tabs'; import { arePollsDisabled } from '../../../conference/functions.any'; @@ -12,10 +13,10 @@ import FileSharing from '../../../file-sharing/components/web/FileSharing'; import { isFileSharingEnabled } from '../../../file-sharing/functions.any'; import PollsPane from '../../../polls/components/web/PollsPane'; import { isCCTabEnabled } from '../../../subtitles/functions.any'; -import { setChatIsResizing, setUserChatWidth, sendMessage, setFocusedTab, toggleChat } from '../../actions.web'; +import { sendMessage, setChatIsResizing, setFocusedTab, setUserChatWidth, toggleChat } from '../../actions.web'; import { CHAT_SIZE, ChatTabs, SMALL_WIDTH_THRESHOLD } from '../../constants'; +import { getChatMaxSize } from '../../functions'; import { IChatProps as AbstractProps } from '../../types'; -import { IconMessage, IconInfo, IconSubtitles, IconShareDoc } from '../../../base/icons/svg'; import ChatHeader from './ChatHeader'; import ChatInput from './ChatInput'; @@ -24,7 +25,7 @@ import DisplayNameForm from './DisplayNameForm'; import KeyboardAvoider from './KeyboardAvoider'; import MessageContainer from './MessageContainer'; import MessageRecipient from './MessageRecipient'; -import { getChatMaxSize } from '../../functions'; + interface IProps extends AbstractProps { diff --git a/react/features/chat/components/web/ChatHeader.tsx b/react/features/chat/components/web/ChatHeader.tsx index 9a17d19d4a..0019c06f99 100644 --- a/react/features/chat/components/web/ChatHeader.tsx +++ b/react/features/chat/components/web/ChatHeader.tsx @@ -2,12 +2,12 @@ import React, { useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; +import { IReduxState } from '../../../app/types'; import Icon from '../../../base/icons/components/Icon'; import { IconCloseLarge } from '../../../base/icons/svg'; -import { toggleChat } from '../../actions.web'; -import { IReduxState } from '../../../app/types'; -import { ChatTabs } from '../../constants'; import { isFileSharingEnabled } from '../../../file-sharing/functions.any'; +import { toggleChat } from '../../actions.web'; +import { ChatTabs } from '../../constants'; interface IProps { diff --git a/react/features/chat/components/web/ChatInput.tsx b/react/features/chat/components/web/ChatInput.tsx index 6ebc23061b..26958c163d 100644 --- a/react/features/chat/components/web/ChatInput.tsx +++ b/react/features/chat/components/web/ChatInput.tsx @@ -10,10 +10,10 @@ import { translate } from '../../../base/i18n/functions'; import { IconFaceSmile, IconSend } from '../../../base/icons/svg'; import Button from '../../../base/ui/components/web/Button'; import Input from '../../../base/ui/components/web/Input'; +import { CHAT_SIZE } from '../../constants'; import { areSmileysDisabled, isSendGroupChatDisabled } from '../../functions'; import SmileysPanel from './SmileysPanel'; -import { CHAT_SIZE } from '../../constants'; const styles = (_theme: Theme, { _chatWidth }: IProps) => { diff --git a/react/features/chat/components/web/ClosedCaptionsTab.tsx b/react/features/chat/components/web/ClosedCaptionsTab.tsx index de73cb401c..a49fce33b1 100644 --- a/react/features/chat/components/web/ClosedCaptionsTab.tsx +++ b/react/features/chat/components/web/ClosedCaptionsTab.tsx @@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector } from 'react-redux'; import { makeStyles } from 'tss-react/mui'; +import { IReduxState } from '../../../app/types'; import Icon from '../../../base/icons/components/Icon'; import { IconSubtitles } from '../../../base/icons/svg'; import { withPixelLineHeight } from '../../../base/styles/functions.web'; @@ -15,7 +16,6 @@ import { ISubtitle } from '../../../subtitles/types'; import { isTranscribing } from '../../../transcribing/functions'; import { SubtitlesMessagesContainer } from './SubtitlesMessagesContainer'; -import { IReduxState } from '../../../app/types'; /** * The styles for the ClosedCaptionsTab component. diff --git a/react/features/chat/functions.ts b/react/features/chat/functions.ts index fc52a54310..1d518b3fcf 100644 --- a/react/features/chat/functions.ts +++ b/react/features/chat/functions.ts @@ -11,11 +11,11 @@ import { MEET_FEATURES } from '../base/jwt/constants'; import { isJwtFeatureEnabled } from '../base/jwt/functions'; import { getParticipantById } from '../base/participants/functions'; import { escapeRegexp } from '../base/util/helpers'; +import { getParticipantsPaneWidth } from '../participants-pane/functions'; +import { VIDEO_SPACE_MIN_SIZE } from '../video-layout/constants'; import { MESSAGE_TYPE_ERROR, MESSAGE_TYPE_LOCAL, TIMESTAMP_FORMAT } from './constants'; import { IMessage } from './types'; -import { getParticipantsPaneWidth } from '../participants-pane/functions'; -import { VIDEO_SPACE_MIN_SIZE } from '../video-layout/constants'; /** * An ASCII emoticon regexp array to find and replace old-style ASCII diff --git a/react/features/chat/reducer.ts b/react/features/chat/reducer.ts index a0753957d9..79eab4ea2d 100644 --- a/react/features/chat/reducer.ts +++ b/react/features/chat/reducer.ts @@ -1,6 +1,6 @@ +import { UPDATE_CONFERENCE_METADATA } from '../base/conference/actionTypes'; import { ILocalParticipant, IParticipant } from '../base/participants/types'; import ReducerRegistry from '../base/redux/ReducerRegistry'; -import { ChatTabs } from './constants'; import { ADD_MESSAGE, @@ -18,9 +18,8 @@ import { SET_PRIVATE_MESSAGE_RECIPIENT, SET_USER_CHAT_WIDTH } from './actionTypes'; -import { CHAT_SIZE } from './constants'; +import { CHAT_SIZE, ChatTabs } from './constants'; import { IMessage } from './types'; -import { UPDATE_CONFERENCE_METADATA } from '../base/conference/actionTypes'; const DEFAULT_STATE = { groupChatWithPermissions: false, diff --git a/react/features/chat/subscriber.web.ts b/react/features/chat/subscriber.web.ts index 4de805b6cf..817646a24b 100644 --- a/react/features/chat/subscriber.web.ts +++ b/react/features/chat/subscriber.web.ts @@ -2,6 +2,7 @@ import VideoLayout from '../../../modules/UI/videolayout/VideoLayout'; import StateListenerRegistry from '../base/redux/StateListenerRegistry'; import { clientResized } from '../base/responsive-ui/actions'; + import { setChatWidth } from './actions.web'; import { CHAT_SIZE } from './constants'; import { getChatMaxSize } from './functions'; diff --git a/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.tsx b/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.tsx index 2f05980941..0f8eb5b477 100644 --- a/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.tsx +++ b/react/features/chrome-extension-banner/components/ChromeExtensionBanner.web.tsx @@ -17,9 +17,9 @@ import { translate } from '../../base/i18n/functions'; import Icon from '../../base/icons/components/Icon'; import { IconCloseLarge } from '../../base/icons/svg'; import { browser } from '../../base/lib-jitsi-meet'; +import { isNarrowScreenWithChatOpen } from '../../base/responsive-ui/functions'; import { isVpaasMeeting } from '../../jaas/functions'; import logger from '../logger'; -import { isNarrowScreenWithChatOpen } from '../../base/responsive-ui/functions'; const emptyObject = {}; diff --git a/react/features/conference/components/native/Conference.tsx b/react/features/conference/components/native/Conference.tsx index 5c131238ec..7e649c8075 100644 --- a/react/features/conference/components/native/Conference.tsx +++ b/react/features/conference/components/native/Conference.tsx @@ -46,9 +46,9 @@ import Toolbox from '../../../toolbox/components/native/Toolbox'; import { isToolboxVisible } from '../../../toolbox/functions.native'; import { AbstractConference, + type AbstractProps, abstractMapStateToProps } from '../AbstractConference'; -import type { AbstractProps } from '../AbstractConference'; import { isConnecting } from '../functions.native'; import AlwaysOnLabels from './AlwaysOnLabels'; diff --git a/react/features/conference/components/web/Conference.tsx b/react/features/conference/components/web/Conference.tsx index 45ea33d82c..06f5627c04 100644 --- a/react/features/conference/components/web/Conference.tsx +++ b/react/features/conference/components/web/Conference.tsx @@ -39,9 +39,9 @@ import { init } from '../../actions.web'; import { maybeShowSuboptimalExperienceNotification } from '../../functions.web'; import { AbstractConference, + type AbstractProps, abstractMapStateToProps } from '../AbstractConference'; -import type { AbstractProps } from '../AbstractConference'; import ConferenceInfo from './ConferenceInfo'; import { default as Notice } from './Notice'; diff --git a/react/features/dynamic-branding/middleware.any.ts b/react/features/dynamic-branding/middleware.any.ts index 716aa858fe..02e14caa33 100644 --- a/react/features/dynamic-branding/middleware.any.ts +++ b/react/features/dynamic-branding/middleware.any.ts @@ -1,14 +1,14 @@ +import { IStateful } from '../base/app/types'; +import { getCurrentConference } from '../base/conference/functions'; +import { PARTICIPANT_ROLE_CHANGED } from '../base/participants/actionTypes'; +import { PARTICIPANT_ROLE } from '../base/participants/constants'; +import { getLocalParticipant, isLocalParticipantModerator } from '../base/participants/functions'; import MiddlewareRegistry from '../base/redux/MiddlewareRegistry'; +import { toState } from '../base/redux/functions'; import { SET_DYNAMIC_BRANDING_DATA, SET_DYNAMIC_BRANDING_READY } from './actionTypes'; import { fetchCustomIcons } from './functions.any'; import logger from './logger'; -import { getCurrentConference } from '../base/conference/functions'; -import { getLocalParticipant, isLocalParticipantModerator } from '../base/participants/functions'; -import { PARTICIPANT_ROLE_CHANGED } from '../base/participants/actionTypes'; -import { PARTICIPANT_ROLE } from '../base/participants/constants'; -import { IStateful } from '../base/app/types'; -import { toState } from '../base/redux/functions'; MiddlewareRegistry.register(store => next => action => { switch (action.type) { diff --git a/react/features/file-sharing/actions.ts b/react/features/file-sharing/actions.ts index eb6512687c..becffbc5bb 100644 --- a/react/features/file-sharing/actions.ts +++ b/react/features/file-sharing/actions.ts @@ -1,9 +1,9 @@ import { ADD_FILE, + DOWNLOAD_FILE, REMOVE_FILE, UPDATE_FILE_UPLOAD_PROGRESS, - UPLOAD_FILES, - DOWNLOAD_FILE + UPLOAD_FILES } from './actionTypes'; import { IFileMetadata } from './types'; diff --git a/react/features/file-sharing/components/web/FileSharing.tsx b/react/features/file-sharing/components/web/FileSharing.tsx index f9b633fa62..de4037a2f5 100644 --- a/react/features/file-sharing/components/web/FileSharing.tsx +++ b/react/features/file-sharing/components/web/FileSharing.tsx @@ -1,22 +1,22 @@ -import React, { useCallback, useState, useRef } from 'react'; +import React, { useCallback, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useDispatch, useSelector, useStore } from 'react-redux'; import { makeStyles } from 'tss-react/mui'; import { IReduxState } from '../../../app/types'; import Avatar from '../../../base/avatar/components/Avatar'; -import { IconCloudUpload, IconDownload, IconTrash } from '../../../base/icons/svg'; -import Button from '../../../base/ui/components/web/Button'; -import { BUTTON_TYPES } from '../../../base/ui/constants.web'; import Icon from '../../../base/icons/components/Icon'; +import { IconCloudUpload, IconDownload, IconTrash } from '../../../base/icons/svg'; import { withPixelLineHeight } from '../../../base/styles/functions.web'; import BaseTheme from '../../../base/ui/components/BaseTheme.web'; +import Button from '../../../base/ui/components/web/Button'; +import { BUTTON_TYPES } from '../../../base/ui/constants.web'; import { downloadFile, removeFile } from '../../actions'; import { - isFileUploadingEnabled, formatFileSize, formatTimestamp, getFileIcon, + isFileUploadingEnabled, processFiles } from '../../functions.any'; diff --git a/react/features/file-sharing/functions.any.ts b/react/features/file-sharing/functions.any.ts index d005e36e62..acf4db5205 100644 --- a/react/features/file-sharing/functions.any.ts +++ b/react/features/file-sharing/functions.any.ts @@ -1,13 +1,13 @@ import { IReduxState, IStore } from '../app/types'; +import { getLocalizedDateFormatter } from '../base/i18n/dateUtil'; import { IconImage, IconShareDoc, IconVideo, IconVolumeUp } from '../base/icons/svg'; -import { getLocalizedDateFormatter } from '../base/i18n/dateUtil'; -import { isJwtFeatureEnabled } from '../base/jwt/functions'; import { MEET_FEATURES } from '../base/jwt/constants'; +import { isJwtFeatureEnabled } from '../base/jwt/functions'; import { showErrorNotification } from '../notifications/actions'; import { NOTIFICATION_TIMEOUT_TYPE, NOTIFICATION_TYPE } from '../notifications/constants'; diff --git a/react/features/file-sharing/middleware.web.ts b/react/features/file-sharing/middleware.web.ts index e0a0bb6813..f5ab79d063 100644 --- a/react/features/file-sharing/middleware.web.ts +++ b/react/features/file-sharing/middleware.web.ts @@ -1,5 +1,6 @@ import { v4 as uuidv4 } from 'uuid'; +import { IStore } from '../app/types'; import { getCurrentConference } from '../base/conference/functions'; import { getLocalParticipant, getParticipantDisplayName } from '../base/participants/functions'; import MiddlewareRegistry from '../base/redux/MiddlewareRegistry'; @@ -8,11 +9,10 @@ import { NOTIFICATION_TIMEOUT_TYPE, NOTIFICATION_TYPE } from '../notifications/c import { DOWNLOAD_FILE, REMOVE_FILE, UPLOAD_FILES } from './actionTypes'; import { addFile, removeFile, updateFileProgress } from './actions'; +import { FILE_SHARING_PREFIX, FILE_SHARING_SERVICE } from './constants'; import { getFileExtension } from './functions.any'; import logger from './logger'; -import { FILE_SHARING_PREFIX, FILE_SHARING_SERVICE } from './constants'; import { IFileMetadata } from './types'; -import { IStore } from '../app/types'; /** * Middleware that handles file sharing actions. diff --git a/react/features/file-sharing/reducer.ts b/react/features/file-sharing/reducer.ts index 4f758f153f..f12f22623d 100644 --- a/react/features/file-sharing/reducer.ts +++ b/react/features/file-sharing/reducer.ts @@ -2,6 +2,7 @@ import { isEqual } from 'lodash-es'; import { UPDATE_CONFERENCE_METADATA } from '../base/conference/actionTypes'; import ReducerRegistry from '../base/redux/ReducerRegistry'; + import { ADD_FILE, REMOVE_FILE, diff --git a/react/features/filmstrip/components/web/Filmstrip.tsx b/react/features/filmstrip/components/web/Filmstrip.tsx index 0c2b4a30f1..ae57b034c7 100644 --- a/react/features/filmstrip/components/web/Filmstrip.tsx +++ b/react/features/filmstrip/components/web/Filmstrip.tsx @@ -1,3 +1,4 @@ +import { Theme } from '@mui/material'; import clsx from 'clsx'; import { throttle } from 'lodash-es'; import React, { PureComponent } from 'react'; @@ -13,6 +14,7 @@ import { isMobileBrowser } from '../../../base/environment/utils'; import { translate } from '../../../base/i18n/functions'; import Icon from '../../../base/icons/components/Icon'; import { IconArrowDown, IconArrowUp } from '../../../base/icons/svg'; +import { isNarrowScreenWithChatOpen } from '../../../base/responsive-ui/functions'; import { getHideSelfView } from '../../../base/settings/functions.any'; import { registerShortcut, unregisterShortcut } from '../../../keyboard-shortcuts/actions'; import { showToolbox } from '../../../toolbox/actions.web'; @@ -47,8 +49,6 @@ import { import AudioTracksContainer from './AudioTracksContainer'; import Thumbnail from './Thumbnail'; import ThumbnailWrapper from './ThumbnailWrapper'; -import { Theme } from '@mui/material'; -import { isNarrowScreenWithChatOpen } from '../../../base/responsive-ui/functions'; const BACKGROUND_COLOR = 'rgba(51, 51, 51, .5)'; diff --git a/react/features/participants-pane/components/web/ParticipantsPane.tsx b/react/features/participants-pane/components/web/ParticipantsPane.tsx index 0b31a4a6b7..053b5d6151 100644 --- a/react/features/participants-pane/components/web/ParticipantsPane.tsx +++ b/react/features/participants-pane/components/web/ParticipantsPane.tsx @@ -6,6 +6,7 @@ import { makeStyles } from 'tss-react/mui'; import { IReduxState } from '../../../app/types'; import participantsPaneTheme from '../../../base/components/themes/participantsPaneTheme.json'; import { openDialog } from '../../../base/dialog/actions'; +import { isMobileBrowser } from '../../../base/environment/utils'; import { IconCloseLarge, IconDotsHorizontal } from '../../../base/icons/svg'; import { isLocalParticipantModerator } from '../../../base/participants/functions'; import Button from '../../../base/ui/components/web/Button'; @@ -27,7 +28,6 @@ import { FooterContextMenu } from './FooterContextMenu'; import LobbyParticipants from './LobbyParticipants'; import MeetingParticipants from './MeetingParticipants'; import VisitorsList from './VisitorsList'; -import { isMobileBrowser } from '../../../base/environment/utils'; /** * Interface representing the properties used for styles. diff --git a/react/features/polls/components/native/PollResults.tsx b/react/features/polls/components/native/PollResults.tsx index 18358fe139..2ba53e7d63 100644 --- a/react/features/polls/components/native/PollResults.tsx +++ b/react/features/polls/components/native/PollResults.tsx @@ -3,8 +3,11 @@ import { FlatList, Text, TextStyle, View, ViewStyle } from 'react-native'; import Button from '../../../base/ui/components/native/Button'; import { BUTTON_TYPES } from '../../../base/ui/constants.native'; -import AbstractPollResults from '../AbstractPollResults'; -import type { AbstractProps, AnswerInfo } from '../AbstractPollResults'; +import { + default as AbstractPollResults, + type AbstractProps, + type AnswerInfo +} from '../AbstractPollResults'; import { dialogStyles, pollsStyles, resultsStyles } from './styles'; diff --git a/react/features/polls/components/native/PollsPane.tsx b/react/features/polls/components/native/PollsPane.tsx index 820bba958d..4d44ee5699 100644 --- a/react/features/polls/components/native/PollsPane.tsx +++ b/react/features/polls/components/native/PollsPane.tsx @@ -1,5 +1,3 @@ -/* eslint-disable react-native/no-color-literals */ - import { useNavigation } from '@react-navigation/native'; import React, { useEffect } from 'react'; import { Platform } from 'react-native'; @@ -13,8 +11,10 @@ import { BUTTON_TYPES } from '../../../base/ui/constants.native'; import { ChatTabs } from '../../../chat/constants'; import { TabBarLabelCounter } from '../../../mobile/navigation/components/TabBarLabelCounter'; -import AbstractPollsPane from '../AbstractPollsPane'; -import type { AbstractProps } from '../AbstractPollsPane'; +import { + default as AbstractPollsPane, + type AbstractProps +} from '../AbstractPollsPane'; import PollCreate from './PollCreate'; import PollsList from './PollsList'; diff --git a/react/features/recording/components/LiveStream/AbstractStreamKeyForm.ts b/react/features/recording/components/LiveStream/AbstractStreamKeyForm.ts index 81f8c94a21..f0214d5f1a 100644 --- a/react/features/recording/components/LiveStream/AbstractStreamKeyForm.ts +++ b/react/features/recording/components/LiveStream/AbstractStreamKeyForm.ts @@ -1,5 +1,4 @@ -import { debounce } from 'lodash-es'; -import type { DebouncedFunc } from 'lodash-es'; +import { type DebouncedFunc, debounce } from 'lodash-es'; import { Component } from 'react'; import { WithTranslation } from 'react-i18next'; diff --git a/react/features/recording/components/Recording/LocalRecordingManager.web.ts b/react/features/recording/components/Recording/LocalRecordingManager.web.ts index 6dcd01a8f4..c6f21693a5 100644 --- a/react/features/recording/components/Recording/LocalRecordingManager.web.ts +++ b/react/features/recording/components/Recording/LocalRecordingManager.web.ts @@ -4,10 +4,10 @@ import { v4 as uuidV4 } from 'uuid'; import { IStore } from '../../../app/types'; import { getRoomName } from '../../../base/conference/functions'; -import { MEDIA_TYPE } from '../../../base/media/constants'; -import { getLocalTrack, getTrackState } from '../../../base/tracks/functions'; import { isMobileBrowser } from '../../../base/environment/utils'; import { browser } from '../../../base/lib-jitsi-meet'; +import { MEDIA_TYPE } from '../../../base/media/constants'; +import { getLocalTrack, getTrackState } from '../../../base/tracks/functions'; import { isEmbedded } from '../../../base/util/embedUtils'; import { stopLocalVideoRecording } from '../../actions.any'; import logger from '../../logger'; diff --git a/react/features/recording/components/Recording/native/RecordingConsentDialog.tsx b/react/features/recording/components/Recording/native/RecordingConsentDialog.tsx index 0beb0fef4f..672154d117 100644 --- a/react/features/recording/components/Recording/native/RecordingConsentDialog.tsx +++ b/react/features/recording/components/Recording/native/RecordingConsentDialog.tsx @@ -1,12 +1,12 @@ import React, { useCallback } from 'react'; -import { useDispatch, useSelector } from 'react-redux'; import { useTranslation } from 'react-i18next'; import Dialog from 'react-native-dialog'; +import { useDispatch, useSelector } from 'react-redux'; -import ConfirmDialog from '../../../../base/dialog/components/native/ConfirmDialog'; -import Link from '../../../../base/react/components/native/Link'; -import { setAudioMuted, setAudioUnmutePermissions, setVideoMuted, setVideoUnmutePermissions } from '../../../../base/media/actions'; import { IReduxState } from '../../../../app/types'; +import ConfirmDialog from '../../../../base/dialog/components/native/ConfirmDialog'; +import { setAudioMuted, setAudioUnmutePermissions, setVideoMuted, setVideoUnmutePermissions } from '../../../../base/media/actions'; +import Link from '../../../../base/react/components/native/Link'; import styles from '../styles.native'; /** diff --git a/react/features/recording/components/Recording/web/RecordingConsentDialog.tsx b/react/features/recording/components/Recording/web/RecordingConsentDialog.tsx index 76a78f5a96..8044a9a946 100644 --- a/react/features/recording/components/Recording/web/RecordingConsentDialog.tsx +++ b/react/features/recording/components/Recording/web/RecordingConsentDialog.tsx @@ -3,6 +3,7 @@ import { useTranslation } from 'react-i18next'; import { batch, useDispatch, useSelector } from 'react-redux'; import { IReduxState } from '../../../../app/types'; +import { hideDialog } from '../../../../base/dialog/actions'; import { translateToHTML } from '../../../../base/i18n/functions'; import { setAudioMuted, @@ -11,7 +12,6 @@ import { setVideoUnmutePermissions } from '../../../../base/media/actions'; import Dialog from '../../../../base/ui/components/web/Dialog'; -import { hideDialog } from '../../../../base/dialog/actions'; /** * Component that renders the dialog for explicit consent for recordings. diff --git a/react/features/recording/middleware.ts b/react/features/recording/middleware.ts index 7bdb2e4fc2..0a0d5f92ac 100644 --- a/react/features/recording/middleware.ts +++ b/react/features/recording/middleware.ts @@ -36,8 +36,8 @@ import { isRecorderTranscriptionsRunning } from '../transcribing/functions'; import { RECORDING_SESSION_UPDATED, START_LOCAL_RECORDING, STOP_LOCAL_RECORDING } from './actionTypes'; import { clearRecordingSessions, - markConsentRequested, hidePendingRecordingNotification, + markConsentRequested, showPendingRecordingNotification, showRecordingError, showRecordingLimitNotification, diff --git a/react/features/security/components/security-dialog/web/SecurityDialog.tsx b/react/features/security/components/security-dialog/web/SecurityDialog.tsx index d3892bb449..a7a6669910 100644 --- a/react/features/security/components/security-dialog/web/SecurityDialog.tsx +++ b/react/features/security/components/security-dialog/web/SecurityDialog.tsx @@ -5,12 +5,12 @@ import { IReduxState } from '../../../../app/types'; import { getSecurityUiConfig } from '../../../../base/config/functions.any'; import { isLocalParticipantModerator } from '../../../../base/participants/functions'; import Dialog from '../../../../base/ui/components/web/Dialog'; +import { isInBreakoutRoom } from '../../../../breakout-rooms/functions'; import E2EESection from '../../../../e2ee/components/E2EESection'; import LobbySection from '../../../../lobby/components/web/LobbySection'; import { isEnablingLobbyAllowed } from '../../../../lobby/functions'; import PasswordSection from './PasswordSection'; -import { isInBreakoutRoom } from '../../../../breakout-rooms/functions'; export interface INotifyClick { key: string; diff --git a/react/features/speaker-stats/components/web/SpeakerStatsSearch.tsx b/react/features/speaker-stats/components/web/SpeakerStatsSearch.tsx index 3192c63804..fa43b7baca 100644 --- a/react/features/speaker-stats/components/web/SpeakerStatsSearch.tsx +++ b/react/features/speaker-stats/components/web/SpeakerStatsSearch.tsx @@ -7,9 +7,9 @@ import Icon from '../../../base/icons/components/Icon'; import { IconSearch } from '../../../base/icons/svg'; import { getFieldValue } from '../../../base/react/functions'; import { withPixelLineHeight } from '../../../base/styles/functions.web'; +import { HiddenDescription } from '../../../base/ui/components/web/HiddenDescription'; import { MOBILE_BREAKPOINT } from '../../constants'; import { isSpeakerStatsSearchDisabled } from '../../functions'; -import { HiddenDescription } from '../../../base/ui/components/web/HiddenDescription'; const useStyles = makeStyles()(theme => { return { diff --git a/react/features/subtitles/actions.any.ts b/react/features/subtitles/actions.any.ts index fc610e2e5a..c145a3b5db 100644 --- a/react/features/subtitles/actions.any.ts +++ b/react/features/subtitles/actions.any.ts @@ -4,10 +4,10 @@ import { REMOVE_CACHED_TRANSCRIPT_MESSAGE, REMOVE_TRANSCRIPT_MESSAGE, SET_REQUESTING_SUBTITLES, + SET_SUBTITLES_ERROR, STORE_SUBTITLE, TOGGLE_REQUESTING_SUBTITLES, - UPDATE_TRANSCRIPT_MESSAGE, - SET_SUBTITLES_ERROR + UPDATE_TRANSCRIPT_MESSAGE } from './actionTypes'; import { ISubtitle } from './types'; diff --git a/react/features/subtitles/components/web/ClosedCaptionButton.tsx b/react/features/subtitles/components/web/ClosedCaptionButton.tsx index 2a612b6b34..b2e8aa292a 100644 --- a/react/features/subtitles/components/web/ClosedCaptionButton.tsx +++ b/react/features/subtitles/components/web/ClosedCaptionButton.tsx @@ -1,5 +1,6 @@ import { connect } from 'react-redux'; +import { IReduxState } from '../../../app/types'; import { translate } from '../../../base/i18n/functions'; import { IconSubtitles } from '../../../base/icons/svg'; import { openCCPanel } from '../../../chat/actions.any'; @@ -10,7 +11,6 @@ import { IAbstractProps, _abstractMapStateToProps } from '../AbstractClosedCaptionButton'; -import { IReduxState } from '../../../app/types'; /** * A button which starts/stops the transcriptions. diff --git a/react/features/subtitles/middleware.ts b/react/features/subtitles/middleware.ts index f571913904..6ca01407ca 100644 --- a/react/features/subtitles/middleware.ts +++ b/react/features/subtitles/middleware.ts @@ -6,6 +6,7 @@ import { MEET_FEATURES } from '../base/jwt/constants'; import { isJwtFeatureEnabled } from '../base/jwt/functions'; import JitsiMeetJS from '../base/lib-jitsi-meet'; import MiddlewareRegistry from '../base/redux/MiddlewareRegistry'; +import { showErrorNotification } from '../notifications/actions'; import { TRANSCRIBER_JOINED } from '../transcribing/actionTypes'; import { @@ -24,7 +25,6 @@ import { notifyTranscriptionChunkReceived } from './functions'; import { areClosedCaptionsEnabled, isCCTabEnabled } from './functions.any'; import logger from './logger'; import { ISubtitle, ITranscriptMessage } from './types'; -import { showErrorNotification } from '../notifications/actions'; /** * The type of json-message which indicates that json carries a diff --git a/react/features/subtitles/reducer.ts b/react/features/subtitles/reducer.ts index ea2538d2ca..1934fe5068 100644 --- a/react/features/subtitles/reducer.ts +++ b/react/features/subtitles/reducer.ts @@ -5,10 +5,10 @@ import { REMOVE_CACHED_TRANSCRIPT_MESSAGE, REMOVE_TRANSCRIPT_MESSAGE, SET_REQUESTING_SUBTITLES, + SET_SUBTITLES_ERROR, STORE_SUBTITLE, TOGGLE_REQUESTING_SUBTITLES, - UPDATE_TRANSCRIPT_MESSAGE, - SET_SUBTITLES_ERROR + UPDATE_TRANSCRIPT_MESSAGE } from './actionTypes'; import { ISubtitle, ITranscriptMessage } from './types'; diff --git a/react/features/transcribing/reducer.ts b/react/features/transcribing/reducer.ts index 1d65a268ab..28918cfd38 100644 --- a/react/features/transcribing/reducer.ts +++ b/react/features/transcribing/reducer.ts @@ -1,10 +1,10 @@ +import { CONFERENCE_PROPERTIES_CHANGED } from '../base/conference/actionTypes'; import ReducerRegistry from '../base/redux/ReducerRegistry'; import { TRANSCRIBER_JOINED, TRANSCRIBER_LEFT } from './actionTypes'; -import { CONFERENCE_PROPERTIES_CHANGED } from '../base/conference/actionTypes'; /** * Returns initial state for transcribing feature part of Redux store. diff --git a/react/features/video-quality/components/VideoQualityLabel.web.tsx b/react/features/video-quality/components/VideoQualityLabel.web.tsx index c6bb8f6b4d..86141caf89 100644 --- a/react/features/video-quality/components/VideoQualityLabel.web.tsx +++ b/react/features/video-quality/components/VideoQualityLabel.web.tsx @@ -8,9 +8,9 @@ import { IconPerformance } from '../../base/icons/svg'; import Label from '../../base/label/components/web/Label'; import { COLORS } from '../../base/label/constants'; import Tooltip from '../../base/tooltip/components/Tooltip'; +import { shouldDisplayVideoQualityLabel } from '../selector'; import VideoQualityDialog from './VideoQualityDialog.web'; -import { shouldDisplayVideoQualityLabel } from '../selector'; /** * React {@code Component} responsible for displaying a label that indicates diff --git a/tests/specs/2way/iFrameApiChat.spec.ts b/tests/specs/2way/iFrameApiChat.spec.ts index 7b3fb3c905..8b103d030b 100644 --- a/tests/specs/2way/iFrameApiChat.spec.ts +++ b/tests/specs/2way/iFrameApiChat.spec.ts @@ -1,8 +1,10 @@ -import { ensureTwoParticipants } from '../../helpers/participants'; -import type { Participant } from '../../helpers/Participant'; -import { fetchJson } from '../../helpers/utils'; import { expect } from '@wdio/globals'; +import type { Participant } from '../../helpers/Participant'; +import { ensureTwoParticipants } from '../../helpers/participants'; +import { fetchJson } from '../../helpers/utils'; + + describe('Chat', () => { it('joining the meeting', async () => { await ensureTwoParticipants(ctx); diff --git a/tests/specs/2way/iFrameApiTranscriptions.spec.ts b/tests/specs/2way/iFrameApiTranscriptions.spec.ts index f43911f227..1f64105219 100644 --- a/tests/specs/2way/iFrameApiTranscriptions.spec.ts +++ b/tests/specs/2way/iFrameApiTranscriptions.spec.ts @@ -1,7 +1,8 @@ -import { ensureOneParticipant, ensureTwoParticipants } from '../../helpers/participants'; import { expect } from '@wdio/globals'; + import type { Participant } from '../../helpers/Participant'; import type WebhookProxy from '../../helpers/WebhookProxy'; +import { ensureOneParticipant, ensureTwoParticipants } from '../../helpers/participants'; describe('Transcriptions', () => { it('joining the meeting', async () => { diff --git a/tests/specs/2way/iFrameApiVisitorsLive.spec.ts b/tests/specs/2way/iFrameApiVisitorsLive.spec.ts index 6a62a49c7d..4185a7c550 100644 --- a/tests/specs/2way/iFrameApiVisitorsLive.spec.ts +++ b/tests/specs/2way/iFrameApiVisitorsLive.spec.ts @@ -1,6 +1,7 @@ -import { ensureOneParticipant, ensureTwoParticipants } from '../../helpers/participants'; import { expect } from '@wdio/globals'; +import { ensureOneParticipant, ensureTwoParticipants } from '../../helpers/participants'; + describe('Visitors', () => { it('joining the meeting', async () => { const { webhooksProxy } = ctx; diff --git a/tests/specs/alone/iFrameApiInvite.spec.ts b/tests/specs/alone/iFrameApiInvite.spec.ts index 981014f4da..a04215cbe1 100644 --- a/tests/specs/alone/iFrameApiInvite.spec.ts +++ b/tests/specs/alone/iFrameApiInvite.spec.ts @@ -1,3 +1,4 @@ +import type { Participant } from '../../helpers/Participant'; import { ensureOneParticipant } from '../../helpers/participants'; import { cleanup, @@ -6,7 +7,6 @@ import { retrievePin, waitForAudioFromDialInParticipant } from '../helpers/DialIn'; -import type { Participant } from '../../helpers/Participant'; describe('Invite iframeAPI', () => { it('join participant', async () => { diff --git a/tests/specs/helpers/DialIn.ts b/tests/specs/helpers/DialIn.ts index ff736ed6f0..822a7c89fe 100644 --- a/tests/specs/helpers/DialIn.ts +++ b/tests/specs/helpers/DialIn.ts @@ -1,6 +1,7 @@ -import type { Participant } from '../../helpers/Participant'; -import process from 'node:process'; import https from 'node:https'; +import process from 'node:process'; + +import type { Participant } from '../../helpers/Participant'; /** * Helper functions for dial-in related operations.