useUploadMedia
A React hook for uploading media files (Avatar or Banner) to JustaName's storage and managing the upload process.
Usage
import { useUploadMedia } from '@justaname.id/react'
// Basic usage
function UploadMediaComponent() {
const { uploadMedia, isUploadPending } = useUploadMedia(
{ ens: 'example.eth', type: 'Avatar' }, // params
{ chainId: 1 } // hookParams (optional)
)
const handleFileUpload = async (file: File) => {
const formData = new FormData()
formData.append('file', file)
try {
const result = await uploadMedia({
form: formData,
ens: 'example.eth',
type: 'Avatar',
chainId: 1
})
console.log('Upload successful:', result.url)
} catch (err) {
console.error('Failed to upload media:', err)
}
}
return (
<div>
<input
type="file"
onChange={(e) => e.target.files?.[0] && handleFileUpload(e.target.files[0])}
disabled={isUploadPending}
/>
{isUploadPending && <p>Uploading...</p>}
</div>
)
}
Returns
UseUploadMediaResult
- An object containing:
uploadMedia
: Function to upload media files (returnsUseUploadMediaResponse
)isUploadPending
: Boolean indicating if the upload is in progress
Parameters
params?:
UseUploadMediaParams
- Optional parameters for the hook including:ens?
: ENS name (string)type?
: Media type ('Avatar' | 'Banner')chainId?
: Blockchain chain ID
hookParams?: Optional hook parameters including:
address?
: Wallet address (string)chainId?
: Blockchain chain IDsignature?
: Pre-signed signature (string)message?
: Signature message (string)
Defined in
packages/@justaname.id/react/src/lib/hooks/uploadMedia/useUploadMedia.ts:41
Last updated
Was this helpful?