import type { Document, DocumentType } from './types'; import { unique } from 'radash'; export function combineDocuments({ documentTypes, documents, }: { documentTypes: DocumentType[]; documents: Document[]; }) { if (!documents.length) { return documentTypes.map((x) => ({ ...(x as Document), canUpload: true })); } const res = unique(documents, ({ documentTypeId }) => documentTypeId).map((document) => ({ ...document, canUpload: documentTypes.some( (documentType) => documentType.documentTypeId === document.documentTypeId ), })); documentTypes.forEach((documentType) => { if (!res.some((document) => document.documentTypeId === documentType.documentTypeId)) { res.push({ ...documentType, canUpload: true }); } }); return res; } export type CombinedDocuments = ReturnType;