From 146727e9807bed916efbf08eba9938ba322831c3 Mon Sep 17 00:00:00 2001 From: Psychotoxical <171614930+Psychotoxical@users.noreply.github.com> Date: Mon, 29 Jun 2026 22:35:14 +0200 Subject: [PATCH] refactor(ui): co-locate TooltipPortal and tooltipAttrs as shared primitives in src/ui --- src/app/AppShell.tsx | 2 +- src/app/MiniPlayerApp.test.tsx | 2 +- src/app/MiniPlayerApp.tsx | 2 +- src/components/AlbumHeader.tsx | 2 +- src/components/GenreFilterBar.tsx | 2 +- src/components/SongRow.tsx | 2 +- src/components/SortDropdown.tsx | 2 +- src/components/YearFilterButton.tsx | 2 +- src/components/artistDetail/ArtistDetailHero.tsx | 2 +- src/components/settings/ServersTab.tsx | 2 +- src/pages/SearchBrowsePage.tsx | 2 +- src/{components => ui}/TooltipPortal.test.tsx | 2 +- src/{components => ui}/TooltipPortal.tsx | 0 src/{components => ui}/tooltipAttrs.test.ts | 2 +- src/{components => ui}/tooltipAttrs.ts | 0 15 files changed, 13 insertions(+), 13 deletions(-) rename src/{components => ui}/TooltipPortal.test.tsx (98%) rename src/{components => ui}/TooltipPortal.tsx (100%) rename src/{components => ui}/tooltipAttrs.test.ts (94%) rename src/{components => ui}/tooltipAttrs.ts (100%) diff --git a/src/app/AppShell.tsx b/src/app/AppShell.tsx index 92bc40d8..678bf760 100644 --- a/src/app/AppShell.tsx +++ b/src/app/AppShell.tsx @@ -22,7 +22,7 @@ import GlobalConfirmModal from '../components/GlobalConfirmModal'; import ThemeMigrationNotice from '../components/ThemeMigrationNotice'; import OrbitAccountPicker from '../components/OrbitAccountPicker'; import OrbitHelpModal from '../components/OrbitHelpModal'; -import TooltipPortal from '../components/TooltipPortal'; +import TooltipPortal from '@/ui/TooltipPortal'; import OverlayScrollArea from '../components/OverlayScrollArea'; import { APP_MAIN_SCROLL_VIEWPORT_ID, diff --git a/src/app/MiniPlayerApp.test.tsx b/src/app/MiniPlayerApp.test.tsx index e4b71f49..50675d8f 100644 --- a/src/app/MiniPlayerApp.test.tsx +++ b/src/app/MiniPlayerApp.test.tsx @@ -30,7 +30,7 @@ vi.mock('../i18n', () => ({ })); vi.mock('../components/MiniPlayer', () => ({ default: () =>
})); vi.mock('../components/GlobalConfirmModal', () => ({ default: () => })); -vi.mock('../components/TooltipPortal', () => ({ default: () => })); +vi.mock('@/ui/TooltipPortal', () => ({ default: () => })); vi.mock('../components/FpsOverlay', () => ({ default: () => })); vi.mock('../contexts/DragDropContext', () => ({ DragDropProvider: ({ children }: { children: React.ReactNode }) => <>{children}>, diff --git a/src/app/MiniPlayerApp.tsx b/src/app/MiniPlayerApp.tsx index 3a91cc63..fa1eb81a 100644 --- a/src/app/MiniPlayerApp.tsx +++ b/src/app/MiniPlayerApp.tsx @@ -2,7 +2,7 @@ import { useEffect } from 'react'; import { DragDropProvider } from '../contexts/DragDropContext'; import MiniPlayer from '../components/MiniPlayer'; import GlobalConfirmModal from '../components/GlobalConfirmModal'; -import TooltipPortal from '../components/TooltipPortal'; +import TooltipPortal from '@/ui/TooltipPortal'; import FpsOverlay from '../components/FpsOverlay'; import { useThemeStore } from '../store/themeStore'; import { useFontStore } from '../store/fontStore'; diff --git a/src/components/AlbumHeader.tsx b/src/components/AlbumHeader.tsx index c23fe639..69512148 100644 --- a/src/components/AlbumHeader.tsx +++ b/src/components/AlbumHeader.tsx @@ -18,7 +18,7 @@ import { formatLongDuration } from '../utils/format/formatDuration'; import { formatMb } from '../utils/format/formatBytes'; import { sanitizeHtml } from '../utils/sanitizeHtml'; import { OpenArtistRefInline } from './OpenArtistRefInline'; -import { tooltipAttrs } from './tooltipAttrs'; +import { tooltipAttrs } from '@/ui/tooltipAttrs'; import { offlineActionPolicy, type OfflineActionPolicy } from '../utils/offline/offlineActionPolicy'; import { deriveAlbumGenreTags } from '../utils/library/genreTags'; import { genreColor } from '../utils/library/genreColor'; diff --git a/src/components/GenreFilterBar.tsx b/src/components/GenreFilterBar.tsx index bfe0a09f..876382b3 100644 --- a/src/components/GenreFilterBar.tsx +++ b/src/components/GenreFilterBar.tsx @@ -5,7 +5,7 @@ import { createPortal } from 'react-dom'; import { Check, Filter, X } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import FilterQuickClear from './FilterQuickClear'; -import { tooltipAttrs } from './tooltipAttrs'; +import { tooltipAttrs } from '@/ui/tooltipAttrs'; type GenreRow = GenreFilterOption; diff --git a/src/components/SongRow.tsx b/src/components/SongRow.tsx index 755930a2..2004105c 100644 --- a/src/components/SongRow.tsx +++ b/src/components/SongRow.tsx @@ -11,7 +11,7 @@ import { useDragDrop } from '../contexts/DragDropContext'; import { useOrbitSongRowBehavior } from '../hooks/useOrbitSongRowBehavior'; import { formatTrackTime } from '../utils/format/formatDuration'; import { resolveTrackArtistRefs } from '../utils/playback/trackArtistRefs'; -import { tooltipAttrs } from './tooltipAttrs'; +import { tooltipAttrs } from '@/ui/tooltipAttrs'; interface Props { song: SubsonicSong; diff --git a/src/components/SortDropdown.tsx b/src/components/SortDropdown.tsx index 41c97231..8efe899e 100644 --- a/src/components/SortDropdown.tsx +++ b/src/components/SortDropdown.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'; import { createPortal } from 'react-dom'; import { ArrowDownUp, Check } from 'lucide-react'; -import { tooltipAttrs } from './tooltipAttrs'; +import { tooltipAttrs } from '@/ui/tooltipAttrs'; export interface SortOption