32 lines
863 B
TypeScript

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<typeof combineDocuments>;