@@ -12,15 +12,15 @@ const templateInputElem: Ref<HTMLFileInputElement | null> = ref(null);
1212
1313type IProps = {
1414 state: FileInputState ,
15- globalDropZone? : boolean ,
15+ globalDropZone? : boolean | null ,
1616 dropZoneSelector? : string | null ,
1717 accept? : string ,
1818 multiple? : boolean ,
1919 nwdirectory? : boolean ,
2020}
2121
2222const props = withDefaults (defineProps <IProps >(), {
23- globalDropZone: true ,
23+ globalDropZone: null ,
2424 dropZoneSelector: null ,
2525 accept: " */*" ,
2626 multiple: true ,
@@ -51,6 +51,16 @@ onMounted(() => {
5151 inputElem .value = templateInputElem .value ;
5252});
5353
54+ const globalDropZoneEx = computed (() => {
55+ if (dropZoneSelector .value ) {
56+ return false ;
57+ }
58+ if (globalDropZone .value === null ) {
59+ return true ;
60+ }
61+ return globalDropZone .value ;
62+ });
63+
5464function onFileInputChange(event : Event ) {
5565 const fileElem = event .target as HTMLFileInputElement ;
5666 setFiles (fileElem .files );
@@ -62,7 +72,7 @@ const dropZone: ComputedRef<HTMLElement | null> = computed(() => {
6272 if (dropZoneSelector .value ) {
6373 return document .querySelector (dropZoneSelector .value );
6474 } else
65- if (globalDropZone .value ) {
75+ if (globalDropZoneEx .value ) {
6676 return document .body ;
6777 }
6878 return fileInputElem .value ;
@@ -118,7 +128,7 @@ function onDragOver(event: DragEvent) {
118128}
119129function onDragEnter(event : DragEvent ) {
120130 stopEvent (event );
121- if (globalDropZone .value && event .relatedTarget !== null ) {
131+ if (globalDropZoneEx .value && event .relatedTarget !== null ) {
122132 return ;
123133 }
124134 if (! dropHover .value ) {
@@ -130,7 +140,7 @@ function onDragEnter(event: DragEvent) {
130140}
131141function onDragLeave(event : DragEvent ) {
132142 stopEvent (event );
133- if (globalDropZone .value ) {
143+ if (globalDropZoneEx .value ) {
134144 if (event .relatedTarget !== null ) {
135145 return ;
136146 }
0 commit comments