From 35984625cff02c519c56e0450d4792ff56b338cb Mon Sep 17 00:00:00 2001 From: Illia Rudniev Date: Tue, 14 Jan 2025 16:47:01 +0200 Subject: [PATCH] feat: added csv document rendering --- apps/backoffice-v2/package.json | 4 + .../molecules/ImageEditor/ImageEditor.tsx | 9 +- .../ImageViewer/ImageViewer.SelectedImage.tsx | 7 +- .../ImageViewer/ImageViewer.ZoomModal.tsx | 15 +- apps/backoffice-v2/src/common/constants.ts | 2 - .../convert-csv-to-pdf-base64-string.ts | 36 +++++ .../src/common/utils/is-csv/is-csv.ts | 2 + .../Case/Case.Documents.Toolbar.tsx | 3 +- .../Entity/components/Case/Case.Documents.tsx | 27 ++-- .../Case/hooks/useDocuments/helpers.ts | 13 ++ .../hooks/useDocuments/useDocumentsLogic.tsx | 17 +- .../DocumentField/DocumentField.tsx | 2 + pnpm-lock.yaml | 151 +++++++++++++++++- .../workflows-service/prisma/data-migrations | 2 +- 14 files changed, 254 insertions(+), 36 deletions(-) create mode 100644 apps/backoffice-v2/src/common/utils/convert-csv-to-pdf-base64-string/convert-csv-to-pdf-base64-string.ts create mode 100644 apps/backoffice-v2/src/common/utils/is-csv/is-csv.ts create mode 100644 apps/backoffice-v2/src/pages/Entity/components/Case/hooks/useDocuments/helpers.ts diff --git a/apps/backoffice-v2/package.json b/apps/backoffice-v2/package.json index 6f0310cfca..4ff78aa076 100644 --- a/apps/backoffice-v2/package.json +++ b/apps/backoffice-v2/package.json @@ -116,6 +116,8 @@ "i18next": "^22.4.9", "i18next-browser-languagedetector": "^7.0.1", "i18next-http-backend": "^2.1.1", + "jspdf": "^2.5.2", + "jspdf-autotable": "^3.8.4", "leaflet": "^1.9.4", "libphonenumber-js": "^1.10.49", "lodash-es": "^4.17.21", @@ -123,6 +125,7 @@ "lucide-react": "0.445.0", "match-sorter": "^6.3.1", "msw": "^1.0.0", + "papaparse": "^5.5.1", "posthog-js": "^1.154.2", "qs": "^6.11.2", "react": "^18.2.0", @@ -172,6 +175,7 @@ "@types/leaflet": "^1.9.3", "@types/lodash-es": "^4.17.12", "@types/node": "^18.11.13", + "@types/papaparse": "^5.3.15", "@types/qs": "^6.9.7", "@types/react": "^18.0.14", "@types/react-dom": "^18.0.5", diff --git a/apps/backoffice-v2/src/common/components/molecules/ImageEditor/ImageEditor.tsx b/apps/backoffice-v2/src/common/components/molecules/ImageEditor/ImageEditor.tsx index d6e561b997..c7546f0077 100644 --- a/apps/backoffice-v2/src/common/components/molecules/ImageEditor/ImageEditor.tsx +++ b/apps/backoffice-v2/src/common/components/molecules/ImageEditor/ImageEditor.tsx @@ -1,5 +1,6 @@ import { FunctionComponentWithChildren } from '@/common/types'; import { ctw } from '@/common/utils/ctw/ctw'; +import { isCsv } from '@/common/utils/is-csv/is-csv'; import { isPdf } from '@/common/utils/is-pdf/is-pdf'; import { ComponentProps } from 'react'; import ReactCrop, { Crop } from 'react-image-crop'; @@ -30,7 +31,7 @@ export const ImageEditor: FunctionComponentWithChildren = ({ = ({ contentStyle={{ width: '100%', height: '100%', - display: !isPdf(image) ? 'block' : 'flex', + display: !isPdf(image) && !isCsv(image) ? 'block' : 'flex', }} > div]:!w-full', { - 'flex flex-row [&>div]:min-h-[600px]': isPdf(image), + 'flex flex-row [&>div]:min-h-[600px]': isPdf(image) || isCsv(image), })} >
= ({ hideTitle {...rest} > - {isPdf(selectedImage) && ( + {(isPdf(selectedImage) || isCsv(selectedImage)) && (