This commit is contained in:
2025-11-22 01:17:25 +01:00
parent ab3faad6af
commit 7bee56b960
5 changed files with 31 additions and 38 deletions
+9 -9
View File
@@ -1,5 +1,5 @@
import { useEffect, useMemo, useState } from 'react';
import { createAssetView } from '../asset_manager';
import { resolveAssetUrl } from '../asset_manager';
type Identifier = string | number;
@@ -33,10 +33,8 @@ type EnsureAssetUrl = (
type GetAsset = (document: DocumentLike, assetType: string) => AssetLike | null;
type AssetViewLike = {
getObject: (ordinal?: number) => AssetObject | null;
getObjects: () => AssetObject[];
getPrimaryUrl: () => string | null;
getPrimaryMetadata: () => Record<string, unknown> | null;
url: string | null;
metadata: Record<string, unknown> | null;
};
interface UseAssetNavigatorOptions {
@@ -72,13 +70,15 @@ export const useAssetNavigator = ({
}, [document, assetType, getAsset]);
const view = useMemo<AssetViewLike>(
() => createAssetView(asset) as unknown as AssetViewLike,
() => ({
url: resolveAssetUrl(asset),
metadata: (asset?.metadata as Record<string, unknown> | null) || null,
}),
[asset],
);
const currentObject = view.getObject(1) || view.getObjects()[0] || null;
const currentUrl = currentObject?.url ?? view.getPrimaryUrl() ?? null;
const currentMetadata = (currentObject?.metadata ?? view.getPrimaryMetadata()) || null;
const currentUrl = view.url || null;
const currentMetadata = view.metadata || null;
const [isLoading, setIsLoading] = useState(false);