Ben Lin
2024-10-28 08abfcfea8247c394b2034cad59734846b403dd9
src/directives/clickOutside.ts
@@ -1,5 +1,5 @@
import { on } from '/@/utils/domUtils';
import { isServer } from '/@/utils/is';
import { on } from '@/utils/domUtils';
import { isServer } from '@/utils/is';
import type { ComponentPublicInstance, DirectiveBinding, ObjectDirective } from 'vue';
type DocumentHandler = <T extends MouseEvent>(mouseup: T, mousedown: T) => void;
@@ -17,10 +17,10 @@
let startClick: MouseEvent;
if (!isServer) {
  on(document, 'mousedown', (e: MouseEvent) => (startClick = e));
  on(document, 'mouseup', (e: MouseEvent) => {
  on(document, 'mousedown', (e: Event) => (startClick = e as MouseEvent));
  on(document, 'mouseup', (e: Event) => {
    for (const { documentHandler } of nodeList.values()) {
      documentHandler(e, startClick);
      documentHandler(e as MouseEvent, startClick);
    }
  });
}