feat(files): show readable mime if available

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
pull/52862/head
John Molakvoæ (skjnldsv) 2025-05-15 12:23:39 +07:00 committed by nextcloud-command
parent ada985e651
commit 20e69bc1b0
1 changed files with 20 additions and 0 deletions

@ -97,6 +97,7 @@
import { FileType, formatFileSize } from '@nextcloud/files' import { FileType, formatFileSize } from '@nextcloud/files'
import { useHotKey } from '@nextcloud/vue/composables/useHotKey' import { useHotKey } from '@nextcloud/vue/composables/useHotKey'
import { defineComponent } from 'vue' import { defineComponent } from 'vue'
import { t } from '@nextcloud/l10n'
import NcDateTime from '@nextcloud/vue/components/NcDateTime' import NcDateTime from '@nextcloud/vue/components/NcDateTime'
import { useNavigation } from '../composables/useNavigation.ts' import { useNavigation } from '../composables/useNavigation.ts'
@ -208,6 +209,25 @@ export default defineComponent({
return t('files', 'Unknown file type') return t('files', 'Unknown file type')
} }
if (window.OC?.MimeTypeList?.names?.[this.source.mime]) {
return window.OC.MimeTypeList.names[this.source.mime]
}
const baseType = this.source.mime.split('/')[0]
const ext = this.source?.extension?.toUpperCase().replace(/^\./, '') || ''
if (baseType === 'image') {
return t('files', '{ext} image', { ext })
}
if (baseType === 'video') {
return t('files', '{ext} video', { ext })
}
if (baseType === 'audio') {
return t('files', '{ext} audio', { ext })
}
if (baseType === 'text') {
return t('files', '{ext} text', { ext })
}
return this.source.mime return this.source.mime
}, },
size() { size() {