24 lines
640 B
TypeScript
24 lines
640 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 }));
|
|
}
|
|
|
|
return unique(documents, ({ documentTypeId }) => documentTypeId).map((document) => ({
|
|
...document,
|
|
canUpload: documentTypes.some(
|
|
(documentType) => documentType.documentTypeId === document.documentTypeId
|
|
),
|
|
}));
|
|
}
|
|
|
|
export type CombinedDocuments = ReturnType<typeof combineDocuments>;
|