File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 1+ import { create } from 'zustand' ;
2+ import { persist } from 'zustand/middleware' ;
3+ import { Tier } from '../types/tier' ;
4+
5+ interface TierListStore {
6+ tiers : Tier [ ] ;
7+ addTier : ( tier : Tier ) => void ;
8+ updateTier : ( tierId : string , updates : Partial < Tier > ) => void ;
9+ removeTier : ( tierId : string ) => void ;
10+ getTier : ( tierId : string ) => Tier | undefined ;
11+ }
12+
13+ export const useTierListStore = create < TierListStore > ( ) (
14+ persist (
15+ ( set , get ) => ( {
16+ tiers : [ ] ,
17+
18+ addTier : ( tier : Tier ) => {
19+ set ( ( state ) => ( {
20+ tiers : [ ...state . tiers , tier ]
21+ } ) ) ;
22+ } ,
23+
24+ updateTier : ( tierId : string , updates : Partial < Tier > ) => {
25+ set ( ( state ) => ( {
26+ tiers : state . tiers . map ( tier =>
27+ tier . id === tierId
28+ ? { ...tier , ...updates }
29+ : tier
30+ )
31+ } ) ) ;
32+ } ,
33+
34+ removeTier : ( tierId : string ) => {
35+ set ( ( state ) => ( {
36+ tiers : state . tiers . filter ( tier => tier . id !== tierId )
37+ } ) ) ;
38+ } ,
39+
40+ getTier : ( tierId : string ) => {
41+ return get ( ) . tiers . find ( tier => tier . id === tierId ) ;
42+ }
43+ } ) ,
44+ {
45+ name : 'tier-list-storage'
46+ }
47+ )
48+ ) ;
You can’t perform that action at this time.
0 commit comments