Files
classroomio/packages/ui/src/custom/file-drop-zone/index.ts
T

36 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-03-09 11:18:22 +01:00
import Root from './file-drop-zone.svelte';
import Trigger from './file-drop-zone-trigger.svelte';
import Textarea from './file-drop-zone-textarea.svelte';
import type { FileDropZoneRootProps, FileDropZoneTriggerTextProps, FileRejectedReason } from './types';
export function displaySize(bytes: number): string {
if (bytes < KILOBYTE) return `${bytes.toFixed(0)} B`;
if (bytes < MEGABYTE) return `${(bytes / KILOBYTE).toFixed(0)} KB`;
if (bytes < GIGABYTE) return `${(bytes / MEGABYTE).toFixed(0)} MB`;
return `${(bytes / GIGABYTE).toFixed(0)} GB`;
}
// Utilities for working with file sizes
export const BYTE = 1;
export const KILOBYTE = 1000;
export const MEGABYTE = 1000 * KILOBYTE;
export const GIGABYTE = 1000 * MEGABYTE;
// utilities for limiting accepted files
export const ACCEPT_IMAGE = 'image/*';
export const ACCEPT_VIDEO = 'video/*';
export const ACCEPT_AUDIO = 'audio/*';
export {
Root,
Trigger,
Textarea,
type FileDropZoneRootProps,
type FileDropZoneTriggerTextProps,
type FileRejectedReason
};
export { Root as FileDropZone, Trigger as FileDropZoneTrigger, Textarea as FileDropZoneTextarea };