mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-10-23 18:23:15 +02:00
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
/**
|
|
* Stateless button that represents something that has been purchased.
|
|
*/
|
|
import * as React from "react";
|
|
|
|
interface IStdButtonPurchasedProps {
|
|
onClick?: (e: React.MouseEvent<HTMLElement>) => any;
|
|
style?: object;
|
|
text: string;
|
|
tooltip?: string;
|
|
}
|
|
|
|
type IInnerHTMLMarkup = {
|
|
__html: string;
|
|
}
|
|
|
|
export class StdButtonPurchased extends React.Component<IStdButtonPurchasedProps, any> {
|
|
render() {
|
|
const hasTooltip = this.props.tooltip != null && this.props.tooltip !== "";
|
|
let className = "std-button-bought";
|
|
if (hasTooltip) {
|
|
className += " tooltip";
|
|
}
|
|
|
|
// Tooltip will be set using inner HTML
|
|
let tooltipMarkup: IInnerHTMLMarkup | null;
|
|
if (hasTooltip) {
|
|
tooltipMarkup = {
|
|
__html: this.props.tooltip!,
|
|
}
|
|
}
|
|
|
|
return (
|
|
<button className={className} onClick={this.props.onClick} style={this.props.style}>
|
|
{this.props.text}
|
|
{
|
|
hasTooltip &&
|
|
<span className={"tooltiptext"} dangerouslySetInnerHTML={tooltipMarkup!}></span>
|
|
}
|
|
</button>
|
|
)
|
|
}
|
|
}
|