UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

44 lines 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ShowMessage = void 0; var tslib_1 = require("tslib"); var React = tslib_1.__importStar(require("react")); var react_components_1 = require("@fluentui/react-components"); var react_icons_1 = require("@fluentui/react-icons"); var react_1 = require("@iconify/react"); var EMessageTypes_1 = require("../constants/EMessageTypes"); var useShowMessageStyles_1 = require("./useShowMessageStyles"); var ShowMessage = function (props) { var messageType = props.messageType, children = props.children, message = props.message; var styles = (0, useShowMessageStyles_1.useShowMessageStyles)(); var _a = React.useState(null), renderMessageIcon = _a[0], setRenderMessageIcon = _a[1]; var RenderError = React.useCallback(function () { return (React.createElement(React.Fragment, null, React.createElement("div", { className: styles.errorContainer }, React.createElement("div", { className: styles.errorIcon }, React.createElement(react_1.Icon, { icon: "fluent:error-circle-12-regular", width: "32", height: "32", color: react_components_1.tokens.colorStatusDangerForeground1 })), React.createElement(react_components_1.Body1, null, message)))); }, [message]); React.useEffect(function () { switch (messageType) { case EMessageTypes_1.EMessageType.SUCCESS: setRenderMessageIcon(React.createElement(react_icons_1.CheckmarkCircle32Regular, { primaryFill: react_components_1.tokens.colorStatusSuccessForeground1 })); break; case EMessageTypes_1.EMessageType.INFO: setRenderMessageIcon(React.createElement(react_icons_1.Info32Regular, { primaryFill: react_components_1.tokens.colorStatusWarningForeground1 })); break; default: break; } }, [messageType]); if (messageType === EMessageTypes_1.EMessageType.ERROR) { return React.createElement(RenderError, null); } return (React.createElement(React.Fragment, null, React.createElement("div", { className: styles.root }, renderMessageIcon, React.createElement(react_components_1.Body1Strong, null, message), children))); }; exports.ShowMessage = ShowMessage; //# sourceMappingURL=ShowMessage.js.map