feat: esc to clear table selection

This commit is contained in:
2025-09-26 22:28:51 +00:00
parent 56fb2aa24f
commit ce2e3c4f26

View File

@@ -221,6 +221,31 @@ export function DirectoryContentTableContent() {
const store = useStore()
const navigate = useNavigate()
const table = useReactTable({
data: directoryContent || [],
columns,
getCoreRowModel: getCoreRowModel(),
enableRowSelection: true,
enableGlobalFilter: true,
globalFilterFn: (row, _columnId, _filterValue, _addMeta) => {
return !optimisticDeletedItems.has(row.original.doc._id)
},
getRowId: (row) => row.doc._id,
})
useEffect(
function escapeToClearSelections() {
const handleEscape = (e: KeyboardEvent) => {
if (e.key === "Escape") {
table.setRowSelection({})
}
}
window.addEventListener("keydown", handleEscape)
return () => window.removeEventListener("keydown", handleEscape)
},
[table.setRowSelection],
)
const handleRowContextMenu = (
row: Row<DirectoryItem>,
_event: React.MouseEvent,
@@ -234,18 +259,6 @@ export function DirectoryContentTableContent() {
}
}
const table = useReactTable({
data: directoryContent || [],
columns,
getCoreRowModel: getCoreRowModel(),
enableRowSelection: true,
enableGlobalFilter: true,
globalFilterFn: (row, _columnId, _filterValue, _addMeta) => {
return !optimisticDeletedItems.has(row.original.doc._id)
},
getRowId: (row) => row.doc._id,
})
const selectRow = (row: Row<DirectoryItem>) => {
const keyboardModifiers = store.get(keyboardModifierAtom)
const isMultiSelectMode = isControlOrCommandKeyActive(keyboardModifiers)