aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/components/FileEntry.vue
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@protonmail.com>2023-09-01 12:02:17 +0200
committerJohn Molakvoæ <skjnldsv@protonmail.com>2023-09-02 01:16:41 +0200
commite040d939e5fcd0a4835c0d06d3181fb48c8d9294 (patch)
tree28f57ee2c350773e2d44758405bb5752c8d0c2df /apps/files/src/components/FileEntry.vue
parente2303d0cc1166e95b65753f26d46c544df339e86 (diff)
downloadnextcloud-server-e040d939e5fcd0a4835c0d06d3181fb48c8d9294.tar.gz
nextcloud-server-e040d939e5fcd0a4835c0d06d3181fb48c8d9294.zip
feat(files): add sharing icon in header
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Diffstat (limited to 'apps/files/src/components/FileEntry.vue')
-rw-r--r--apps/files/src/components/FileEntry.vue22
1 files changed, 12 insertions, 10 deletions
diff --git a/apps/files/src/components/FileEntry.vue b/apps/files/src/components/FileEntry.vue
index fce8b7ed263..3d30ba1055c 100644
--- a/apps/files/src/components/FileEntry.vue
+++ b/apps/files/src/components/FileEntry.vue
@@ -166,12 +166,15 @@
</template>
<script lang='ts'>
+import type { PropType } from 'vue'
+import type { Node } from '@nextcloud/files'
+
import { CancelablePromise } from 'cancelable-promise'
import { debounce } from 'debounce'
import { emit } from '@nextcloud/event-bus'
import { extname } from 'path'
import { generateUrl } from '@nextcloud/router'
-import { getFileActions, DefaultType, FileType, formatFileSize, Permission, NodeStatus } from '@nextcloud/files'
+import { getFileActions, DefaultType, FileType, formatFileSize, Permission, Folder, File } from '@nextcloud/files'
import { showError, showSuccess } from '@nextcloud/dialogs'
import { translate } from '@nextcloud/l10n'
import { vOnClickOutside } from '@vueuse/components'
@@ -186,7 +189,7 @@ import NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'
import NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'
import Vue from 'vue'
-import { ACTION_DETAILS } from '../actions/sidebarAction.ts'
+import { action as sidebarAction } from '../actions/sidebarAction.ts'
import { hashCode } from '../utils/hashUtils.ts'
import { isCachedPreview } from '../services/PreviewService.ts'
import { useActionsMenuStore } from '../store/actionsmenu.ts'
@@ -235,7 +238,7 @@ export default Vue.extend({
default: false,
},
source: {
- type: Object,
+ type: [Folder, File, Node] as PropType<Node>,
required: true,
},
index: {
@@ -243,7 +246,7 @@ export default Vue.extend({
required: true,
},
nodes: {
- type: Array,
+ type: Array as PropType<Node[]>,
required: true,
},
filesListWidth: {
@@ -295,7 +298,7 @@ export default Vue.extend({
currentDir() {
// Remove any trailing slash but leave root slash
- return (this.$route?.query?.dir || '/').replace(/^(.+)\/$/, '$1')
+ return (this.$route?.query?.dir?.toString() || '/').replace(/^(.+)\/$/, '$1')
},
currentFileId() {
return this.$route.params.fileid || this.$route.query.fileid || null
@@ -660,11 +663,10 @@ export default Vue.extend({
},
openDetailsIfAvailable(event) {
- const detailsAction = this.enabledActions.find(action => action.id === ACTION_DETAILS)
- if (detailsAction) {
- event.preventDefault()
- event.stopPropagation()
- detailsAction.exec(this.source, this.currentView)
+ event.preventDefault()
+ event.stopPropagation()
+ if (sidebarAction?.enabled?.([this.source], this.currentView)) {
+ sidebarAction.exec(this.source, this.currentView, this.currentDir)
}
},