@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
44 lines • 2.4 kB
JavaScript
;
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