mirror of
https://github.com/Nezumi-2711/onedrive-vercel-index.git
synced 2026-09-22 13:38:45 +00:00
image preview as gallery
This commit is contained in:
+10
-4
@@ -1,4 +1,6 @@
|
||||
const icons = {
|
||||
import { IconPrefix, IconName } from '@fortawesome/fontawesome-common-types'
|
||||
|
||||
const icons: { [key: string]: [IconPrefix, IconName] } = {
|
||||
image: ['far', 'file-image'],
|
||||
pdf: ['far', 'file-pdf'],
|
||||
word: ['far', 'file-word'],
|
||||
@@ -67,11 +69,15 @@ const extensions = {
|
||||
* @param key The index key
|
||||
* @returns Whether or not the key exists inside the object
|
||||
*/
|
||||
const hasKey = <O>(obj: O, key: PropertyKey): key is keyof O => {
|
||||
export const hasKey = <O>(obj: O, key: PropertyKey): key is keyof O => {
|
||||
return key in obj
|
||||
}
|
||||
|
||||
export default function getFileIcon(fileName: string) {
|
||||
const extension = fileName.slice(((fileName.lastIndexOf('.') - 1) >>> 0) + 2).toLowerCase()
|
||||
export const getExtension = (fileName: string) => {
|
||||
return fileName.slice(((fileName.lastIndexOf('.') - 1) >>> 0) + 2).toLowerCase()
|
||||
}
|
||||
|
||||
export const getFileIcon = (fileName: string) => {
|
||||
const extension = getExtension(fileName)
|
||||
return hasKey(extensions, extension) ? extensions[extension] : icons.file
|
||||
}
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
const preview = {
|
||||
markdown: 'markdown',
|
||||
image: 'image',
|
||||
text: 'text',
|
||||
pdf: 'pdf',
|
||||
code: 'code',
|
||||
video: 'video',
|
||||
audio: 'audio',
|
||||
}
|
||||
|
||||
const extensions = {
|
||||
gif: preview.image,
|
||||
jpeg: preview.image,
|
||||
jpg: preview.image,
|
||||
png: preview.image,
|
||||
webp: preview.image,
|
||||
|
||||
md: preview.markdown,
|
||||
markdown: preview.markdown,
|
||||
mdown: preview.markdown,
|
||||
|
||||
pdf: preview.pdf,
|
||||
|
||||
c: preview.code,
|
||||
cpp: preview.code,
|
||||
js: preview.code,
|
||||
java: preview.code,
|
||||
sh: preview.code,
|
||||
cs: preview.code,
|
||||
py: preview.code,
|
||||
css: preview.code,
|
||||
html: preview.code,
|
||||
ts: preview.code,
|
||||
vue: preview.code,
|
||||
json: preview.code,
|
||||
yaml: preview.code,
|
||||
toml: preview.code,
|
||||
|
||||
txt: preview.text,
|
||||
|
||||
mp4: preview.video,
|
||||
flv: preview.video,
|
||||
webm: preview.video,
|
||||
m3u8: preview.video,
|
||||
mkv: preview.video,
|
||||
|
||||
mp3: preview.audio,
|
||||
m4a: preview.audio,
|
||||
aac: preview.audio,
|
||||
wav: preview.audio,
|
||||
ogg: preview.audio,
|
||||
oga: preview.audio,
|
||||
opus: preview.audio,
|
||||
flac: preview.audio,
|
||||
}
|
||||
|
||||
export { extensions, preview }
|
||||
Reference in New Issue
Block a user