import { Stack, Typography, styled, useTheme, Tooltip } from "@mui/material"; import Image from "next/image"; import { AccessToken, PlanetWithInfo, } from "@/types"; import { PlanetCalculations } from "@/types/planet"; import React, { useContext } from "react"; import { DateTime } from "luxon"; import Countdown from "react-countdown"; import { ColorContext } from "@/app/context/Context"; import { ExtractionSimulationTooltip } from "./ExtractionSimulationTooltip"; import { timeColor } from "./alerts"; interface ExtractorConfig { typeId: number; baseValue: number; cycleTime: number; installTime: string; expiryTime: string; } const StackItem = styled(Stack)(({ theme }) => ({ ...theme.typography.body2, padding: 0, margin: "0 !important", textAlign: "left", justifyContent: "flex-start", alignItems: "center", })); export const PlanetCard = ({ character, planet, planetDetails, }: { character: AccessToken; planet: PlanetWithInfo; planetDetails: PlanetCalculations; }) => { const theme = useTheme(); const { colors } = useContext(ColorContext); const extractorConfigs: ExtractorConfig[] = planetDetails.extractors .filter(e => e.extractor_details?.product_type_id && e.extractor_details?.qty_per_cycle) .map(e => ({ typeId: e.extractor_details!.product_type_id!, baseValue: e.extractor_details!.qty_per_cycle!, cycleTime: e.extractor_details?.cycle_time || 3600, installTime: e.install_time ?? "", expiryTime: e.expiry_time ?? "" })); return ( 0 ? ( ) : null } componentsProps={{ tooltip: { sx: { bgcolor: 'background.paper', '& .MuiTooltip-arrow': { color: 'background.paper', }, maxWidth: 'none', width: 'fit-content' } } }} >
{planetDetails.expired && ( )}
{planet.infoUniverse?.name} {planetDetails.extractors.map((e, idx) => { const average = planetDetails.extractorAverages[idx]; return (
{!planetDetails.expired && e.expiry_time && } {!planetDetails.expired && e && average && (
{average.averagePerHour.toFixed(1)}/h
)}
); })}
); };