mirror of
https://github.com/zhom/donutbrowser.git
synced 2026-09-24 18:30:59 +02:00
refactor: don't close dialog on drag
This commit is contained in:
@@ -63,6 +63,12 @@ function DialogContent({
|
|||||||
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-[10000] grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
|
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-[10000] grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
|
onInteractOutside={(event) => {
|
||||||
|
const target = event.target as HTMLElement | null;
|
||||||
|
if (target?.closest('[data-window-drag-area="true"]')) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
}}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
|
|||||||
@@ -16,11 +16,11 @@ export function WindowDragArea() {
|
|||||||
checkPlatform();
|
checkPlatform();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleMouseDown = (e: React.MouseEvent) => {
|
const handlePointerDown = (e: React.PointerEvent) => {
|
||||||
// Only handle left mouse button
|
|
||||||
if (e.button !== 0) return;
|
if (e.button !== 0) return;
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
|
||||||
// Start dragging asynchronously
|
|
||||||
const startDrag = async () => {
|
const startDrag = async () => {
|
||||||
try {
|
try {
|
||||||
const window = getCurrentWindow();
|
const window = getCurrentWindow();
|
||||||
@@ -42,7 +42,8 @@ export function WindowDragArea() {
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
className="fixed top-0 right-0 left-0 h-10 bg-transparent border-0 z-[9999] select-none"
|
className="fixed top-0 right-0 left-0 h-10 bg-transparent border-0 z-[9999] select-none"
|
||||||
onMouseDown={handleMouseDown}
|
data-window-drag-area="true"
|
||||||
|
onPointerDown={handlePointerDown}
|
||||||
onContextMenu={(e) => {
|
onContextMenu={(e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|||||||
Reference in New Issue
Block a user