Changes
Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com>
This commit is contained in:
+24
-2
@@ -44,7 +44,22 @@ const Viewer = () => {
|
||||
toast.error('Formato inválido. Selecione .GLB, .OBJ, .STL ou .IFC');
|
||||
return;
|
||||
}
|
||||
const sizeCheck = validateModelFile(file.name, file.size, ext);
|
||||
if (!sizeCheck.ok) {
|
||||
toast.error(sizeCheck.reason!);
|
||||
return;
|
||||
}
|
||||
if (ext === 'glb') {
|
||||
try {
|
||||
const head = await file.slice(0, 16).arrayBuffer();
|
||||
const sig = validateModelFile(file.name, file.size, ext, head);
|
||||
if (!sig.ok) {
|
||||
toast.error(sig.reason!);
|
||||
return;
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('[upload] header read failed', err);
|
||||
}
|
||||
const url = URL.createObjectURL(file);
|
||||
addModel({ fileName: file.name, fileSize: file.size, url });
|
||||
toast.success(`"${file.name}" adicionado à cena`);
|
||||
@@ -53,6 +68,12 @@ const Viewer = () => {
|
||||
setConverting(true);
|
||||
try {
|
||||
const buffer = await file.arrayBuffer();
|
||||
const sig = validateModelFile(file.name, file.size, ext, buffer);
|
||||
if (!sig.ok) {
|
||||
toast.error(sig.reason!);
|
||||
if (sig.detail) console.warn('[validateModelFile]', sig.detail);
|
||||
return;
|
||||
}
|
||||
const result = ext === 'ifc'
|
||||
? await convertIFCtoGLB(buffer, file.name)
|
||||
: await convertToGLB(buffer, ext, file.name);
|
||||
@@ -60,8 +81,9 @@ const Viewer = () => {
|
||||
addModel({ fileName: result.fileName, fileSize: result.fileSize, url });
|
||||
toast.success(`"${file.name}" convertido e adicionado!`);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
toast.error(`Falha ao converter "${file.name}"`);
|
||||
console.error('[upload] conversion failed', err);
|
||||
const msg = err instanceof Error ? err.message : 'erro desconhecido';
|
||||
toast.error(`Falha ao converter "${file.name}": ${msg}`);
|
||||
} finally {
|
||||
setConverting(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user