Skip to content

Commit c514458

Browse files
committed
fix: allow click when selecting
#1512
1 parent 3b9b61d commit c514458

File tree

2 files changed

+30
-18
lines changed

2 files changed

+30
-18
lines changed

apps/renderer/src/modules/feed-column/list.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ function FeedListImpl({ className, view }: { className?: string; view: number })
136136
const selectoRef = useRef<Selecto>(null)
137137
const [selectedFeedIds, setSelectedFeedIds] = useSelectedFeedIds()
138138

139-
const { attributes, listeners, setNodeRef, transform, isDragging } = useDraggable({
139+
const { attributes, listeners, setNodeRef, transform } = useDraggable({
140140
id: "selected-feed",
141141
disabled: selectedFeedIds.length === 0,
142142
})
@@ -198,7 +198,7 @@ function FeedListImpl({ className, view }: { className?: string; view: number })
198198
ref={selectoRef}
199199
rootContainer={document.body}
200200
dragContainer={"#feeds-area"}
201-
dragCondition={() => !(selectedFeedIds.length > 0 && isDragging)}
201+
dragCondition={() => selectedFeedIds.length === 0}
202202
selectableTargets={["[data-feed-id]"]}
203203
continueSelect
204204
hitRate={10}

apps/renderer/src/pages/(main)/layout.tsx

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { DndContext, pointerWithin } from "@dnd-kit/core"
1+
import type { DragEndEvent } from "@dnd-kit/core"
2+
import { DndContext, PointerSensor, pointerWithin, useSensor, useSensors } from "@dnd-kit/core"
23
import { useViewport } from "@follow/components/hooks/useViewport.js"
34
import { PanelSplitter } from "@follow/components/ui/divider/index.js"
45
import { RootPortal } from "@follow/components/ui/portal/index.jsx"
@@ -105,9 +106,32 @@ export function Component() {
105106
const { data: remoteSettings, isLoading } = useAuthQuery(settings.get(), {})
106107
const isNewUser = !isLoading && remoteSettings && Object.keys(remoteSettings.updated).length === 0
107108

109+
const sensors = useSensors(
110+
useSensor(PointerSensor, {
111+
activationConstraint: {
112+
distance: 8,
113+
},
114+
}),
115+
)
108116
const [selectedIds, setSelectedIds] = useSelectedFeedIds()
109-
110117
const { mutate } = useBatchUpdateSubscription()
118+
const handleDragEnd = React.useCallback(
119+
(event: DragEndEvent) => {
120+
if (!event.over) {
121+
return
122+
}
123+
124+
const { category, view } = event.over.data.current as {
125+
category: string
126+
view: FeedViewType
127+
}
128+
129+
mutate({ category, view, feedIdList: selectedIds })
130+
131+
setSelectedIds([])
132+
},
133+
[mutate, selectedIds, setSelectedIds],
134+
)
111135

112136
if (isNotSupportWidth) {
113137
return <NotSupport />
@@ -123,21 +147,9 @@ export function Component() {
123147
<AppLayoutGridContainerProvider>
124148
<FeedResponsiveResizerContainer containerRef={containerRef}>
125149
<DndContext
150+
sensors={sensors}
126151
collisionDetection={pointerWithin}
127-
onDragEnd={(event) => {
128-
if (!event.over) {
129-
return
130-
}
131-
132-
const { category, view } = event.over.data.current as {
133-
category: string
134-
view: FeedViewType
135-
}
136-
137-
mutate({ category, view, feedIdList: selectedIds })
138-
139-
setSelectedIds([])
140-
}}
152+
onDragEnd={handleDragEnd}
141153
>
142154
<FeedColumn>
143155
<CornerPlayer />

0 commit comments

Comments
 (0)