feat: make dashboard service management actionable

This commit is contained in:
zetaloop
2026-02-21 15:47:30 +08:00
parent 3a1f9c2b7f
commit 94b96ac577
3 changed files with 108 additions and 10 deletions
+34
View File
@@ -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),
})),
}))