summaryrefslogtreecommitdiff
path: root/src-migrate/modules/product-detail/stores
diff options
context:
space:
mode:
Diffstat (limited to 'src-migrate/modules/product-detail/stores')
-rw-r--r--src-migrate/modules/product-detail/stores/useProductDetail.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/src-migrate/modules/product-detail/stores/useProductDetail.ts b/src-migrate/modules/product-detail/stores/useProductDetail.ts
new file mode 100644
index 00000000..984d7948
--- /dev/null
+++ b/src-migrate/modules/product-detail/stores/useProductDetail.ts
@@ -0,0 +1,25 @@
+import { create } from 'zustand';
+import { IProductVariantDetail } from '~/types/productVariant';
+
+type State = {
+ activeVariantId: number | null;
+ activePrice: IProductVariantDetail['price'] | null;
+ quantityInput: string;
+};
+
+type Action = {
+ setActive: (variant: IProductVariantDetail) => void;
+ setQuantityInput: (value: string) => void;
+};
+
+export const useProductDetail = create<State & Action>((set, get) => ({
+ activeVariantId: null,
+ activePrice: null,
+ quantityInput: '1',
+ setActive: (variant) => {
+ set({ activeVariantId: variant.id, activePrice: variant.price });
+ },
+ setQuantityInput: (value: string) => {
+ set({ quantityInput: value });
+ },
+}));