UNPKG

@underpostnet/underpost

Version:

Underpost Platform — end-to-end CI/CD and application-delivery toolchain CLI. Covers bare metal, Kubernetes, K3s, kubeadm, LXD, container/image orchestration, secrets, databases, cron jobs, monitoring, SSH, runners, PWA + Workbox delivery, and release orc

73 lines (72 loc) 2.15 kB
import { Auth } from './Auth.js'; import { BtnIcon } from './BtnIcon.js'; import { AuthEventType, authLogoutEvents } from './ClientEvents.js'; import { LogIn } from './LogIn.js'; import { Translate } from './Translate.js'; import { htmls, s } from './VanillaJs.js'; import { WebhookProvider } from './Webhook.js'; import { NotificationManager } from './NotificationManager.js'; class LogOut { static Event = {}; static onLogout(listener, options = {}) { return authLogoutEvents.on(AuthEventType.logout, listener, options); } static offLogout(key) { return authLogoutEvents.off(key); } static hasLogoutListener(key) { return authLogoutEvents.has(key); } static async Trigger(options) { await WebhookProvider.unregister(); await authLogoutEvents.emit(AuthEventType.logout, options); for (const eventKey of Object.keys(LogOut.Event)) await LogOut.Event[eventKey](options); if (s(`.session`)) htmls( `.session`, html`<style> .session-in-log-out { display: block; } .session-inl-log-out { display: inline-table; } .session-fl-log-out { display: flow-root; } .session-in-log-in { display: none; } .session-inl-log-in { display: none; } .session-fl-log-in { display: none; } </style>`, ); } static async instance() { setTimeout(() => { s('.btn-log-out').onclick = async (e) => { e.preventDefault(); await Auth.sessionOut(); NotificationManager.Push({ html: Translate.instance(`success-logout`), status: 'success', }); }; }); // Translate.instance('confirm-logout') return html` <form class="in"> <div class="in"> ${await BtnIcon.instance({ class: 'inl section-mp btn-custom btn-log-out', label: html`<i class="fa-solid fa-power-off"></i> ${Translate.instance('log-out')}`, type: 'submit', })} </div> </form>`; } } export { LogOut };