Spaces:
Sleeping
Sleeping
| export const formattedFileSize = (size: number): string => { | |
| if (size < 1024 * 1024) { | |
| return `${(size / 1024).toFixed(2)}KB`; | |
| } | |
| if (size < 1024 * 1024 * 1024) { | |
| return `${(size / 1024 / 1024).toFixed(2)}MB`; | |
| } | |
| return `${(size / 1024 / 1024 / 1024).toFixed(2)}GB`; | |
| }; | |
| export function isMobileDevice() { | |
| return ( | |
| /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || | |
| window.innerWidth <= 768 | |
| ); | |
| } | |
| export function throttle<T extends (...args: any[]) => any>(fn: T, delay: number): T { | |
| let lastTime = 0; | |
| return function (this: any, ...args: Parameters<T>) { | |
| const now = Date.now(); | |
| if (now - lastTime >= delay) { | |
| fn.apply(this, args); | |
| lastTime = now; | |
| } | |
| } as T; | |
| } | |