mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-28 08:57:32 +01:00
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { createPopup } from "../src/ui/React/createPopup";
|
|
import { getRandomInt } from "./helpers/getRandomInt";
|
|
|
|
import React from "react";
|
|
|
|
interface IProps {
|
|
content: JSX.Element;
|
|
}
|
|
|
|
export function MessagePopup(props: IProps): React.ReactElement {
|
|
return <>{props.content}</>;
|
|
}
|
|
|
|
function dialogBoxCreate(txt: string | JSX.Element, preformatted = false): void {
|
|
const popupId =
|
|
`popup-` +
|
|
Array.from(Array(16))
|
|
.map(() => `${getRandomInt(0, 9)}`)
|
|
.join("");
|
|
if (typeof txt === "string") {
|
|
if (preformatted) {
|
|
// For text files as they are often computed data that
|
|
// shouldn't be wrapped and should retain tabstops.
|
|
createPopup(popupId, MessagePopup, {
|
|
content: <pre dangerouslySetInnerHTML={{ __html: txt }} />,
|
|
});
|
|
} else {
|
|
createPopup(popupId, MessagePopup, {
|
|
content: (
|
|
<p
|
|
dangerouslySetInnerHTML={{
|
|
__html: txt.replace(/(?:\r\n|\r|\n)/g, "<br />"),
|
|
}}
|
|
/>
|
|
),
|
|
});
|
|
}
|
|
} else {
|
|
createPopup(popupId, MessagePopup, {
|
|
content: txt,
|
|
});
|
|
}
|
|
}
|
|
|
|
export { dialogBoxCreate };
|