+
{artist.name}
{index < artists.length - 1 && ', '}
@@ -97,12 +106,14 @@ export const QueueSongTitleCombinedColumn = (props: ItemTableListInnerColumn) =>
const rowHeight = props.getRowHeight(props.rowIndex, props);
const path = getTitlePath(props.itemType, (props.data[props.rowIndex] as any).id as string);
+ const item = props.data[props.rowIndex] as any;
const textStyles = isActive ? { color: 'var(--theme-colors-primary)' } : {};
const titleLinkProps = path
? {
component: Link,
isLink: true,
+ state: { item },
to: path,
}
: {};
@@ -126,7 +137,14 @@ export const QueueSongTitleCombinedColumn = (props: ItemTableListInnerColumn) =>
{artists.map((artist, index) => (
-
+
{artist.name}
{index < artists.length - 1 && ', '}
diff --git a/src/renderer/features/albums/routes/album-detail-route.tsx b/src/renderer/features/albums/routes/album-detail-route.tsx
index 7ec6fa65a..34bcf115b 100644
--- a/src/renderer/features/albums/routes/album-detail-route.tsx
+++ b/src/renderer/features/albums/routes/album-detail-route.tsx
@@ -1,6 +1,6 @@
import { useQuery } from '@tanstack/react-query';
import { useRef } from 'react';
-import { useParams } from 'react-router';
+import { useLocation, useParams } from 'react-router';
import { NativeScrollArea } from '/@/renderer/components/native-scroll-area/native-scroll-area';
import { albumQueries } from '/@/renderer/features/albums/api/album-api';
@@ -20,9 +20,13 @@ const AlbumDetailRoute = () => {
const { albumId } = useParams() as { albumId: string };
const server = useCurrentServer();
- const detailQuery = useQuery(
- albumQueries.detail({ query: { id: albumId }, serverId: server?.id }),
- );
+ const location = useLocation();
+
+ const detailQuery = useQuery({
+ ...albumQueries.detail({ query: { id: albumId }, serverId: server?.id }),
+ initialData: location.state?.item,
+ staleTime: 0,
+ });
const { background: backgroundColor, colorId } = useFastAverageColor({
id: albumId,
diff --git a/src/renderer/features/artists/routes/album-artist-detail-route.tsx b/src/renderer/features/artists/routes/album-artist-detail-route.tsx
index f6b18a700..e6be89530 100644
--- a/src/renderer/features/artists/routes/album-artist-detail-route.tsx
+++ b/src/renderer/features/artists/routes/album-artist-detail-route.tsx
@@ -1,6 +1,6 @@
import { useQuery } from '@tanstack/react-query';
import { useRef } from 'react';
-import { useParams } from 'react-router';
+import { useLocation, useParams } from 'react-router';
import { NativeScrollArea } from '/@/renderer/components/native-scroll-area/native-scroll-area';
import { artistsQueries } from '/@/renderer/features/artists/api/artists-api';
@@ -26,12 +26,16 @@ const AlbumArtistDetailRoute = () => {
const routeId = (artistId || albumArtistId) as string;
- const detailQuery = useQuery(
- artistsQueries.albumArtistDetail({
+ const location = useLocation();
+
+ const detailQuery = useQuery({
+ ...artistsQueries.albumArtistDetail({
query: { id: routeId },
serverId: server?.id,
}),
- );
+ initialData: location.state?.item,
+ staleTime: 0,
+ });
const { background: backgroundColor, colorId } = useFastAverageColor({
id: artistId,
diff --git a/src/renderer/router/app-router.tsx b/src/renderer/router/app-router.tsx
index 5371989d7..60a44aebe 100644
--- a/src/renderer/router/app-router.tsx
+++ b/src/renderer/router/app-router.tsx
@@ -1,13 +1,12 @@
import { lazy, Suspense } from 'react';
import { HashRouter, Route, Routes } from 'react-router';
-import { AppRoute } from './routes';
-
import { RouterErrorBoundary } from '/@/renderer/components/error-boundary/router-error-boundary';
import { AddToPlaylistContextModal } from '/@/renderer/features/playlists/components/add-to-playlist-context-modal';
import { ShareItemContextModal } from '/@/renderer/features/sharing/components/share-item-context-modal';
import { ResponsiveLayout } from '/@/renderer/layouts/responsive-layout';
import { AppOutlet } from '/@/renderer/router/app-outlet';
+import { AppRoute } from '/@/renderer/router/routes';
import { TitlebarOutlet } from '/@/renderer/router/titlebar-outlet';
import { BaseContextModal, ModalsProvider } from '/@/shared/components/modal/modal';