/
guselnikov
/
inst
Обзор
Документация
Войти
/
guselnikov
/
inst
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
admin/src/components/post-editor/hooks/useAssetUrl.ts
38 строк
833 B
Viktor Guselnikov
first_commit
07 июл 2026, 11:54
07 июл 2026, 11:54
098126a
Код
Авторство
О чём код?
import { useEffect, useState } from 'react'; import { fetchTemplateAssetUrl, getCachedAssetUrl } from '../assetUtils'; export function useAssetUrl(assetId: string | null | undefined): string | null { const [url, setUrl] = useState<string | null>(() => assetId ? getCachedAssetUrl(assetId) : null, ); useEffect(() => { if (!assetId) { setUrl(null); return; } const cached = getCachedAssetUrl(assetId); if (cached) { setUrl(cached); return; } let active = true; void fetchTemplateAssetUrl(assetId) .then((blobUrl) => { if (active) setUrl(blobUrl); }) .catch(() => { if (active) setUrl(null); }); return () => { active = false; }; }, [assetId]); return url; } export { clearAssetCache } from '../assetUtils';