feat: make dashboard service management actionable
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import { create } from "zustand"
|
||||
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: `s${Date.now()}`,
|
||||
},
|
||||
],
|
||||
})),
|
||||
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),
|
||||
})),
|
||||
}))
|
||||
Reference in New Issue
Block a user