bitburner-src/src/ui/React/AugmentationAccordion.tsx

57 lines
1.3 KiB
TypeScript
Raw Normal View History

/**
* React Component for displaying a single Augmentation as an accordion.
*
* The header of the accordion contains the Augmentation's name (and level, if
* applicable), and the accordion's panel contains the Augmentation's description.
*/
import * as React from "react";
import { Accordion } from "./Accordion";
import { Augmentation } from "../../Augmentation/Augmentation";
import { AugmentationNames } from "../../Augmentation/data/AugmentationNames";
type IProps = {
2021-09-05 01:09:30 +02:00
aug: Augmentation;
level?: number | string | null;
};
export function AugmentationAccordion(props: IProps): React.ReactElement {
2021-09-05 01:09:30 +02:00
let displayName = props.aug.name;
if (props.level != null) {
if (props.aug.name === AugmentationNames.NeuroFluxGovernor) {
displayName += ` - Level ${props.level}`;
2021-05-02 06:07:04 +02:00
}
2021-09-05 01:09:30 +02:00
}
2021-05-02 06:07:04 +02:00
2021-09-05 01:09:30 +02:00
if (typeof props.aug.info === "string") {
return (
2021-09-05 01:09:30 +02:00
<Accordion
headerContent={<>{displayName}</>}
panelContent={
<p>
<span dangerouslySetInnerHTML={{ __html: props.aug.info }} />
<br />
<br />
{props.aug.stats}
</p>
}
/>
);
}
return (
<Accordion
headerContent={<>{displayName}</>}
panelContent={
<p>
{props.aug.info}
<br />
<br />
{props.aug.stats}
</p>
}
/>
);
}