refactor(files): Replace deprecated Types enum for share types

Replace with `ShareType` enum.
Also fix some small Typescript issues in `FilesList.vue`.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
Ferdinand Thiessen 2024-11-15 02:03:06 +01:00
parent ad40841ae8
commit bb26289ef3
No known key found for this signature in database
GPG key ID: 45FAE7268762B400

View file

@ -17,7 +17,7 @@
type="tertiary"
@click="openSharingSidebar">
<template #icon>
<LinkIcon v-if="shareButtonType === Type.SHARE_TYPE_LINK" />
<LinkIcon v-if="shareButtonType === ShareType.Link" />
<AccountPlusIcon v-else :size="20" />
</template>
</NcButton>
@ -141,7 +141,7 @@
</template>
<script lang="ts">
import type { ContentsWithRoot, INode } from '@nextcloud/files'
import type { ContentsWithRoot, Folder, INode } from '@nextcloud/files'
import type { Upload } from '@nextcloud/upload'
import type { CancelablePromise } from 'cancelable-promise'
import type { ComponentPublicInstance } from 'vue'
@ -150,11 +150,11 @@ import type { UserConfig } from '../types.ts'
import { getCapabilities } from '@nextcloud/capabilities'
import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
import { Folder, Node, Permission, sortNodes, getFileListActions } from '@nextcloud/files'
import { Node, Permission, sortNodes, getFileListActions } from '@nextcloud/files'
import { translate as t } from '@nextcloud/l10n'
import { join, dirname, normalize } from 'path'
import { showError, showWarning } from '@nextcloud/dialogs'
import { Type } from '@nextcloud/sharing'
import { ShareType } from '@nextcloud/sharing'
import { UploadPicker, UploadStatus } from '@nextcloud/upload'
import { loadState } from '@nextcloud/initial-state'
import { defineComponent } from 'vue'
@ -261,7 +261,7 @@ export default defineComponent({
// non reactive data
enableGridView,
forbiddenCharacters,
Type,
ShareType,
}
},
@ -391,22 +391,22 @@ export default defineComponent({
return t('files', 'Share')
}
if (this.shareButtonType === Type.SHARE_TYPE_LINK) {
if (this.shareButtonType === ShareType.Link) {
return t('files', 'Shared by link')
}
return t('files', 'Shared')
},
shareButtonType(): Type | null {
shareButtonType(): ShareType | null {
if (!this.shareTypesAttributes) {
return null
}
// If all types are links, show the link icon
if (this.shareTypesAttributes.some(type => type === Type.SHARE_TYPE_LINK)) {
return Type.SHARE_TYPE_LINK
if (this.shareTypesAttributes.some(type => type === ShareType.Link)) {
return ShareType.Link
}
return Type.SHARE_TYPE_USER
return ShareType.User
},
gridViewButtonLabel() {
@ -454,7 +454,11 @@ export default defineComponent({
if (action.enabled === undefined) {
return true
}
return action.enabled(this.currentView, this.dirContents, { folder: this.currentFolder })
return action.enabled(
this.currentView!,
this.dirContents,
{ folder: this.currentFolder! },
)
})
.toSorted((a, b) => a.order - b.order)
return enabledActions