diff --git a/frontend/apps/editor3d/app/components/reusable/LightboxModal.tsx b/frontend/apps/editor3d/app/components/reusable/LightboxModal.tsx new file mode 100644 index 0000000000..6ed68e8f89 --- /dev/null +++ b/frontend/apps/editor3d/app/components/reusable/LightboxModal.tsx @@ -0,0 +1,122 @@ +import { CloseButton, Button } from "~/components"; +import { Transition } from "@headlessui/react"; +import { createPortal } from "react-dom"; +import dayjs from "dayjs"; +import { faDownToLine } from "@fortawesome/pro-solid-svg-icons"; + +interface LightboxModalProps { + isOpen: boolean; + onClose: () => void; + imageUrl?: string | null; + imageAlt?: string; + onImageError?: () => void; + title?: string; + createdAt?: string; + additionalInfo?: React.ReactNode; + downloadUrl?: string; +} + +export function LightboxModal({ + isOpen, + onClose, + imageUrl, + imageAlt = "", + onImageError, + title, + createdAt, + additionalInfo, + downloadUrl, +}: LightboxModalProps) { + return createPortal( + +
+ +
+ +
+ +
e.stopPropagation()} + > + +
+
+ {!imageUrl ? ( +
+ Image not available +
+ ) : ( + {imageAlt} + )} +
+
+
+
+ {title || "Image Generation"} +
+ {createdAt && ( +
+ Created:{" "} + {dayjs(createdAt).format("MMM D, YYYY HH:mm:ss")} +
+ )} + {additionalInfo} +
+ {downloadUrl && ( + + )} +
+
+
+
+
+
+ , + document.body, + ); +} diff --git a/frontend/apps/editor3d/app/components/signaled/TopBar/TopBar.tsx b/frontend/apps/editor3d/app/components/signaled/TopBar/TopBar.tsx index 8d2777620d..9c01ec5344 100644 --- a/frontend/apps/editor3d/app/components/signaled/TopBar/TopBar.tsx +++ b/frontend/apps/editor3d/app/components/signaled/TopBar/TopBar.tsx @@ -27,16 +27,16 @@ export const TopBar = ({ pageName }: Props) => { return ( <> -
+