diff --git a/.env.example b/.env.example index 2531e6c..88228a6 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ -APP_VERSION=0.4.1 +APP_VERSION=0.4.2 NEXT_PUBLIC_PINATA_ENDPOINT_URL=https://api.pinata.cloud/pinning/pinFileToIPFS NEXT_PUBLIC_SG721_CODE_ID=793 diff --git a/components/AssetsPreview.tsx b/components/AssetsPreview.tsx index a6f88e3..5803db4 100644 --- a/components/AssetsPreview.tsx +++ b/components/AssetsPreview.tsx @@ -96,6 +96,18 @@ export const AssetsPreview = ({ assetFilesArray, updateMetadataFileIndex }: Asse /> )} + + {getAssetType(assetSource.name) === 'html' && ( +
+ html_icon + {assetSource.name.toLowerCase()} +
+ )} )) diff --git a/components/MetadataFormGroup.tsx b/components/MetadataFormGroup.tsx index 47c5b96..1f4bee7 100644 --- a/components/MetadataFormGroup.tsx +++ b/components/MetadataFormGroup.tsx @@ -1,7 +1,7 @@ /* eslint-disable eslint-comments/disable-enable-pair */ /* eslint-disable jsx-a11y/media-has-caption */ import type { ReactNode } from 'react' -import { useMemo } from 'react' +import { useEffect, useMemo, useState } from 'react' import { getAssetType } from 'utils/getAssetType' export interface MetadataFormGroupProps { @@ -13,6 +13,7 @@ export interface MetadataFormGroupProps { export const MetadataFormGroup = (props: MetadataFormGroupProps) => { const { title, subtitle, relatedAsset, children } = props + const [htmlContents, setHtmlContents] = useState('') const videoPreview = useMemo( () => ( @@ -40,6 +41,17 @@ export const MetadataFormGroup = (props: MetadataFormGroupProps) => { [relatedAsset], ) + useEffect(() => { + if (getAssetType(relatedAsset?.name as string) !== 'html') return + const reader = new FileReader() + reader.onload = (e) => { + if (typeof e.target?.result === 'string') { + setHtmlContents(e.target.result) + } + } + reader.readAsText(new Blob([relatedAsset as File])) + }, [relatedAsset]) + return (
@@ -54,6 +66,9 @@ export const MetadataFormGroup = (props: MetadataFormGroupProps) => { {getAssetType(relatedAsset.name) === 'image' && ( preview )} + {getAssetType(relatedAsset.name) === 'html' && ( +