23 行
787 B
TypeScript
23 行
787 B
TypeScript
import type { PostImportRow } from '@/lib/postImportSession'
|
|
|
|
export type PostImportDisplayStatus = 'ready' | 'skipped' | 'warning'
|
|
|
|
export type PostImportBadgeValue = PostImportDisplayStatus
|
|
|
|
const hasWarnings = (row: PostImportRow): boolean =>
|
|
Object.values (row.fieldWarnings ?? { }).some (messages => messages.length > 0)
|
|
|| row.baseWarnings.length > 0
|
|
|
|
export const displayPostImportStatus = (
|
|
row: PostImportRow,
|
|
): PostImportDisplayStatus | null =>
|
|
(row.skipReason === 'existing' || row.importStatus === 'skipped')
|
|
? 'skipped'
|
|
: ((Object.keys (row.validationErrors ?? { }).length > 0
|
|
|| row.importStatus === 'failed'
|
|
|| row.importStatus === 'created')
|
|
? null
|
|
: ((hasWarnings (row) || row.status === 'warning')
|
|
? 'warning'
|
|
: 'ready'))
|