@esisl
Разработчик

Как решить отображение NFTShape для NFT с превью в формате SVG?

Пишу smart-item для Decentraland
Рендеринг там делается Uniti
Сам код на TypeScript

Есть компонент NFTShape для отображения превью NFT ( https://docs.decentraland.org/creator/development-... )
Все хорошо... Хорошо если NFT-токен отдает превью в растре, например, PNG: https://opensea.io/assets/ethereum/0x06012c8cf97BE...

А вот если это NFT-токен с анимацией, например, https://opensea.io/assets/ethereum/0x495f947276749...
То превью отдается в SVG, и NFTShape его не понимает, и показывает заглушку знаком вопроса.

Это при том, что сам opensea.io через API прекрасно отдаёт URL рабочих SVG
Более того, я сейчас сижу и "руками" пишу аналог этого NFTShape, что выглядит довольно глупо.

Возможно, кто-то сталкивался с проблемой?
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
Lapita12
@Lapita12
Тесты, тесты?
Для отображения NFT с превью в формате SVG на NFTShape можно использовать следующий подход:
1. Получить URL превью NFT с помощью API, например, от opensea.io.
2. Создать новый компонент, который будет отображать SVG-изображение. Для этого можно использовать стандартный компонент , но указать ему тип изображения "image/svg+xml". Например:
<img src="https://example.com/nft-preview.svg" alt="NFT preview" type="image/svg+xml">

3. Вставить созданный компонент внутрь NFTShape с помощью свойства "children". Например:
<NFTShape
  entityId="0x123456789abcdef"
  position={{ x: 5, y: 1, z: 5 }}
  rotation={{ x: 0, y: 45, z: 0 }}
>
  <img src="https://example.com/nft-preview.svg" alt="NFT preview" type="image/svg+xml">
</NFTShape>


4. Дополнительно можно добавить обработку ошибок при загрузке SVG-изображения и замену его на заглушку в случае ошибки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы