23 lines
803 B
TypeScript
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,
|
|
}
|
|
}
|