Files
HokmPlay/src/lib/ui-store.ts
T

38 lines
887 B
TypeScript
Raw Normal View History

"use client";
import { create } from "zustand";
export type Screen =
| "home"
| "auth"
| "profile"
| "friends"
| "online" // online lobby (create room / play random)
| "room"
| "matchmaking"
| "leaderboard"
| "shop"
| "chat"
| "game"; // the table (used for both ai + online)
interface UIStore {
screen: Screen;
/** screen to return to from the game table */
returnTo: Screen;
dailyModalOpen: boolean;
go: (screen: Screen) => void;
goGame: (returnTo?: Screen) => void;
openDaily: () => void;
closeDaily: () => void;
}
export const useUIStore = create<UIStore>((set) => ({
screen: "home",
returnTo: "home",
dailyModalOpen: false,
go: (screen) => set({ screen }),
goGame: (returnTo = "home") => set({ screen: "game", returnTo }),
openDaily: () => set({ dailyModalOpen: true }),
closeDaily: () => set({ dailyModalOpen: false }),
}));