import { Anchor, Badge, Button, Code, Group, Paper, ScrollArea, Skeleton, Stack, Table, Text, Title } from "@mantine/core"
import { ASSET_STATUS_COLORS, VARIANT_STATUS_COLORS } from "../../config/dashboard.config"
import { formatDateTime } from "../../lib/format-date"
import type { AssetDetailPanelProps } from "./types/asset-detail-panel-props.type"
/**
* Детали выбранного asset и его variants.
*
* Используется для:
* - отображения source metadata
* - отображения статусов generated variants
*/
export const AssetDetailPanel = (props: AssetDetailPanelProps) => {
const { onCreateVersion, onGenerateVariants, overview, publicId } = props
const { asset, variants } = overview
if (!publicId) {
return (
Asset detail
Выберите asset из таблицы, чтобы увидеть source URL и variants.
)
}
return (
Asset detail
{publicId}
{asset ? (
{asset.status}
) : null}
{overview.isLoading ? (
) : asset ? (
Source URL
{asset.sourceUrl}
v{asset.currentVersion}
{asset.sourceHost}
updated {formatDateTime(asset.updatedAt)}
Variants
{variants.length}
{variants.length > 0 ? (
Preset
Format
Size
Status
URL
{variants.map((variant) => (
{variant.preset}
{variant.format}
{variant.width}x{variant.height || "auto"} q{variant.quality}
{variant.status}
open
))}
) : (
Variants для текущей версии пока не созданы.
)}
) : (
Asset не найден или ещё загружается.
)}
)
}