+ {position} +
++ {location} +
+{`${startDate} - ${endDate}`}
+ +-
+ {responsibilities.map((responsibility) => {
+ return (
+
- + {responsibility} + + ); + })} +
+ {institution} +
++ Issued {dateReceived} +
++ {description} +
++ {location} +
+{`${startDate} - ${endDate}`}
+ +
{institution}
diff --git a/src/components/ui/certificate-image.tsx b/src/components/ui/certificate-image.tsx
new file mode 100644
index 0000000..1731b3a
--- /dev/null
+++ b/src/components/ui/certificate-image.tsx
@@ -0,0 +1,64 @@
+'use client';
+
+import { useMemo, useState } from 'react';
+import Image from 'next/image';
+import Lightbox from 'yet-another-react-lightbox';
+import 'yet-another-react-lightbox/styles.css';
+
+interface CertificateImageProps {
+ src: string;
+ alt: string;
+ title: string;
+}
+
+export default function CertificateImage({
+ src,
+ alt,
+ title,
+}: CertificateImageProps) {
+ const [open, setOpen] = useState(false);
+ const slides = useMemo(
+ () => [
+ {
+ src,
+ alt,
+ width: 1250,
+ height: 830,
+ },
+ ],
+ [src, alt],
+ );
+
+ const handleClick = () => setOpen(true);
+ const handleClose = () => setOpen(false);
+
+ return (
+ <>
+
+
+