diff --git a/components/collections/creation/UploadDetails.tsx b/components/collections/creation/UploadDetails.tsx index d8425e4..a311755 100644 --- a/components/collections/creation/UploadDetails.tsx +++ b/components/collections/creation/UploadDetails.tsx @@ -140,10 +140,22 @@ export const UploadDetails = ({ onChange }: UploadDetailsProps) => { let reader: FileReader for (let i = 0; i < event.target.files.length; i++) { reader = new FileReader() - reader.onload = (e) => { + reader.onload = async (e) => { if (!e.target?.result) return toast.error('Error parsing file.') if (!event.target.files) return toast.error('No files selected.') const metadataFile = new File([e.target.result], event.target.files[i].name, { type: 'application/json' }) + try { + const parsedMetadata = JSON.parse(await metadataFile.text()) + if (!parsedMetadata || typeof parsedMetadata !== 'object') { + event.target.value = '' + setMetadataFilesArray([]) + return toast.error(`Invalid metadata file: ${metadataFile.name}`) + } + } catch (error) { + event.target.value = '' + setMetadataFilesArray([]) + return toast.error(`Invalid metadata file: ${metadataFile.name}`) + } files.push(metadataFile) } reader.readAsText(event.target.files[i], 'utf8') diff --git a/package.json b/package.json index be72cb3..ef8a1c6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "stargaze-studio", - "version": "0.2.5", + "version": "0.2.6", "workspaces": [ "packages/*" ],