Files
juwan-frontend/store/services.ts
T

36 lines
1.0 KiB
TypeScript

import { create } from "zustand"
import { generateId } from "@/lib/id"
import { mockServices } from "@/lib/mock"
import type { PlayerService } from "@/lib/types"
interface ServiceState {
services: PlayerService[]
createService: (service: Omit<PlayerService, "id">) => void
updateService: (serviceId: string, patch: Partial<Omit<PlayerService, "id">>) => void
deleteService: (serviceId: string) => void
}
export const useServiceStore = create<ServiceState>((set) => ({
services: mockServices,
createService: (service) =>
set((state) => ({
services: [
...state.services,
{
...service,
id: generateId("svc"),
},
],
})),
updateService: (serviceId, patch) =>
set((state) => ({
services: state.services.map((service) =>
service.id === serviceId ? { ...service, ...patch } : service,
),
})),
deleteService: (serviceId) =>
set((state) => ({
services: state.services.filter((service) => service.id !== serviceId),
})),
}))