import { create } from "zustand";
import { TPlanNameModal } from "./types";

type TModal = "" | "phone" | "pin" | "planForm" | "success";
interface storeState {
  modal: TModal;
  phone: string;
  userData: {
    phone: string;
    token: string;
    pin: string;
  };
  setUserData: (value: { [x: string]: string }) => void;
  setModal: (value: TModal) => void;
  setPhone: (value: string) => void;
  plan: TPlanNameModal;
  setPlan: (value: TPlanNameModal) => void;
}

export const useStore = create<storeState>((set) => ({
  modal: "phone",
  plan: { name: "", productId: "" },
  phone: "",
  userData: { phone: "", token: "", pin: "" },
  setModal: (value) => set(() => ({ modal: value })),
  setPhone: (value) => set(() => ({ phone: value })),
  setPlan: (value) => set(() => ({ plan: value })),
  setUserData: (value) => set((state) => ({ userData: { ...state.userData, ...value } })),
}));
