2021-08-18 06:51:51 +02:00
|
|
|
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}</>);
|
|
|
|
}
|
|
|
|
|
2021-08-19 07:45:26 +02:00
|
|
|
function dialogBoxCreate(txt: string | JSX.Element, preformatted = false): void {
|
2021-08-18 06:51:51 +02:00
|
|
|
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, {
|
2021-08-19 07:45:26 +02:00
|
|
|
content: (<pre dangerouslySetInnerHTML={{ __html: txt }} />),
|
2021-08-18 06:51:51 +02:00
|
|
|
});
|
|
|
|
} else {
|
|
|
|
createPopup(popupId, MessagePopup, {
|
2021-08-19 07:45:26 +02:00
|
|
|
content: (<p dangerouslySetInnerHTML={{ __html: txt.replace(/(?:\r\n|\r|\n)/g, '<br />') }} />),
|
2021-08-18 06:51:51 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
createPopup(popupId, MessagePopup, {
|
2021-08-19 07:45:26 +02:00
|
|
|
content: txt,
|
2021-08-18 06:51:51 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export {dialogBoxCreate};
|