UNPKG

wakeb-starter-cli

Version:

A powerful CLI tool for generating CRUD modules, common modules, and components with Vue 3 form schemas, featuring intelligent field detection and automatic schema generation

52 lines (49 loc) 1.47 kB
import { defineStore } from "pinia"; import { httpRequest } from "@/services/api"; import { showAlert } from "@/composables/useAlert"; import { ref } from "vue"; import storage from "@/composables/useStorage"; const storedUser = storage.get("user"); const currentUser = storedUser ? JSON.parse(storedUser) : null; export const useProfileStore = defineStore("profile", () => { const isLoading = ref(false); const user = ref(currentUser); const getUser = async () => { isLoading.value = true; try { const response = await httpRequest("/me", { method: "GET" }); user.value = response.data; return response; } catch (error) { console.error(error); return error; } finally { isLoading.value = false; } }; const updateUser = async (data) => { isLoading.value = true; try { const response = await httpRequest("/update-profile", { method: "POST", data, }); const updatedUser = response.data; user.value = updatedUser; storage.set("user", JSON.stringify(updatedUser)); showAlert({ title: response.message, type: "success" }); return response; } catch (error) { showAlert({ title: error.response.data.message, type: "error" }); return error; } finally { isLoading.value = false; } }; return { isLoading, user, getUser, updateUser, }; });