import React, { memo, useMemo } from 'react';
import classNames from 'classnames';
import Button from '@material-ui/core/Button';
import Typography from '@material-ui/core/Typography';
import useLang from '@Hooks/useLang';
import useMessage from '@Hooks/useMessage';
import useMappedState from '@Hooks/useMappedState';
import Modal from '@Components/Base/Modal';
import { ConfirmItemObject } from './types';
import Styles from './index.module.css';
/* Confirm Item */
function ConfirmItem(props: ConfirmItemObject): React.ReactElement {
/* Global & Local States */
const { i18n } = useLang();
const { confirm, requestRemoveConfirm } = props;
/* Functions */
const onConfirmClick = (): void => {
if (confirm.onConfirm) confirm.onConfirm();
requestRemoveConfirm();
};
const onCancelClick = (): void => {
if (confirm.onCancel) confirm.onCancel();
requestRemoveConfirm();
};
/* Main */
return (
{confirm.typeTitle}
{confirm.typeContent && confirm.typeContent}
);
}
function ModalConfirm(): React.ReactElement {
/* Global & Local States */
const reduxMessage = useMessage();
const storeMessage = useMappedState((state) => state.message);
/* Functions */
const requestRemoveConfirm = (): void => {
reduxMessage.removeConfirm();
};
/* Views */
const RenderMessages = useMemo(() => {
if (storeMessage.messageConfirmList.list.length > 0) {
return (
);
}
return ;
}, [storeMessage.messageConfirmList]);
const RenderIsMessageOpen = useMemo(() => {
if (storeMessage.messageConfirmList.list.length > 0) {
return true;
}
return false;
}, [storeMessage.messageConfirmList]);
/* Main */
return (
{RenderMessages}
);
}
export default memo(ModalConfirm);