@zenithui/toast
Version:
A modern, lightweight toast notification system for React applications. ZenithUI Toast provides a simple and customizable way to display notifications, alerts, and messages to users with smooth animations and flexible styling options.
79 lines (78 loc) • 2.5 kB
JavaScript
function reverseToasts(toasts) {
const ret = [];
for(let i = toasts.length - 1; i >= 0; i--)ret.push(toasts[i]);
return ret;
}
function getPositionClass(position) {
switch(position){
case "top-left":
return "zenithui-top-left";
case "top-right":
return "zenithui-top-right";
case "bottom-left":
return "zenithui-bottom-left";
case "bottom-right":
return "zenithui-bottom-right";
case "top-center":
return "zenithui-top-center";
case "bottom-center":
return "zenithui-bottom-center";
default:
return "zenithui-top-right";
}
}
function getToastTheme(type) {
switch(type){
case "success":
return "zenithui-toast-success";
case "info":
return "zenithui-toast-info";
case "error":
return "zenithui-toast-error";
case "warning":
return "zenithui-toast-warning";
default:
return "zenithui-toast-success";
}
}
function getToastAnimation(animation, position, isEnter) {
switch(animation){
case "enter-with-icon":
case "fade":
return getFadeAnimation(position, isEnter);
case "slide":
return getSlideAnimation(position, isEnter);
default:
break;
}
}
function getFadeAnimation(position, isEnter) {
switch(position){
case "top-left":
case "top-right":
case "top-center":
return isEnter ? "zenithui-fade-in-top" : "zenithui-fade-out-top";
case "bottom-center":
case "bottom-left":
case "bottom-right":
default:
return isEnter ? "zenithui-fade-in-bottom" : "zenithui-fade-out-bottom";
}
}
function getSlideAnimation(position, isEnter) {
switch(position){
case "top-left":
case "bottom-left":
return isEnter ? "zenithui-slide-in-left" : "zenithui-slide-out-left";
case "top-right":
case "bottom-right":
return isEnter ? "zenithui-slide-in-right" : "zenithui-slide-out-right";
case "top-center":
return isEnter ? "zenithui-fade-in-top" : "zenithui-fade-out-top";
case "bottom-center":
return isEnter ? "zenithui-fade-in-bottom" : "zenithui-fade-out-bottom";
default:
return "";
}
}
export { getPositionClass, getToastAnimation, getToastTheme, reverseToasts };