Address the issue with #s in uploaded file names

This commit is contained in:
Serkan Reis 2023-11-12 21:18:04 +03:00
parent a0bbc0ebeb
commit 79bb24d33a
12 changed files with 53 additions and 29 deletions

View File

@ -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)

View File

@ -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.')
}

View File

@ -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])

View File

@ -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])

View File

@ -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])

View File

@ -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])

View File

@ -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])

View File

@ -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])

View File

@ -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])

View File

@ -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])

View File

@ -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',
},

View File

@ -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',
},