import React from "react";
import { toast } from "react-toastify";
import styled from "styled-components";
import { CheckToastIcon, DangerToastIcon, InfoToastIcon } from "./svg";
import IconButton from "../icon-button";
import Text from "../text";
import { StyledCloseWrapper, StyledDiv, IconWrapper } from "./styled-toastr";
import commonIconsStyles from "../utils/common-icons-style";
const StyledCheckToastIcon = styled(CheckToastIcon)`
${commonIconsStyles}
`;
const StyledDangerToastIcon = styled(DangerToastIcon)`
${commonIconsStyles}
`;
const StyledInfoToastIcon = styled(InfoToastIcon)`
${commonIconsStyles}
`;
// eslint-disable-next-line react/prop-types
const Icon = ({ type }) =>
type === "success" ? (
) : type === "error" || type === "warning" ? (
) : (
);
const toastr = {
clear: clear,
error: error,
info: info,
success: success,
warning: warning,
};
const CloseButton = ({ closeToast }) => (
);
const notify = (
type,
data,
title,
timeout = 5000,
withCross = false,
centerPosition = false
) => {
return toast(
<>
{title && {title}}
{data && {data}}
>,
{
type: type,
closeOnClick: !withCross,
closeButton: withCross && ,
autoClose: timeout === 0 ? false : timeout < 750 ? 5000 : timeout || 5000,
position: centerPosition && toast.POSITION.TOP_CENTER,
}
);
};
function success(data, title, timeout, withCross, centerPosition) {
return notify("success", data, title, timeout, withCross, centerPosition);
}
function error(data, title, timeout, withCross, centerPosition) {
const dataType = typeof data;
const message =
dataType === "string"
? data
: dataType === "object" && data.statusText
? data.statusText
: "";
return notify("error", message, title, timeout, withCross, centerPosition);
}
function warning(data, title, timeout, withCross, centerPosition) {
return notify("warning", data, title, timeout, withCross, centerPosition);
}
function info(data, title, timeout, withCross, centerPosition) {
return notify("info", data, title, timeout, withCross, centerPosition);
}
function clear() {
return toast.dismiss();
}
export default toastr;