From 89351683f1deb19c4229fd093a9ace101116a36d Mon Sep 17 00:00:00 2001 From: Donkoko Date: Thu, 2 Jan 2025 17:37:38 +0200 Subject: [PATCH 1/2] kicked off work on changing pdf generation --- .../booking/generate-booking-pdf.tsx | 229 +++++++++++++-- ...bookingId.generate-pdf.$fileName[.pdf].tsx | 261 ------------------ .../api+/bookings.$bookingId.generate-pdf.tsx | 70 +++++ 3 files changed, 269 insertions(+), 291 deletions(-) delete mode 100644 app/routes/_layout+/bookings.$bookingId.generate-pdf.$fileName[.pdf].tsx create mode 100644 app/routes/api+/bookings.$bookingId.generate-pdf.tsx diff --git a/app/components/booking/generate-booking-pdf.tsx b/app/components/booking/generate-booking-pdf.tsx index 3da3d262c..c9d491a14 100644 --- a/app/components/booking/generate-booking-pdf.tsx +++ b/app/components/booking/generate-booking-pdf.tsx @@ -1,10 +1,16 @@ -import { useState } from "react"; -import type { Asset, Booking } from "@prisma/client"; +import { useEffect, useRef, useState } from "react"; +import type { + Asset, + Booking, + Organization, + TeamMember, + User, +} from "@prisma/client"; +import { useReactToPrint } from "react-to-print"; import { Button } from "~/components/shared/button"; -import { tw } from "~/utils/tw"; +import { SERVER_URL } from "~/utils/env"; import { Dialog, DialogPortal } from "../layout/dialog"; -import { Spinner } from "../shared/spinner"; export const GenerateBookingPdf = ({ booking, @@ -17,14 +23,10 @@ export const GenerateBookingPdf = ({ }; timeStamp: number; }) => { - const [iframeLoaded, setIframeLoaded] = useState(false); const totalAssets = booking.assets.length; const url = `/bookings/${booking.id.toString()}/generate-pdf/booking-checklist-${new Date() .toISOString() .slice(0, 10)}.pdf?timeStamp=${timeStamp}`; - const handleIframeLoad = () => { - setIframeLoaded(true); - }; const handleMobileView = () => { window.location.href = url; @@ -66,28 +68,10 @@ export const GenerateBookingPdf = ({ >
- {/** Show spinner if no iframe */} - {!iframeLoaded && ( -
- -

Generating PDF...

-
- )} - {totalAssets && ( -
-