Source code for shopyo.api.html

from markupsafe import escape

"""
Used on flash
flash(notify_success('mail sent!'))
"""


[docs] def notify(message, alert_type="primary"): """ Used with flash flash(notify('blabla')) Parameters ---------- message: str message to be displayed alert_type: str bootstrap class Returns ------- None """ # Map bootstrap-style types to our tailwind colors colors = { "success": "emerald", "danger": "red", "warning": "amber", "info": "blue", "primary": "primary", } color = colors.get(alert_type, "primary") icon = "fa-info-circle" if alert_type == "success": icon = "fa-check-circle" elif alert_type == "danger": icon = "fa-exclamation-circle" elif alert_type == "warning": icon = "fa-exclamation-triangle" alert = f""" <div x-data="{{ show: true }}" x-show="show" x-init="setTimeout(() => show = false, 5000)" x-transition:leave="transition ease-in duration-300" x-transition:leave-start="opacity-100 scale-100" x-transition:leave-end="opacity-0 scale-95" class="flex items-center p-4 mb-4 rounded-2xl border bg-white dark:bg-slate-900 shadow-xl shadow-slate-200/50 dark:shadow-none border-slate-100 dark:border-slate-800 group" role="alert"> <div class="flex-shrink-0 w-8 h-8 rounded-lg bg-{color if color != 'primary' else 'indigo'}-50 dark:bg-{color if color != 'primary' else 'indigo'}-900/20 flex items-center justify-center text-{color if color != 'primary' else 'indigo'}-500"> <i class="fas {icon} text-sm"></i> </div> <div class="ml-3 text-[10px] font-black uppercase tracking-[0.15em] text-slate-600 dark:text-slate-300"> {escape(message)} </div> <button @click="show = false" type="button" class="ml-auto w-8 h-8 rounded-lg flex items-center justify-center text-slate-400 hover:bg-slate-50 dark:hover:bg-slate-800 hover:text-slate-600 dark:hover:text-white transition-all"> <i class="fas fa-times text-xs"></i> </button> </div> """ return alert
[docs] def notify_success(message): return notify(message, alert_type="success")
[docs] def notify_danger(message): return notify(message, alert_type="danger")
[docs] def notify_warning(message): return notify(message, alert_type="warning")
[docs] def notify_info(message): return notify(message, alert_type="info")