bitburner-src/src/Bladeburner/ui/AllPages.tsx

55 lines
2.0 KiB
TypeScript
Raw Normal View History

2021-08-10 17:25:21 +02:00
import React, { useState, useEffect } from "react";
import { GeneralActionPage } from "./GeneralActionPage";
import { ContractPage } from "./ContractPage";
import { OperationPage } from "./OperationPage";
import { BlackOpPage } from "./BlackOpPage";
import { SkillPage } from "./SkillPage";
import { stealthIcon, killIcon } from "../data/Icons";
import { IBladeburner } from "../IBladeburner";
2021-08-16 07:35:05 +02:00
import { IPlayer } from "../../PersonObjects/IPlayer";
2021-08-10 17:25:21 +02:00
interface IProps {
2021-09-05 01:09:30 +02:00
bladeburner: IBladeburner;
player: IPlayer;
2021-08-10 17:25:21 +02:00
}
export function AllPages(props: IProps): React.ReactElement {
2021-09-05 01:09:30 +02:00
const [page, setPage] = useState("General");
const setRerender = useState(false)[1];
2021-08-10 17:25:21 +02:00
2021-09-05 01:09:30 +02:00
useEffect(() => {
const id = setInterval(() => setRerender((old) => !old), 1000);
return () => clearInterval(id);
}, []);
2021-08-10 17:25:21 +02:00
2021-09-05 01:09:30 +02:00
function Header(props: { name: string }): React.ReactElement {
return (
<a
onClick={() => setPage(props.name)}
2021-09-09 05:47:34 +02:00
className={page !== props.name ? "bladeburner-nav-button noselect" : "bladeburner-nav-button-inactive noselect"}
2021-09-05 01:09:30 +02:00
>
{props.name}
</a>
);
}
return (
<>
<Header name={"General"} />
<Header name={"Contracts"} />
<Header name={"Operations"} />
<Header name={"BlackOps"} />
<Header name={"Skills"} />
<div style={{ display: "block", margin: "4px", padding: "4px" }}>
2021-09-09 05:47:34 +02:00
{page === "General" && <GeneralActionPage bladeburner={props.bladeburner} player={props.player} />}
{page === "Contracts" && <ContractPage bladeburner={props.bladeburner} player={props.player} />}
{page === "Operations" && <OperationPage bladeburner={props.bladeburner} player={props.player} />}
{page === "BlackOps" && <BlackOpPage bladeburner={props.bladeburner} player={props.player} />}
2021-09-05 01:09:30 +02:00
{page === "Skills" && <SkillPage bladeburner={props.bladeburner} />}
</div>
<span className="text">
2021-09-09 05:47:34 +02:00
{stealthIcon} = This action requires stealth, {killIcon} = This action involves retirement
2021-09-05 01:09:30 +02:00
</span>
</>
);
}