}
- title="Your queue is empty"
- description="Add tracks to keep the vibe going."
- size="sm"
- className="border-0 shadow-none bg-transparent"
- />
+
diff --git a/apps/web/src/features/search/components/search-page/SearchPageDiscovery.tsx b/apps/web/src/features/search/components/search-page/SearchPageDiscovery.tsx
index 1d22d98fd..ed0a6fa4f 100644
--- a/apps/web/src/features/search/components/search-page/SearchPageDiscovery.tsx
+++ b/apps/web/src/features/search/components/search-page/SearchPageDiscovery.tsx
@@ -9,7 +9,7 @@ interface SearchPageDiscoveryProps {
export function SearchPageDiscovery({ onQuerySelect }: SearchPageDiscoveryProps) {
const { getHistory, clearHistory } = useSearchHistory();
- const [refreshKey, setRefreshKey] = useState(0);
+ const [, setRefreshKey] = useState(0);
const history = getHistory();
const handleClear = () => {
diff --git a/apps/web/src/features/tracks/api/trackApi.ts b/apps/web/src/features/tracks/api/trackApi.ts
index de1fa62e4..59e47d15d 100644
--- a/apps/web/src/features/tracks/api/trackApi.ts
+++ b/apps/web/src/features/tracks/api/trackApi.ts
@@ -300,6 +300,24 @@ export async function uploadTrack(
* @returns La liste des tracks avec les métadonnées de pagination
* @throws Error si la requête échoue
*/
+/**
+ * Get personalized track recommendations (D2 autoplay)
+ * Backend: GET /api/v1/tracks/recommendations (auth required)
+ */
+export async function getTrackRecommendations(
+ options?: { limit?: number; seedTrackId?: string },
+): Promise