feat: File attachments (#3031)
* stash * refactor, working in non-collab + collab editor * attachment styling * Avoid crypto require in browser * AttachmentIcon, handling unknown types * Do not allow attachment creation for file sizes over limit * Allow image as file attachment * Upload placeholder styling * lint * Refactor: Do not use placeholder for file attachmentuploads * Add loading spinner * fix: Extra paragraphs around attachments on insert * Bump editor * fix build error * Remove attachment placeholder when upload fails * Remove unused styles * fix: Attachments on shared pages * Merge fixes
This commit is contained in:
21
shared/utils/files.ts
Normal file
21
shared/utils/files.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
/**
|
||||
* Converts bytes to human readable string for display
|
||||
*
|
||||
* @param bytes filesize in bytes
|
||||
* @returns Human readable filesize as a string
|
||||
*/
|
||||
export const bytesToHumanReadable = (bytes: number) => {
|
||||
const out = ("0".repeat((bytes.toString().length * 2) % 3) + bytes).match(
|
||||
/.{3}/g
|
||||
);
|
||||
|
||||
if (!out || bytes < 1000) {
|
||||
return bytes + " Bytes";
|
||||
}
|
||||
|
||||
const f = out[1].substring(0, 2);
|
||||
|
||||
return `${Number(out[0])}${f === "00" ? "" : `.${f}`} ${
|
||||
" kMGTPEZY"[out.length]
|
||||
}B`;
|
||||
};
|
||||
Reference in New Issue
Block a user