fix: avoid clearing selection when clicking elements outside the empty area (#5715)

This commit is contained in:
Ariel Leyva
2026-01-24 08:42:00 -05:00
committed by GitHub
parent 3032a1fade
commit 004488c15b

View File

@@ -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>