Implement company provisioning codes and session tweaks
This commit is contained in:
parent
0fb9bf59b2
commit
2cba553efa
28 changed files with 1407 additions and 534 deletions
|
|
@ -13,7 +13,7 @@ type Uploaded = { storageId: string; name: string; size?: number; type?: string;
|
|||
export function Dropzone({
|
||||
onUploaded,
|
||||
maxFiles = 5,
|
||||
maxSize = 10 * 1024 * 1024,
|
||||
maxSize = 5 * 1024 * 1024,
|
||||
multiple = true,
|
||||
className,
|
||||
}: {
|
||||
|
|
@ -32,7 +32,9 @@ export function Dropzone({
|
|||
const list = Array.from(files).slice(0, maxFiles);
|
||||
const uploaded: Uploaded[] = [];
|
||||
for (const file of list) {
|
||||
if (file.size > maxSize) continue;
|
||||
if (file.size > maxSize) {
|
||||
continue;
|
||||
}
|
||||
const url = await generateUrl({});
|
||||
const id = `${file.name}-${file.size}-${Date.now()}`;
|
||||
const localPreview = file.type.startsWith("image/") ? URL.createObjectURL(file) : undefined;
|
||||
|
|
@ -54,16 +56,28 @@ export function Dropzone({
|
|||
if (res?.storageId) {
|
||||
uploaded.push({ storageId: res.storageId, name: file.name, size: file.size, type: file.type, previewUrl: localPreview });
|
||||
setItems((prev) => prev.map((it) => (it.id === id ? { ...it, progress: 100, status: "done" } : it)));
|
||||
setTimeout(() => {
|
||||
setItems((prev) => prev.filter((it) => it.id !== id));
|
||||
}, 600);
|
||||
} else {
|
||||
setItems((prev) => prev.map((it) => (it.id === id ? { ...it, status: "error" } : it)));
|
||||
setTimeout(() => {
|
||||
setItems((prev) => prev.filter((it) => it.id !== id));
|
||||
}, 1200);
|
||||
}
|
||||
} catch {
|
||||
setItems((prev) => prev.map((it) => (it.id === id ? { ...it, status: "error" } : it)));
|
||||
setTimeout(() => {
|
||||
setItems((prev) => prev.filter((it) => it.id !== id));
|
||||
}, 1200);
|
||||
}
|
||||
resolve();
|
||||
};
|
||||
xhr.onerror = () => {
|
||||
setItems((prev) => prev.map((it) => (it.id === id ? { ...it, status: "error" } : it)));
|
||||
setTimeout(() => {
|
||||
setItems((prev) => prev.filter((it) => it.id !== id));
|
||||
}, 1200);
|
||||
resolve();
|
||||
};
|
||||
xhr.send(file);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue