v-dashkit
Version:
This template should help get you started developing with Vue 3 in Vite.
51 lines (50 loc) • 1.79 kB
JavaScript
import { ref as s, computed as v } from "vue";
import { defineStore as g } from "pinia";
import { useI18n as d } from "vue-i18n";
import { changeLocale as b } from "@formkit/vue";
const y = g("auth", () => {
const a = s(null), l = s(), o = s([]), r = s([]), c = (e) => {
e && (a.value = e, o.value = e.sideBar, localStorage.setItem("user", JSON.stringify(e.user)), localStorage.setItem("roles", JSON.stringify(e.roles)), localStorage.setItem("sidebar", JSON.stringify(e.sideBar)), localStorage.setItem("token", e.loginInfo.accessToken));
}, n = (e) => e.map((t) => (t.items && (t.items.length ? t.items = n(t.items) : delete t.items), t));
return {
loginHandler: a,
sidebarRef: o,
userRef: l,
userRolesRef: r,
saveLoginData: c,
init: () => {
const e = localStorage.getItem("user"), t = localStorage.getItem("sidebar"), u = localStorage.getItem("roles");
if (!e || !t || !u)
return;
const m = JSON.parse(e), S = JSON.parse(t), f = JSON.parse(u);
o.value = n(S), l.value = m, r.value = f;
}
};
}), J = g("language", () => {
const a = s(), l = s(!1), o = d(), r = {
en: {
label: "label"
},
ar: {
label: "labelAr"
}
}, c = v(() => r[o.locale.value]), n = () => {
localStorage.getItem("isRtl") == "true" && i();
}, i = () => {
var e;
(e = document.querySelector("body")) == null || e.classList.toggle("rtl"), l.value = !l.value, o.locale.value = l.value ? "ar" : "en", localStorage.setItem("isRtl", l.value.toString()), b(o.locale.value), setTimeout(() => {
a.value && a.value.setFormkitLocale(o.locale.value);
}, 100);
};
return {
isRtl: l,
localeSetterComponentRef: a,
keyHelpers: c,
toggleRtl: i,
init: n
};
});
export {
y as a,
J as u
};