From 63126dff4cc08e30a169c75a3fb41d5356490aaf Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Fri, 26 May 2023 11:01:05 +0100 Subject: [PATCH] Basic layout of modal --- src/app/components/home/NewPortfolioModal.tsx | 100 +++++++++++++++++- src/app/globals.css | 8 ++ 2 files changed, 106 insertions(+), 2 deletions(-) diff --git a/src/app/components/home/NewPortfolioModal.tsx b/src/app/components/home/NewPortfolioModal.tsx index d8ad269..45bf516 100644 --- a/src/app/components/home/NewPortfolioModal.tsx +++ b/src/app/components/home/NewPortfolioModal.tsx @@ -1,5 +1,35 @@ import { Dialog, Transition } from "@headlessui/react"; -import { Fragment } from "react"; +import { Dispatch, Fragment, SetStateAction, useState } from "react"; + +const outcomes = [ + "Valuation Improvement", + "Increasing EPC", + "Reducing CO2 emissions", + "Energy savings", + "Nothing Specific", +]; + +// Mock Icon component +interface IconProps { + name: string; + selected: boolean; + onSelect: (name: string) => void; + className?: string; +} + +const Icon: React.FC = ({ + name, + selected, + onSelect, + className, +}: IconProps) => ( +
onSelect(name)} style={selected ? { color: "red" } : {}}> + {name} +
+); + +const hiddenInputArrows = + "[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none"; export default function NewPortfolioModal({ isOpen = false, @@ -8,6 +38,10 @@ export default function NewPortfolioModal({ isOpen?: boolean; setIsOpen: (isOpen: boolean) => void; }) { + const [portfolioName, setPortfolioName] = useState(""); + const [budget, setBudget] = useState(""); + const [selectedOutcome, setSelectedOutcome] = useState(null); + function closeModal() { setIsOpen(false); } @@ -51,7 +85,69 @@ export default function NewPortfolioModal({ > Create a new portfolio -
TeXT
+
+
+ + setPortfolioName(e.target.value)} + className="p-2 border border-gray-200 rounded-md" + /> +
+
+ +
+ £ + setBudget(e.target.value)} + onKeyDown={(e) => + (e.key === "e" || e.key === "E") && + e.preventDefault() + } + className={[ + "flex-1 p-2 bg-transparent", + hiddenInputArrows, + ].join(" ")} + /> +
+
+
+ + Select Outcome: + +
+ {outcomes.map((outcome) => ( + + ))} +
+
+