From 79bb24d33a86349b55148171097c46f0e62553aa Mon Sep 17 00:00:00 2001 From: Serkan Reis Date: Sun, 12 Nov 2023 21:18:04 +0300 Subject: [PATCH] Address the issue with #s in uploaded file names --- components/MetadataInput.tsx | 10 +++++++--- components/MetadataModal.tsx | 4 +++- components/badges/creation/BadgeDetails.tsx | 4 +++- components/badges/creation/ImageUploadDetails.tsx | 2 +- .../collections/creation/CollectionDetails.tsx | 4 +++- components/collections/creation/UploadDetails.tsx | 12 +++++++++--- components/openEdition/CollectionDetails.tsx | 4 +++- components/openEdition/ImageUploadDetails.tsx | 4 ++-- .../openEdition/OffChainMetadataUploadDetails.tsx | 10 +++++++--- .../openEdition/OnChainMetadataInputDetails.tsx | 4 +++- .../openEdition/OpenEditionMinterCreator.tsx | 10 ++++++---- pages/collections/create.tsx | 14 ++++++-------- 12 files changed, 53 insertions(+), 29 deletions(-) diff --git a/components/MetadataInput.tsx b/components/MetadataInput.tsx index 7f53f9b..33f7705 100644 --- a/components/MetadataInput.tsx +++ b/components/MetadataInput.tsx @@ -20,7 +20,9 @@ export interface MetadataInputProps { export const MetadataInput = (props: MetadataInputProps) => { const emptyMetadataFile = new File( [JSON.stringify({})], - `${props.selectedAssetFile?.name.substring(0, props.selectedAssetFile?.name.lastIndexOf('.'))}.json`, + `${props.selectedAssetFile?.name + .substring(0, props.selectedAssetFile?.name.lastIndexOf('.')) + .replaceAll('#', '')}.json`, { type: 'application/json' }, ) @@ -142,8 +144,10 @@ export const MetadataInput = (props: MetadataInputProps) => { const editedMetadataFile = new File( [metadataFileBlob], props.selectedMetadataFile?.name - ? props.selectedMetadataFile?.name - : `${props.selectedAssetFile?.name.substring(0, props.selectedAssetFile?.name.lastIndexOf('.'))}.json`, + ? props.selectedMetadataFile?.name.replaceAll('#', '') + : `${props.selectedAssetFile?.name + .substring(0, props.selectedAssetFile?.name.lastIndexOf('.')) + .replaceAll('#', '')}.json`, { type: 'application/json' }, ) props.updateMetadataToUpload(editedMetadataFile) diff --git a/components/MetadataModal.tsx b/components/MetadataModal.tsx index d36e6b6..c28390a 100644 --- a/components/MetadataModal.tsx +++ b/components/MetadataModal.tsx @@ -127,7 +127,9 @@ export const MetadataModal = (props: MetadataModalProps) => { type: 'application/json', }) - const editedMetadataFile = new File([metadataFileBlob], metadataFile.name, { type: 'application/json' }) + const editedMetadataFile = new File([metadataFileBlob], metadataFile.name.replaceAll('#', ''), { + type: 'application/json', + }) props.updateMetadata(editedMetadataFile) toast.success('Metadata updated successfully.') } diff --git a/components/badges/creation/BadgeDetails.tsx b/components/badges/creation/BadgeDetails.tsx index a16f5ba..7c29db9 100644 --- a/components/badges/creation/BadgeDetails.tsx +++ b/components/badges/creation/BadgeDetails.tsx @@ -175,7 +175,9 @@ export const BadgeDetails = ({ metadataSize, onChange, uploadMethod }: BadgeDeta reader.onload = (e) => { if (!event.target.files) return toast.error('No file selected.') if (!e.target?.result) return toast.error('Error parsing file.') - selectedFile = new File([e.target.result], event.target.files[0].name, { type: 'application/json' }) + selectedFile = new File([e.target.result], event.target.files[0].name.replaceAll('#', ''), { + type: 'application/json', + }) } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (event.target.files[0]) reader.readAsArrayBuffer(event.target.files[0]) diff --git a/components/badges/creation/ImageUploadDetails.tsx b/components/badges/creation/ImageUploadDetails.tsx index a6b1851..d62dad5 100644 --- a/components/badges/creation/ImageUploadDetails.tsx +++ b/components/badges/creation/ImageUploadDetails.tsx @@ -79,7 +79,7 @@ export const ImageUploadDetails = ({ onChange, mintRule }: ImageUploadDetailsPro reader.onload = (e) => { if (!event.target.files) return toast.error('No file selected.') if (!e.target?.result) return toast.error('Error parsing file.') - selectedFile = new File([e.target.result], event.target.files[0].name, { type: 'image/jpg' }) + selectedFile = new File([e.target.result], event.target.files[0].name.replaceAll('#', ''), { type: 'image/jpg' }) } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (event.target.files[0]) reader.readAsArrayBuffer(event.target.files[0]) diff --git a/components/collections/creation/CollectionDetails.tsx b/components/collections/creation/CollectionDetails.tsx index 0bc59e1..6e039e8 100644 --- a/components/collections/creation/CollectionDetails.tsx +++ b/components/collections/creation/CollectionDetails.tsx @@ -142,7 +142,9 @@ export const CollectionDetails = ({ reader.onload = (e) => { if (!e.target?.result) return toast.error('Error parsing file.') if (!event.target.files) return toast.error('No files selected.') - const imageFile = new File([e.target.result], event.target.files[0].name, { type: 'image/jpg' }) + const imageFile = new File([e.target.result], event.target.files[0].name.replaceAll('#', ''), { + type: 'image/jpg', + }) setCoverImage(imageFile) } reader.readAsArrayBuffer(event.target.files[0]) diff --git a/components/collections/creation/UploadDetails.tsx b/components/collections/creation/UploadDetails.tsx index 694ee47..1720e83 100644 --- a/components/collections/creation/UploadDetails.tsx +++ b/components/collections/creation/UploadDetails.tsx @@ -194,7 +194,9 @@ export const UploadDetails = ({ reader.onload = (e) => { if (!e.target?.result) return toast.error('Error parsing file.') if (!event.target.files) return toast.error('No files selected.') - const assetFile = new File([e.target.result], event.target.files[i].name, { type: 'image/jpg' }) + const assetFile = new File([e.target.result], event.target.files[i].name.replaceAll('#', ''), { + type: 'image/jpg', + }) files.push(assetFile) } reader.readAsArrayBuffer(event.target.files[i]) @@ -283,7 +285,9 @@ export const UploadDetails = ({ 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' }) + const metadataFile = new File([e.target.result], event.target.files[i].name.replaceAll('#', ''), { + type: 'application/json', + }) files.push(metadataFile) try { const parsedMetadata = JSON.parse(await metadataFile.text()) @@ -359,7 +363,9 @@ export const UploadDetails = ({ reader.onload = (e) => { if (!e.target?.result) return toast.error('Error parsing file.') if (!event.target.files) return toast.error('No files selected.') - const thumbnailFile = new File([e.target.result], event.target.files[i].name, { type: 'image/jpg' }) + const thumbnailFile = new File([e.target.result], event.target.files[i].name.replaceAll('#', ''), { + type: 'image/jpg', + }) files.push(thumbnailFile) } reader.readAsArrayBuffer(event.target.files[i]) diff --git a/components/openEdition/CollectionDetails.tsx b/components/openEdition/CollectionDetails.tsx index 8b8da3d..1ed1014 100644 --- a/components/openEdition/CollectionDetails.tsx +++ b/components/openEdition/CollectionDetails.tsx @@ -129,7 +129,9 @@ export const CollectionDetails = ({ reader.onload = (e) => { if (!e.target?.result) return toast.error('Error parsing file.') if (!event.target.files) return toast.error('No files selected.') - const imageFile = new File([e.target.result], event.target.files[0].name, { type: 'image/jpg' }) + const imageFile = new File([e.target.result], event.target.files[0].name.replaceAll('#', ''), { + type: 'image/jpg', + }) setCoverImage(imageFile) } reader.readAsArrayBuffer(event.target.files[0]) diff --git a/components/openEdition/ImageUploadDetails.tsx b/components/openEdition/ImageUploadDetails.tsx index f37f709..aa9509a 100644 --- a/components/openEdition/ImageUploadDetails.tsx +++ b/components/openEdition/ImageUploadDetails.tsx @@ -98,7 +98,7 @@ export const ImageUploadDetails = ({ onChange, importedImageUploadDetails }: Ima reader.onload = (e) => { if (!event.target.files) return toast.error('No file selected.') if (!e.target?.result) return toast.error('Error parsing file.') - selectedFile = new File([e.target.result], event.target.files[0].name, { type: 'image/jpg' }) + selectedFile = new File([e.target.result], event.target.files[0].name.replaceAll('#', ''), { type: 'image/jpg' }) } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (event.target.files[0]) reader.readAsArrayBuffer(event.target.files[0]) @@ -121,7 +121,7 @@ export const ImageUploadDetails = ({ onChange, importedImageUploadDetails }: Ima reader.onload = (e) => { if (!event.target.files) return toast.error('No file selected.') if (!e.target?.result) return toast.error('Error parsing file.') - selectedFile = new File([e.target.result], event.target.files[0].name, { type: 'image/*' }) + selectedFile = new File([e.target.result], event.target.files[0].name.replaceAll('#', ''), { type: 'image/*' }) } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (event.target.files[0]) reader.readAsArrayBuffer(event.target.files[0]) diff --git a/components/openEdition/OffChainMetadataUploadDetails.tsx b/components/openEdition/OffChainMetadataUploadDetails.tsx index df1f81c..5d2782d 100644 --- a/components/openEdition/OffChainMetadataUploadDetails.tsx +++ b/components/openEdition/OffChainMetadataUploadDetails.tsx @@ -126,7 +126,9 @@ export const OffChainMetadataUploadDetails = ({ reader.onload = (e) => { if (!e.target?.result) return toast.error('Error parsing file.') if (!event.target.files) return toast.error('No files selected.') - const assetFile = new File([e.target.result], event.target.files[i].name, { type: 'image/jpg' }) + const assetFile = new File([e.target.result], event.target.files[i].name.replaceAll('#', ''), { + type: 'image/jpg', + }) files.push(assetFile) } reader.readAsArrayBuffer(event.target.files[i]) @@ -152,7 +154,9 @@ export const OffChainMetadataUploadDetails = ({ 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' }) + const metadataFile = new File([e.target.result], event.target.files[i].name.replaceAll('#', ''), { + type: 'application/json', + }) files.push(metadataFile) try { const parsedMetadata = JSON.parse(await metadataFile.text()) @@ -188,7 +192,7 @@ export const OffChainMetadataUploadDetails = ({ reader.onload = (e) => { if (!event.target.files) return toast.error('No file selected.') if (!e.target?.result) return toast.error('Error parsing file.') - selectedFile = new File([e.target.result], event.target.files[0].name, { type: 'image/*' }) + selectedFile = new File([e.target.result], event.target.files[0].name.replaceAll('#', ''), { type: 'image/*' }) } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (event.target.files[0]) reader.readAsArrayBuffer(event.target.files[0]) diff --git a/components/openEdition/OnChainMetadataInputDetails.tsx b/components/openEdition/OnChainMetadataInputDetails.tsx index 8a76ace..2a8f88f 100644 --- a/components/openEdition/OnChainMetadataInputDetails.tsx +++ b/components/openEdition/OnChainMetadataInputDetails.tsx @@ -143,7 +143,9 @@ export const OnChainMetadataInputDetails = ({ reader.onload = (e) => { if (!event.target.files) return toast.error('No file selected.') if (!e.target?.result) return toast.error('Error parsing file.') - selectedFile = new File([e.target.result], event.target.files[0].name, { type: 'application/json' }) + selectedFile = new File([e.target.result], event.target.files[0].name.replaceAll('#', ''), { + type: 'application/json', + }) } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (event.target.files[0]) reader.readAsArrayBuffer(event.target.files[0]) diff --git a/components/openEdition/OpenEditionMinterCreator.tsx b/components/openEdition/OpenEditionMinterCreator.tsx index 533157d..9a1a9d5 100644 --- a/components/openEdition/OpenEditionMinterCreator.tsx +++ b/components/openEdition/OpenEditionMinterCreator.tsx @@ -529,10 +529,12 @@ export const OpenEditionMinterCreator = ({ console.log('Name: ', (offChainMetadataUploadDetails.openEditionMinterMetadataFile as File).name) const updatedMetadataFile = new File( [metadataFileBlob], - (offChainMetadataUploadDetails.openEditionMinterMetadataFile as File).name.substring( - 0, - (offChainMetadataUploadDetails.openEditionMinterMetadataFile as File).name.lastIndexOf('.'), - ), + (offChainMetadataUploadDetails.openEditionMinterMetadataFile as File).name + .substring( + 0, + (offChainMetadataUploadDetails.openEditionMinterMetadataFile as File).name.lastIndexOf('.'), + ) + .replaceAll('#', ''), { type: 'application/json', }, diff --git a/pages/collections/create.tsx b/pages/collections/create.tsx index 4a41fc9..22544f7 100644 --- a/pages/collections/create.tsx +++ b/pages/collections/create.tsx @@ -809,10 +809,9 @@ const CollectionCreationPage: NextPage = () => { const updatedMetadataFile = new File( [metadataFileBlob], - uploadDetails.metadataFiles[i].name.substring( - 0, - uploadDetails.metadataFiles[i].name.lastIndexOf('.'), - ), + uploadDetails.metadataFiles[i].name + .substring(0, uploadDetails.metadataFiles[i].name.lastIndexOf('.')) + .replaceAll('#', ''), { type: 'application/json', }, @@ -869,10 +868,9 @@ const CollectionCreationPage: NextPage = () => { console.log('Name: ', (uploadDetails.baseMinterMetadataFile as File).name) const updatedMetadataFile = new File( [metadataFileBlob], - (uploadDetails.baseMinterMetadataFile as File).name.substring( - 0, - (uploadDetails.baseMinterMetadataFile as File).name.lastIndexOf('.'), - ), + (uploadDetails.baseMinterMetadataFile as File).name + .substring(0, (uploadDetails.baseMinterMetadataFile as File).name.lastIndexOf('.')) + .replaceAll('#', ''), { type: 'application/json', },