Skip to content

Commit a13a859

Browse files
fixup! feat: make dataset searchable
1 parent 579d923 commit a13a859

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

stores/tierListStore.ts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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+
);

0 commit comments

Comments
 (0)