diff --git a/src/components/OffsetOrder.tsx b/src/components/OffsetOrder.tsx
index 093f67e..bff8c37 100644
--- a/src/components/OffsetOrder.tsx
+++ b/src/components/OffsetOrder.tsx
@@ -1,6 +1,9 @@
import React, { useState, useEffect } from 'react';
import { Check, AlertCircle, ArrowLeft, Loader2, Globe2, TreePine, Waves, Factory, Wind, X } from 'lucide-react';
+<<<<<<< HEAD
import { motion, AnimatePresence } from 'framer-motion';
+=======
+>>>>>>> 96496350ee59fb2fd226eb340094130203514ab8
import { createOffsetOrder, getPortfolios } from '../api/wrenClient';
import type { CurrencyCode, OffsetOrder as OffsetOrderType, Portfolio, OffsetProject } from '../types';
import { currencies, formatCurrency, getCurrencyByCode } from '../utils/currencies';
@@ -56,6 +59,9 @@ export function OffsetOrder({ tons, monetaryAmount, onBack, calculatorType }: Pr
company: '',
message: `I would like to offset ${tons.toFixed(2)} tons of CO2 from my yacht's ${calculatorType} emissions.`
});
+
+ // lightbox state
+ const [selectedProject, setSelectedProject] = useState(null);
useEffect(() => {
if (!config.wrenApiKey) {
@@ -66,6 +72,19 @@ export function OffsetOrder({ tons, monetaryAmount, onBack, calculatorType }: Pr
fetchPortfolio();
}, []);
+// handle Escape key to close lightbox
+useEffect(() => {
+ const onKey = (e: KeyboardEvent) => {
+ if (e.key === 'Escape') setSelectedProject(null);
+ };
+ if (selectedProject) {
+ document.addEventListener('keydown', onKey);
+ }
+ return () => {
+ document.removeEventListener('keydown', onKey);
+ };
+}, [selectedProject]);
+
const fetchPortfolio = async () => {
try {
const allPortfolios = await getPortfolios();
@@ -322,6 +341,7 @@ export function OffsetOrder({ tons, monetaryAmount, onBack, calculatorType }: Pr
{portfolio.projects && portfolio.projects.length > 0 && (
+<<<<<<< HEAD
setSelectedProject(project)}
>
+=======
+
+ {portfolio.projects.map((project) => (
+
setSelectedProject(project)}
+ className="cursor-pointer bg-gray-50 rounded-lg p-4 hover:shadow-md transition-shadow"
+>
+>>>>>>> 96496350ee59fb2fd226eb340094130203514ab8
@@ -378,12 +407,56 @@ export function OffsetOrder({ tons, monetaryAmount, onBack, calculatorType }: Pr
)}
+<<<<<<< HEAD
+=======
+ {/* lightbox modal */}
+ {selectedProject && (
+ setSelectedProject(null)}
+ >
+
e.stopPropagation()}
+ >
+
+
+ {selectedProject.name}
+
+ {selectedProject.imageUrl && (
+

+ )}
+
+ {selectedProject.description}
+
+
+ Type:
+ {selectedProject.type}
+
+
+ Price per ton:
+ ${selectedProject.pricePerTon.toFixed(2)}
+
+
+
+ )}
+
+>>>>>>> 96496350ee59fb2fd226eb340094130203514ab8
Portfolio Price per Ton:
{renderPortfolioPrice(portfolio)}