From 9f5e69a35a62421a0184fe216d66689d121ced73 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Wed, 15 Jul 2026 12:30:39 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=9A(frontend)=20move=20participant=20t?= =?UTF-8?q?ile=20components=20into=20a=20feature=20folder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reorganize all components related to the participant tile into a dedicated feature folder, so the code organization is clearer and related components are grouped together. --- src/frontend/src/features/layout/components/FocusLayout.tsx | 2 +- src/frontend/src/features/layout/components/StageLayout.tsx | 2 +- .../src/features/notifications/components/ToastJoined.tsx | 2 +- .../components/FullScreenShareWarning.tsx | 2 +- .../components/KeyboardShortcutHint.tsx | 0 .../components/MutedMicIndicator.tsx | 0 .../components/ParticipantName.tsx | 0 .../components/ParticipantPlaceholder.tsx | 0 .../components/ParticipantTile.tsx | 5 ++++- .../components/ParticipantTileFocus.tsx | 6 +++--- .../src/features/pip/components/layout/PipFocusLayout.tsx | 2 +- .../src/features/pip/components/layout/PipGridLayout.tsx | 2 +- .../features/pip/components/layout/PipScreenShareLayout.tsx | 2 +- .../features/settings/components/SettingsDialogProvider.tsx | 4 +--- 14 files changed, 15 insertions(+), 14 deletions(-) rename src/frontend/src/features/{rooms/livekit => participantTile}/components/FullScreenShareWarning.tsx (98%) rename src/frontend/src/features/{rooms/livekit => participantTile}/components/KeyboardShortcutHint.tsx (100%) rename src/frontend/src/features/{rooms/livekit => participantTile}/components/MutedMicIndicator.tsx (100%) rename src/frontend/src/features/{rooms/livekit => participantTile}/components/ParticipantName.tsx (100%) rename src/frontend/src/features/{rooms/livekit => participantTile}/components/ParticipantPlaceholder.tsx (100%) rename src/frontend/src/features/{rooms/livekit => participantTile}/components/ParticipantTile.tsx (98%) rename src/frontend/src/features/{rooms/livekit => participantTile}/components/ParticipantTileFocus.tsx (96%) diff --git a/src/frontend/src/features/layout/components/FocusLayout.tsx b/src/frontend/src/features/layout/components/FocusLayout.tsx index de6bc18b..cf18b07a 100644 --- a/src/frontend/src/features/layout/components/FocusLayout.tsx +++ b/src/frontend/src/features/layout/components/FocusLayout.tsx @@ -1,4 +1,4 @@ -import { ParticipantTile } from '@/features/rooms/livekit/components/ParticipantTile' +import { ParticipantTile } from '@/features/participantTile/components/ParticipantTile.tsx' import type { FocusLayoutProps } from '@livekit/components-react' export function FocusLayout({ trackRef, ...htmlProps }: FocusLayoutProps) { diff --git a/src/frontend/src/features/layout/components/StageLayout.tsx b/src/frontend/src/features/layout/components/StageLayout.tsx index f465568b..2330c9d4 100644 --- a/src/frontend/src/features/layout/components/StageLayout.tsx +++ b/src/frontend/src/features/layout/components/StageLayout.tsx @@ -1,7 +1,7 @@ import { FocusLayoutContainer, useTracks } from '@livekit/components-react' import { CarouselLayout } from '@/features/layout/components/CarouselLayout' import { FocusLayout } from '@/features/layout/components/FocusLayout' -import { ParticipantTile } from '@/features/rooms/livekit/components/ParticipantTile' +import { ParticipantTile } from '@/features/participantTile/components/ParticipantTile' import { GridLayout } from '@/features/layout/components/GridLayout' import { isEqualTrackRef, diff --git a/src/frontend/src/features/notifications/components/ToastJoined.tsx b/src/frontend/src/features/notifications/components/ToastJoined.tsx index 0a9f7553..fd4f9863 100644 --- a/src/frontend/src/features/notifications/components/ToastJoined.tsx +++ b/src/frontend/src/features/notifications/components/ToastJoined.tsx @@ -4,7 +4,7 @@ import { Button as RACButton } from 'react-aria-components' import { Track } from 'livekit-client' import Source = Track.Source -import { ParticipantTile } from '@/features/rooms/livekit/components/ParticipantTile' +import { ParticipantTile } from '@/features/participantTile/components/ParticipantTile.tsx' import { type ToastProps } from './Toast' import { HStack, styled } from '@/styled-system/jsx' import { Div } from '@/primitives' diff --git a/src/frontend/src/features/rooms/livekit/components/FullScreenShareWarning.tsx b/src/frontend/src/features/participantTile/components/FullScreenShareWarning.tsx similarity index 98% rename from src/frontend/src/features/rooms/livekit/components/FullScreenShareWarning.tsx rename to src/frontend/src/features/participantTile/components/FullScreenShareWarning.tsx index da74aba4..ee230c57 100644 --- a/src/frontend/src/features/rooms/livekit/components/FullScreenShareWarning.tsx +++ b/src/frontend/src/features/participantTile/components/FullScreenShareWarning.tsx @@ -4,9 +4,9 @@ import { useCallback, useMemo, useRef } from 'react' import { screenSharePreferenceStore } from '@/stores/screenSharePreferences' import { useSnapshot } from 'valtio' import { useLocalParticipant } from '@livekit/components-react' -import { useSize } from '../hooks/useResizeObserver' import type { TrackReferenceOrPlaceholder } from '@livekit/components-core' import { useTranslation } from 'react-i18next' +import { useSize } from '@/features/rooms/livekit/hooks/useResizeObserver' export const FullScreenShareWarning = ({ trackReference, diff --git a/src/frontend/src/features/rooms/livekit/components/KeyboardShortcutHint.tsx b/src/frontend/src/features/participantTile/components/KeyboardShortcutHint.tsx similarity index 100% rename from src/frontend/src/features/rooms/livekit/components/KeyboardShortcutHint.tsx rename to src/frontend/src/features/participantTile/components/KeyboardShortcutHint.tsx diff --git a/src/frontend/src/features/rooms/livekit/components/MutedMicIndicator.tsx b/src/frontend/src/features/participantTile/components/MutedMicIndicator.tsx similarity index 100% rename from src/frontend/src/features/rooms/livekit/components/MutedMicIndicator.tsx rename to src/frontend/src/features/participantTile/components/MutedMicIndicator.tsx diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantName.tsx b/src/frontend/src/features/participantTile/components/ParticipantName.tsx similarity index 100% rename from src/frontend/src/features/rooms/livekit/components/ParticipantName.tsx rename to src/frontend/src/features/participantTile/components/ParticipantName.tsx diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantPlaceholder.tsx b/src/frontend/src/features/participantTile/components/ParticipantPlaceholder.tsx similarity index 100% rename from src/frontend/src/features/rooms/livekit/components/ParticipantPlaceholder.tsx rename to src/frontend/src/features/participantTile/components/ParticipantPlaceholder.tsx diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantTile.tsx b/src/frontend/src/features/participantTile/components/ParticipantTile.tsx similarity index 98% rename from src/frontend/src/features/rooms/livekit/components/ParticipantTile.tsx rename to src/frontend/src/features/participantTile/components/ParticipantTile.tsx index e757ea26..e7382920 100644 --- a/src/frontend/src/features/rooms/livekit/components/ParticipantTile.tsx +++ b/src/frontend/src/features/participantTile/components/ParticipantTile.tsx @@ -22,7 +22,10 @@ import { } from '@livekit/components-core' import { Track } from 'livekit-client' import { RiHand } from '@remixicon/react' -import { useRaisedHand, useRaisedHandPosition } from '../hooks/useRaisedHand' +import { + useRaisedHand, + useRaisedHandPosition, +} from '@/features/rooms/livekit/hooks/useRaisedHand' import { HStack } from '@/styled-system/jsx' import { MutedMicIndicator } from './MutedMicIndicator' import { ParticipantPlaceholder } from './ParticipantPlaceholder' diff --git a/src/frontend/src/features/rooms/livekit/components/ParticipantTileFocus.tsx b/src/frontend/src/features/participantTile/components/ParticipantTileFocus.tsx similarity index 96% rename from src/frontend/src/features/rooms/livekit/components/ParticipantTileFocus.tsx rename to src/frontend/src/features/participantTile/components/ParticipantTileFocus.tsx index 89c89973..fe733c64 100644 --- a/src/frontend/src/features/rooms/livekit/components/ParticipantTileFocus.tsx +++ b/src/frontend/src/features/participantTile/components/ParticipantTileFocus.tsx @@ -16,14 +16,14 @@ import { TrackReferenceOrPlaceholder, } from '@livekit/components-core' import { useEffect, useRef, useState } from 'react' -import { useSidePanel } from '../hooks/useSidePanel' -import { useFullScreen } from '../hooks/useFullScreen' import { type Participant, Track } from 'livekit-client' -import { MuteAlertDialog } from './MuteAlertDialog' import { useMuteParticipant } from '@/features/rooms/api/muteParticipant' import { useCanMute } from '@/features/rooms/livekit/hooks/useCanMute' import { useSnapshot } from 'valtio' import { layoutStore, setPinnedTrack, clearPinnedTrack } from '@/stores/layout' +import { useFullScreen } from '@/features/rooms/livekit/hooks/useFullScreen' +import { MuteAlertDialog } from '@/features/rooms/livekit/components/MuteAlertDialog' +import { useSidePanel } from '@/features/rooms/livekit/hooks/useSidePanel' const ZoomButton = ({ trackRef, diff --git a/src/frontend/src/features/pip/components/layout/PipFocusLayout.tsx b/src/frontend/src/features/pip/components/layout/PipFocusLayout.tsx index ff5d493f..bbaab017 100644 --- a/src/frontend/src/features/pip/components/layout/PipFocusLayout.tsx +++ b/src/frontend/src/features/pip/components/layout/PipFocusLayout.tsx @@ -1,7 +1,7 @@ import { memo } from 'react' import type { TrackReferenceOrPlaceholder } from '@livekit/components-core' import { styled } from '@/styled-system/jsx' -import { ParticipantTile } from '@/features/rooms/livekit/components/ParticipantTile' +import { ParticipantTile } from '@/features/participantTile/components/ParticipantTile' import { getTrackKey } from '../../utils/pipTrackSelection' type PipFocusLayoutProps = { diff --git a/src/frontend/src/features/pip/components/layout/PipGridLayout.tsx b/src/frontend/src/features/pip/components/layout/PipGridLayout.tsx index 4b4afacb..20a9ef42 100644 --- a/src/frontend/src/features/pip/components/layout/PipGridLayout.tsx +++ b/src/frontend/src/features/pip/components/layout/PipGridLayout.tsx @@ -1,7 +1,7 @@ import { memo, useMemo, useRef } from 'react' import type { TrackReferenceOrPlaceholder } from '@livekit/components-core' import { styled } from '@/styled-system/jsx' -import { ParticipantTile } from '@/features/rooms/livekit/components/ParticipantTile' +import { ParticipantTile } from '@/features/participantTile/components/ParticipantTile' import { usePipElementSize } from '../../hooks/usePipElementSize' import { computePipGridLayout } from '../../utils/pipGrid' import { getTrackKey } from '../../utils/pipTrackSelection' diff --git a/src/frontend/src/features/pip/components/layout/PipScreenShareLayout.tsx b/src/frontend/src/features/pip/components/layout/PipScreenShareLayout.tsx index b78dbcc0..8ba5c7c6 100644 --- a/src/frontend/src/features/pip/components/layout/PipScreenShareLayout.tsx +++ b/src/frontend/src/features/pip/components/layout/PipScreenShareLayout.tsx @@ -1,7 +1,7 @@ import { memo } from 'react' import type { TrackReferenceOrPlaceholder } from '@livekit/components-core' import { styled } from '@/styled-system/jsx' -import { ParticipantTile } from '@/features/rooms/livekit/components/ParticipantTile' +import { ParticipantTile } from '@/features/participantTile/components/ParticipantTile' import { getTrackKey } from '../../utils/pipTrackSelection' type PipScreenShareLayoutProps = { diff --git a/src/frontend/src/features/settings/components/SettingsDialogProvider.tsx b/src/frontend/src/features/settings/components/SettingsDialogProvider.tsx index 275d7c05..238dd32b 100644 --- a/src/frontend/src/features/settings/components/SettingsDialogProvider.tsx +++ b/src/frontend/src/features/settings/components/SettingsDialogProvider.tsx @@ -1,9 +1,7 @@ import { SettingsDialogExtended } from './SettingsDialogExtended' import { useSnapshot } from 'valtio' import { settingsStore, toggleSettingsDialog } from '@/stores/settings' -import { - SettingsDialogExtendedKey, -} from '@/features/settings' +import { SettingsDialogExtendedKey } from '@/features/settings' import { useRegisterKeyboardShortcut } from '@/features/shortcuts/useRegisterKeyboardShortcut' import { useCallback } from 'react'