From 73882919d1de4f0d19f8bff6f7033ce7792d04c6 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Thu, 6 Jan 2022 14:12:41 +0530 Subject: [PATCH] handle case where range select with few selected and few unselected items select all the items in the union of two ranges --- src/components/PhotoFrame.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/PhotoFrame.tsx b/src/components/PhotoFrame.tsx index 1dec490ce..06c257635 100644 --- a/src/components/PhotoFrame.tsx +++ b/src/components/PhotoFrame.tsx @@ -315,9 +315,12 @@ const PhotoFrame = ({ const handleRangeSelect = (index: number) => () => { if (rangeStart !== index) { - const checked = !!selected[filteredData[index].id]; const direction = (index - rangeStart) / Math.abs(index - rangeStart); + let checked = true; + for (let i = rangeStart; i !== index; i += direction) { + checked = checked && !!selected[filteredData[i].id]; + } for (let i = rangeStart; i !== index; i += direction) { handleSelect(filteredData[i].id)(!checked); }