diff --git a/src/Corporation/ui/ProductElem.tsx b/src/Corporation/ui/ProductElem.tsx index 21b91074c..1481a9c55 100644 --- a/src/Corporation/ui/ProductElem.tsx +++ b/src/Corporation/ui/ProductElem.tsx @@ -6,6 +6,7 @@ import { DiscontinueProductModal } from "./modals/DiscontinueProductModal"; import { LimitProductProductionModal } from "./modals/LimitProductProductionModal"; import { SellProductModal } from "./modals/SellProductModal"; import { ProductMarketTaModal } from "./modals/ProductMarketTaModal"; +import { CancelProductModal } from "./modals/CancelProductModal"; import { numeralWrapper } from "../../ui/numeralFormat"; @@ -32,6 +33,7 @@ export function ProductElem(props: IProductProps): React.ReactElement { const [sellOpen, setSellOpen] = useState(false); const [limitOpen, setLimitOpen] = useState(false); const [discontinueOpen, setDiscontinueOpen] = useState(false); + const [cancelOpen, setCancelOpen] = useState(false); const [marketTaOpen, setMarketTaOpen] = useState(false); const city = props.city; const product = props.product; @@ -111,6 +113,13 @@ export function ProductElem(props: IProductProps): React.ReactElement {
{numeralWrapper.format(product.prog, "0.00")}% complete + + setCancelOpen(false)} + /> ) : ( <> @@ -171,6 +180,13 @@ export function ProductElem(props: IProductProps): React.ReactElement { Est. Market Price: {numeralWrapper.formatMoney(product.pCost)} + + setDiscontinueOpen(false)} + /> )} @@ -186,14 +202,6 @@ export function ProductElem(props: IProductProps): React.ReactElement { open={limitOpen} onClose={() => setLimitOpen(false)} /> - - - setDiscontinueOpen(false)} - /> {division.hasResearch("Market-TA.I") && ( <> diff --git a/src/Corporation/ui/modals/CancelProductModal.tsx b/src/Corporation/ui/modals/CancelProductModal.tsx new file mode 100644 index 000000000..58e6d18b3 --- /dev/null +++ b/src/Corporation/ui/modals/CancelProductModal.tsx @@ -0,0 +1,34 @@ +import React from "react"; + +import { Product } from "../../Product"; +import { Modal } from "../../../ui/React/Modal"; +import { useDivision } from "../Context"; +import Typography from "@mui/material/Typography"; +import Button from "@mui/material/Button"; + +interface IProps { + open: boolean; + onClose: () => void; + product: Product; + rerender: () => void; +} + +// Create a popup that lets the player cancel a product +export function CancelProductModal(props: IProps): React.ReactElement { + const division = useDivision(); + function cancel(): void { + division.discontinueProduct(props.product); + props.onClose(); + props.rerender(); + } + + return ( + + + Are you sure you want to do this? Canceling a product removes it completely and permanently. You will receive no + money back by doing so + + + + ); +}