import { Stack, Typography, styled, useTheme } from "@mui/material"; import Image from "next/image"; import { AccessToken, Planet, PlanetInfo, PlanetInfoUniverse, PlanetWithInfo, } from "@/types"; import React, { forwardRef, useContext, useEffect, useState } from "react"; import { DateTime } from "luxon"; import { EXTRACTOR_TYPE_IDS } from "@/const"; import Countdown from "react-countdown"; import PinsCanvas3D from "./PinsCanvas3D"; import Slide from "@mui/material/Slide"; import { TransitionProps } from "@mui/material/transitions"; import Dialog from "@mui/material/Dialog"; import AppBar from "@mui/material/AppBar"; import Toolbar from "@mui/material/Toolbar"; import IconButton from "@mui/material/IconButton"; import CloseIcon from "@mui/icons-material/Close"; import Button from "@mui/material/Button"; import { alertModeVisibility, extractorsHaveExpired, timeColor, } from "./timeColors"; import { ColorContext, SessionContext } from "@/app/context/Context"; const StackItem = styled(Stack)(({ theme }) => ({ ...theme.typography.body2, padding: 0, margin: "0 !important", textAlign: "left", justifyContent: "flex-start", alignItems: "center", })); const Transition = forwardRef(function Transition( props: TransitionProps & { children: React.ReactElement; }, ref: React.Ref, ) { return ; }); export const PlanetCard = ({ character, planet, }: { character: AccessToken; planet: PlanetWithInfo; }) => { const { alertMode } = useContext(SessionContext); const planetInfo = planet.info; const planetInfoUniverse = planet.infoUniverse; const [planetRenderOpen, setPlanetRenderOpen] = useState(false); const theme = useTheme(); const handle3DrenderOpen = () => { setPlanetRenderOpen(true); }; const handle3DrenderClose = () => { setPlanetRenderOpen(false); }; const extractorsExpiryTime = (planetInfo && planetInfo.pins .filter((p) => EXTRACTOR_TYPE_IDS.some((e) => e === p.type_id)) .map((p) => p.expiry_time)) ?? []; const { colors } = useContext(ColorContext); const expired = extractorsHaveExpired(extractorsExpiryTime); return ( {expired && ( )}
{planetInfoUniverse?.name} L{planet.upgrade_level}
{extractorsExpiryTime.map((e, idx) => { return ( {e ? ( ) : ( "STOPPED" )} ); })} {planetInfoUniverse?.name}
); };