summaryrefslogtreecommitdiff
path: root/src-migrate/modules/product-promo/stores/useModalStore.ts
blob: 464bb5980093c1635dd400bd77a1c70cd4de2f05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { create } from 'zustand';
import { CategoryPromo } from '~/types/promotion';

type State = {
  active: boolean;
  variantId?: number;
  activeTab: CategoryPromo;
};

type Action = {
  openModal: (variantId: number) => void;
  closeModal: () => void;
  changeTab: (tab: State['activeTab']) => void;
};

const defaultState: Omit<State, 'activeTab'> = {
  active: false,
  variantId: undefined,
};

export const useModalStore = create<State & Action>((set) => ({
  ...defaultState,
  activeTab: 'bundling',
  openModal: (variantId: number) => set({ active: true, variantId }),
  closeModal: () => set(defaultState),
  // TABS
  changeTab: (tab) => set({ activeTab: tab }),
}));