Handle context menu events in header cells

This commit is contained in:
Andrew Kingston 2023-03-07 08:23:50 +00:00
parent 9579c9c0d2
commit f516011182
2 changed files with 19 additions and 8 deletions

View File

@ -18,15 +18,24 @@
$: canMoveLeft = orderable && column.idx > 0 $: canMoveLeft = orderable && column.idx > 0
$: canMoveRight = orderable && column.idx < $columns.length - 1 $: canMoveRight = orderable && column.idx < $columns.length - 1
const startReordering = e => { const onMouseDown = e => {
if (e.button === 0 && orderable) {
timeout = setTimeout(() => { timeout = setTimeout(() => {
reorder.actions.startReordering(column.name, e) reorder.actions.startReordering(column.name, e)
}, 200) }, 200)
} }
}
const stopReordering = () => { const onMouseUp = e => {
if (e.button === 0 && orderable) {
clearTimeout(timeout) clearTimeout(timeout)
} }
}
const onContextMenu = e => {
e.preventDefault()
open = true
}
const sortAscending = () => { const sortAscending = () => {
sort.set({ sort.set({
@ -66,8 +75,9 @@
<SheetCell <SheetCell
reorderSource={$reorder.sourceColumn === column.name} reorderSource={$reorder.sourceColumn === column.name}
reorderTarget={$reorder.targetColumn === column.name} reorderTarget={$reorder.targetColumn === column.name}
on:mousedown={orderable ? startReordering : null} on:mousedown={onMouseDown}
on:mouseup={orderable ? stopReordering : null} on:mouseup={onMouseUp}
on:contextmenu={onContextMenu}
width={column.width} width={column.width}
left={column.left} left={column.left}
> >

View File

@ -39,6 +39,7 @@
on:mousedown on:mousedown
on:mouseup on:mouseup
on:click on:click
on:contextmenu
{style} {style}
data-row={rowIdx} data-row={rowIdx}
> >