Omit file extensions during metadata file upload (#32)

* Upload metadata files without an extension

* Display success toast on metadata updates
This commit is contained in:
Serkan Reis 2022-08-10 09:57:20 +03:00 committed by GitHub
parent b9c22ea425
commit 823b8c04f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 8 deletions

View File

@ -4,6 +4,7 @@
/* eslint-disable @typescript-eslint/restrict-template-expressions */ /* eslint-disable @typescript-eslint/restrict-template-expressions */
import { useMetadataAttributesState } from 'components/forms/MetadataAttributes.hooks' import { useMetadataAttributesState } from 'components/forms/MetadataAttributes.hooks'
import { useEffect, useState } from 'react' import { useEffect, useState } from 'react'
import toast from 'react-hot-toast'
import Button from './Button' import Button from './Button'
import { TextInput } from './forms/FormInput' import { TextInput } from './forms/FormInput'
@ -123,6 +124,7 @@ export const MetadataModal = (props: MetadataModalProps) => {
const editedMetadataFile = new File([metadataFileBlob], metadataFile.name, { type: 'application/json' }) const editedMetadataFile = new File([metadataFileBlob], metadataFile.name, { type: 'application/json' })
props.updateMetadata(editedMetadataFile) props.updateMetadata(editedMetadataFile)
toast.success('Metadata updated successfully.')
console.log(editedMetadataFile) console.log(editedMetadataFile)
} }

View File

@ -171,9 +171,13 @@ const CollectionCreationPage: NextPage = () => {
const metadataFileBlob = new Blob([JSON.stringify(data)], { const metadataFileBlob = new Blob([JSON.stringify(data)], {
type: 'application/json', type: 'application/json',
}) })
const updatedMetadataFile = new File([metadataFileBlob], uploadDetails.metadataFiles[i].name, { const updatedMetadataFile = new File(
type: 'application/json', [metadataFileBlob],
}) uploadDetails.metadataFiles[i].name.substring(0, uploadDetails.metadataFiles[i].name.lastIndexOf('.')),
{
type: 'application/json',
},
)
fileArray.push(updatedMetadataFile) fileArray.push(updatedMetadataFile)
} }
reader.onloadend = () => { reader.onloadend = () => {
@ -199,21 +203,21 @@ const CollectionCreationPage: NextPage = () => {
const checkUploadDetails = () => { const checkUploadDetails = () => {
if (!uploadDetails) { if (!uploadDetails) {
throw new Error('Please upload asset and metadata') throw new Error('Please select assets and metadata')
} }
if (uploadDetails.assetFiles.length === 0) { if (uploadDetails.assetFiles.length === 0) {
throw new Error('Please upload assets') throw new Error('Please select the assets')
} }
if (uploadDetails.metadataFiles.length === 0) { if (uploadDetails.metadataFiles.length === 0) {
throw new Error('Please upload metadatas') throw new Error('Please select the metadata files')
} }
compareFileArrays(uploadDetails.assetFiles, uploadDetails.metadataFiles) compareFileArrays(uploadDetails.assetFiles, uploadDetails.metadataFiles)
if (uploadDetails.uploadService === 'nft-storage') { if (uploadDetails.uploadService === 'nft-storage') {
if (uploadDetails.nftStorageApiKey === '') { if (uploadDetails.nftStorageApiKey === '') {
throw new Error('Please enter NFT Storage api key') throw new Error('Please enter a valid NFT Storage API key')
} }
} else if (uploadDetails.pinataApiKey === '' || uploadDetails.pinataSecretKey === '') { } else if (uploadDetails.pinataApiKey === '' || uploadDetails.pinataSecretKey === '') {
throw new Error('Please enter Pinata api key and secret key') throw new Error('Please enter Pinata API and secret keys')
} }
} }