Files
cz-app/src/utils/resolve-project-submission-media.ts
2026-09-21 15:41:52 +08:00

23 lines
803 B
TypeScript

import type { ProjectSubmissionItem } from '@/types/project-submission'
import { pickMediaUrl, resolveOssUrlMap } from '@/utils/resolve-oss-media'
export async function resolveProjectSubmissionMedia(item: ProjectSubmissionItem) {
const serviceIconIds = (item.serviceTypes ?? []).map(st => st.iconUrl)
const urlMap = await resolveOssUrlMap([item.logoUrl, item.coverUrl, ...serviceIconIds])
const serviceIcons: Record<string, string> = {}
for (const st of item.serviceTypes ?? []) {
if (!st.id)
continue
const url = pickMediaUrl(st.iconUrl, urlMap)
if (url)
serviceIcons[String(st.id)] = url
}
return {
logoUrl: pickMediaUrl(item.logoUrl, urlMap) || pickMediaUrl(item.coverUrl, urlMap),
coverUrl: pickMediaUrl(item.coverUrl, urlMap),
serviceIcons,
}
}