import { create } from "zustand"; import { immer } from "zustand/middleware/immer"; import type { Server, ServerId, Uuid } from "~/lib/api/types"; type ServerListStore = { servers: Record; addServers: (newServers: Server[]) => void; addServer: (server: Server) => void; removeServer: (serverId: Uuid) => void; }; export const useServerListStore = create()( immer((set) => ({ servers: {}, addServers: (servers: Server[]) => set((state) => { for (const server of servers) { state.servers[server.id] = server; } }), addServer: (server: Server) => set((state) => { state.servers[server.id] = server; }), removeServer: (serverId: Uuid) => set((state) => { delete state.servers[serverId]; }), })), );