create user store
This commit is contained in:
@@ -3,11 +3,13 @@ import { useRoute } from 'vue-router'
|
|||||||
import { Board } from '@/services/Board'
|
import { Board } from '@/services/Board'
|
||||||
import { User } from '@/services/User'
|
import { User } from '@/services/User'
|
||||||
import { Spending } from '@/services/Spending'
|
import { Spending } from '@/services/Spending'
|
||||||
|
import { useUserStore } from './userStore'
|
||||||
|
|
||||||
export const useBoardStore = defineStore('boardStore', () => {
|
export const useBoardStore = defineStore('boardStore', () => {
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const boards = new Map<string, Board>()
|
const boards = new Map<string, Board>()
|
||||||
let testBoard: Board | undefined
|
let testBoard: Board | undefined
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
function createBoard(name: string): Board {
|
function createBoard(name: string): Board {
|
||||||
const newBoard = new Board(name)
|
const newBoard = new Board(name)
|
||||||
@@ -22,11 +24,11 @@ export const useBoardStore = defineStore('boardStore', () => {
|
|||||||
} else {
|
} else {
|
||||||
if (testBoard === undefined) {
|
if (testBoard === undefined) {
|
||||||
testBoard = new Board('Grill and Chill')
|
testBoard = new Board('Grill and Chill')
|
||||||
const elias = new User('Elias')
|
const elias = userStore.getUser('Elias') || new User('Elias')
|
||||||
elias.addSpending(new Spending('Burger', 1230))
|
elias.addSpending(new Spending('Burger', 1230))
|
||||||
elias.addSpending(new Spending('Kaffee', 510))
|
elias.addSpending(new Spending('Kaffee', 510))
|
||||||
testBoard.addUser(elias)
|
testBoard.addUser(elias)
|
||||||
const max = new User('Max')
|
const max = userStore.getUser('Max') || new User('Max')
|
||||||
max.addSpending(new Spending('Omlett', 1822))
|
max.addSpending(new Spending('Omlett', 1822))
|
||||||
max.addSpending(new Spending('Kaffee', 3073))
|
max.addSpending(new Spending('Kaffee', 3073))
|
||||||
testBoard.addUser(max)
|
testBoard.addUser(max)
|
||||||
|
|||||||
25
frontend/src/stores/userStore.ts
Normal file
25
frontend/src/stores/userStore.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { defineStore } from 'pinia'
|
||||||
|
import { ref } from 'vue'
|
||||||
|
import { User } from '@/services/User'
|
||||||
|
|
||||||
|
export const useUserStore = defineStore('userStore', () => {
|
||||||
|
const users = ref<Array<User>>([])
|
||||||
|
|
||||||
|
function addUser(user: User) {
|
||||||
|
users.value.push(user)
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeUser(userName: string) {
|
||||||
|
users.value = users.value.filter((user: User) => user.name !== userName)
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUser(userName: string) {
|
||||||
|
return users.value.find((user: User) => user.name === userName)
|
||||||
|
}
|
||||||
|
|
||||||
|
function getAllUsers() {
|
||||||
|
return users.value
|
||||||
|
}
|
||||||
|
|
||||||
|
return { addUser, removeUser, getUser, getAllUsers }
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user