UNPKG

p3x-redis-ui-material

Version:

💿 P3X Redis UI triple frontend — Angular + React/MUI + Vue/Vuetify with 54 languages, 7 themes, Socket.IO, desktop notifications, and full feature parity

1 lines • 1.17 kB
import{a as e,ht as t}from"./i18n.store-Bbsc3Bab.js";import{o as n}from"./VAvatar-Bo3xpDUh.js";var r=n(`v-spacer`,`div`,`VSpacer`),i=`p3xr-auth-token`,a=e(`auth`,()=>{let e=t(!1),n=t(!1),r=t(!1),a=t(``);async function o(){try{if(!(await(await fetch(`/api/auth-status`)).json()).enabled)e.value=!1,n.value=!0;else{e.value=!0;let t=c();if(t){let e=await(await fetch(`/api/verify-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:t})})).json();n.value=e.valid,e.valid||localStorage.removeItem(i)}}}catch{n.value=!0}r.value=!0}async function s(e,t){a.value=``;try{let r=await(await fetch(`/api/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({username:e,password:t})})).json();return r.status===`ok`&&r.token?(localStorage.setItem(i,r.token),n.value=!0,!0):(a.value=r.error,!1)}catch{return a.value=`network_error`,!1}}function c(){try{return localStorage.getItem(i)}catch{return null}}function l(){try{localStorage.removeItem(i)}catch{}location.reload()}return{authRequired:e,isAuthenticated:n,authChecked:r,loginError:a,checkAuthStatus:o,login:s,getToken:c,logout:l}});export{r as n,a as t};