dg-npm-templates
Version:
Npx generator for react app dependency creation by digite
64 lines (52 loc) • 2.04 kB
JavaScript
/* istanbul ignore file */
import React, {useEffect} from 'react';
import { hideMessage } from '../slice/MessageSlice';
import { BOARD_MESSAGE_CONSTANT } from '../constants/MessageConstants';
import DialogsView from 'dg-react-dialogs';
import { getI18NMessage } from 'I18N/I18NHelper';
import { useSelector, useDispatch } from 'react-redux';
import { initMessageComp } from '../slice/MessageSlice';
function MessageView (){
const dispatch = useDispatch();
const messageData = useSelector( state => state.messageData.messageData);
useEffect(() => {
dispatch(initMessageComp())
}, [dispatch]);
if (!messageData || !messageData.show ) {
return false;
}
const type = messageData.type;
const isErrorMsg = type === BOARD_MESSAGE_CONSTANT.TYPE_ERROR;
const isSuccess = type === BOARD_MESSAGE_CONSTANT.TYPE_SUCCESS;
const isWarning = type === BOARD_MESSAGE_CONSTANT.TYPE_WARNING;
const isInfo = type === BOARD_MESSAGE_CONSTANT.TYPE_INFO;
const isConfirmation = type === BOARD_MESSAGE_CONSTANT.TYPE_CONFIRMATION;
const config = {
header: messageData.headerText,
message: messageData.message,
actionLabels: messageData.actionLabels,
dontShowMeAgain: messageData.dontShowMeAgain,
dialogHeaderIcon: isErrorMsg ? 'icon-Error' : isInfo ? 'icon-info' : isSuccess ?
'icon-success' : isWarning || isConfirmation ? 'icon-Warning' : '',
showMainBox: messageData.showMainBox,
htmlMessage: messageData.htmlMessage,
noHeaderIcon: messageData.noHeaderIcon,
type
};
return (
<DialogsView config={ config } onSelection={ hideMessageView } getI18NMessage={ getI18NMessage }/>
);
function hideMessageView(value, doNotShowAgain) {
if ( messageData.onConfirmFn
&& messageData.type !== BOARD_MESSAGE_CONSTANT.TYPE_CONFIRMATION ) {
messageData.onConfirmFn();
}
dispatch( hideMessage() );
if ( value && messageData.onConfirmFn ) {
messageData.onConfirmFn(doNotShowAgain);
} else if ( messageData.onCancelFn ) {
messageData.onCancelFn(doNotShowAgain);
}
}
}
export default MessageView;