fix: avoid clearing selection when clicking elements outside the empty area (#5715)
This commit is contained in:
@@ -81,7 +81,13 @@
|
|||||||
</template>
|
</template>
|
||||||
</header-bar>
|
</header-bar>
|
||||||
|
|
||||||
<div v-if="isMobile" id="file-selection">
|
<div
|
||||||
|
v-if="isMobile"
|
||||||
|
id="file-selection"
|
||||||
|
:class="{
|
||||||
|
'file-selection-margin-bottom': fileStore.multiple,
|
||||||
|
}"
|
||||||
|
>
|
||||||
<span v-if="fileStore.selectedCount > 0">
|
<span v-if="fileStore.selectedCount > 0">
|
||||||
{{ t("prompts.filesSelected", fileStore.selectedCount) }}
|
{{ t("prompts.filesSelected", fileStore.selectedCount) }}
|
||||||
</span>
|
</span>
|
||||||
@@ -158,6 +164,7 @@
|
|||||||
id="listing"
|
id="listing"
|
||||||
ref="listing"
|
ref="listing"
|
||||||
class="file-icons"
|
class="file-icons"
|
||||||
|
data-clear-on-click="true"
|
||||||
:class="authStore.user?.viewMode ?? ''"
|
:class="authStore.user?.viewMode ?? ''"
|
||||||
@click="handleEmptyAreaClick"
|
@click="handleEmptyAreaClick"
|
||||||
>
|
>
|
||||||
@@ -205,11 +212,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2 v-if="fileStore.req?.numDirs ?? false">
|
<h2 data-clear-on-click="true" v-if="fileStore.req?.numDirs ?? false">
|
||||||
{{ t("files.folders") }}
|
{{ t("files.folders") }}
|
||||||
</h2>
|
</h2>
|
||||||
<div
|
<div
|
||||||
v-if="fileStore.req?.numDirs ?? false"
|
v-if="fileStore.req?.numDirs ?? false"
|
||||||
|
data-clear-on-click="true"
|
||||||
@contextmenu="showContextMenu"
|
@contextmenu="showContextMenu"
|
||||||
>
|
>
|
||||||
<item
|
<item
|
||||||
@@ -227,11 +235,12 @@
|
|||||||
</item>
|
</item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2 v-if="fileStore.req?.numFiles ?? false">
|
<h2 data-clear-on-click="true" v-if="fileStore.req?.numFiles ?? false">
|
||||||
{{ t("files.files") }}
|
{{ t("files.files") }}
|
||||||
</h2>
|
</h2>
|
||||||
<div
|
<div
|
||||||
v-if="fileStore.req?.numFiles ?? false"
|
v-if="fileStore.req?.numFiles ?? false"
|
||||||
|
data-clear-on-click="true"
|
||||||
@contextmenu="showContextMenu"
|
@contextmenu="showContextMenu"
|
||||||
>
|
>
|
||||||
<item
|
<item
|
||||||
@@ -1057,16 +1066,17 @@ const handleEmptyAreaClick = (e: MouseEvent) => {
|
|||||||
const target = e.target;
|
const target = e.target;
|
||||||
if (!(target instanceof HTMLElement)) return;
|
if (!(target instanceof HTMLElement)) return;
|
||||||
|
|
||||||
if (target.closest("item") || target.closest(".item")) return;
|
if (target.dataset.clearOnClick === "true") {
|
||||||
|
fileStore.selected = [];
|
||||||
// Do not clear selection when clicking on context menu actions
|
}
|
||||||
if (target.closest(".context-menu")) return;
|
|
||||||
|
|
||||||
fileStore.selected = [];
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
#listing {
|
#listing {
|
||||||
min-height: calc(100vh - 8rem);
|
min-height: calc(100vh - 8rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.file-selection-margin-bottom {
|
||||||
|
margin-bottom: 3.5rem;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user