39 lines
796 B
TypeScript
39 lines
796 B
TypeScript
import { create } from "zustand";
|
|
|
|
export type OddsFormat = "decimal";
|
|
|
|
export type Bet = {
|
|
id: string;
|
|
event: string;
|
|
market: string;
|
|
selection: string;
|
|
odds: number;
|
|
};
|
|
|
|
type BetslipState = {
|
|
bets: Bet[];
|
|
oddsFormat: OddsFormat;
|
|
addBet: (bet: Bet) => void;
|
|
removeBet: (id: string) => void;
|
|
clearBets: () => void;
|
|
};
|
|
|
|
export const useBetslipStore = create<BetslipState>((set) => ({
|
|
bets: [],
|
|
oddsFormat: "decimal",
|
|
addBet: (bet) =>
|
|
set((state) => {
|
|
const exists = state.bets.some((b) => b.id === bet.id);
|
|
if (exists) {
|
|
return state;
|
|
}
|
|
return { bets: [...state.bets, bet] };
|
|
}),
|
|
removeBet: (id) =>
|
|
set((state) => ({
|
|
bets: state.bets.filter((bet) => bet.id !== id),
|
|
})),
|
|
clearBets: () => set({ bets: [] }),
|
|
}));
|
|
|