From f1ee3812edbbb20392554baf8738209a784e0255 Mon Sep 17 00:00:00 2001 From: NimBold Date: Mon, 22 Jun 2026 11:28:08 +0330 Subject: [PATCH] fix(downloads): stabilize queue item selector --- src/components/DownloadItem.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/DownloadItem.tsx b/src/components/DownloadItem.tsx index 9bcfe58..0b97ee1 100644 --- a/src/components/DownloadItem.tsx +++ b/src/components/DownloadItem.tsx @@ -1,4 +1,5 @@ import React, { useEffect, useRef } from 'react'; +import { useShallow } from 'zustand/react/shallow'; import { useDownloadStore } from '../store/useDownloadStore'; import { useDownloadProgressStore } from '../store/downloadStore'; import { Play, Pause, MoreVertical, Clock, ArrowUp, ArrowDown } from 'lucide-react'; @@ -31,7 +32,7 @@ export const DownloadItem = React.memo(({ onClick, }) => { const download = useDownloadStore(state => state.downloads.find(d => d.id === downloadId)); - const queueItems = useDownloadStore(state => { + const queueItems = useDownloadStore(useShallow(state => { const item = state.downloads.find(candidate => candidate.id === downloadId); if (!item) return []; const queueId = item.queueId; @@ -42,7 +43,7 @@ export const DownloadItem = React.memo(({ ) .sort((left, right) => (left.queuePosition ?? 0) - (right.queuePosition ?? 0)) .map(candidate => candidate.id); - }); + })); const moveInQueue = useDownloadStore(state => state.moveInQueue); const queueIndex = queueItems.indexOf(downloadId);