Files
sb-front/src/stores/user.js
T

35 lines
857 B
JavaScript
Raw Normal View History

2026-05-30 21:18:13 +09:00
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { userApi } from '@/api/userApi'
export const useUserStore = defineStore('user', () => {
const users = ref([])
const loading = ref(false)
const error = ref(null)
async function fetchUsers() {
loading.value = true
error.value = null
try {
users.value = await userApi.list()
} catch (e) {
error.value = e.message || '목록을 불러오지 못했습니다.'
} finally {
loading.value = false
}
}
async function addUser(payload) {
const created = await userApi.create(payload)
users.value.unshift(created)
return created
}
async function removeUser(id) {
await userApi.remove(id)
users.value = users.value.filter((u) => u.id !== id)
}
return { users, loading, error, fetchUsers, addUser, removeUser }
})