@react95/core
Version:
Windows 95 styleguide
52 lines (51 loc) • 2.05 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const React = require("react");
const icons = require("@react95/icons");
const Alert_css = require("./Alert.css.cjs");
const Modal = require("../Modal/Modal.cjs");
const chord = require("./assets/chord.mp3.cjs");
const RenderImage = ({ option }) => {
switch (option) {
case "info":
return /* @__PURE__ */ React.createElement(icons.User5, { width: 32, height: 32, variant: "32x32_4" });
case "question":
return /* @__PURE__ */ React.createElement(icons.User3, { width: 32, height: 32, variant: "32x32_4" });
case "warning":
return /* @__PURE__ */ React.createElement(icons.User2, { width: 32, height: 32, variant: "32x32_4" });
case "error":
default:
return /* @__PURE__ */ React.createElement(icons.User4, { width: 32, height: 32, variant: "32x32_4" });
}
};
const Alert = React.forwardRef(
({ type = "error", message, hasSound = false, dragOptions, ...rest }, ref) => {
if (hasSound) {
React.useEffect(() => {
const audio = new Audio(chord);
audio.play();
}, []);
}
return /* @__PURE__ */ React.createElement(
Modal.Modal,
{
height: "120",
dragOptions: {
defaultPosition: {
x: typeof window == "undefined" ? 0 : Math.floor(window.innerWidth / 2) - 150,
y: typeof window == "undefined" ? 0 : Math.floor(window.innerHeight / 2) - 100
},
...dragOptions
},
buttons: [{ value: "OK", onClick: () => {
} }],
hasWindowButton: false,
buttonsAlignment: "center",
...rest,
ref
},
/* @__PURE__ */ React.createElement(Modal.Modal.Content, { className: Alert_css.dialog }, /* @__PURE__ */ React.createElement("div", { className: Alert_css.icon }, /* @__PURE__ */ React.createElement(RenderImage, { option: type })), /* @__PURE__ */ React.createElement("div", { className: Alert_css.message }, message))
);
}
);
exports.Alert = Alert;