WebHooker/admin/composables/useMe.ts
RhenCloud 62985a2f3f
feat(admin): groups management UI in the console
Add a super-admin-only Groups tab to create, edit and delete groups
(name, admin ids, owner scope). Routes now require a group via a select
in the editor, group names are shown on route cards, and the new
useMe/useGroups composables back the UI.
2026-08-02 08:16:05 +08:00

30 lines
740 B
TypeScript

import type { Me } from "~/types";
export function useMeApi() {
const me = ref<Me | null>(null);
const loading = ref(false);
const needLogin = ref(false);
async function load(): Promise<void> {
loading.value = true;
needLogin.value = false;
try {
const res = await fetch("/admin/api/me", {
headers: { accept: "application/json" },
credentials: "same-origin",
});
if (res.status === 401) {
needLogin.value = true;
return;
}
if (!res.ok) throw new Error(`HTTP ${res.status}`);
me.value = (await res.json()) as Me;
} catch {
me.value = null;
} finally {
loading.value = false;
}
}
return { me, loading, needLogin, load };
}