import type { DmsPermissionResource } from '#/api/x/dms/permission';
|
import type { DmsPersonalFolderFile } from '#/api/x/dms/personalFolder';
|
|
export function personalFileDisplayName(file: DmsPermissionResource) {
|
return file.fileName || file.documentName || file.name;
|
}
|
|
export function personalFileSize(sizeBytes?: number) {
|
if (sizeBytes === undefined || sizeBytes === null) return '—';
|
if (sizeBytes < 1024) return `${sizeBytes} B`;
|
if (sizeBytes < 1024 ** 2) return `${(sizeBytes / 1024).toFixed(1)} KB`;
|
if (sizeBytes < 1024 ** 3) return `${(sizeBytes / 1024 ** 2).toFixed(1)} MB`;
|
return `${(sizeBytes / 1024 ** 3).toFixed(1)} GB`;
|
}
|
|
export function personalFileTone(fileName: string) {
|
const name = fileName.toLowerCase();
|
if (name.endsWith('.pdf')) return 'pdf';
|
if (/\.(?:doc|docx)$/.test(name)) return 'word';
|
if (/\.(?:xls|xlsx|csv)$/.test(name)) return 'excel';
|
if (/\.(?:gif|jpe?g|png|webp)$/.test(name)) return 'image';
|
return 'file';
|
}
|
|
export function personalFileExpired(file: DmsPersonalFolderFile, now = Date.now()) {
|
if (!file.validTo) return false;
|
const validTo = Date.parse(file.validTo);
|
return !Number.isFinite(validTo) || validTo <= now;
|
}
|