summaryrefslogtreecommitdiff
path: root/app/lib/camera/hooks/useCameraStore.ts
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-11-06 15:27:18 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-11-06 15:27:18 +0700
commit77a0a082f0a5e1977c85a651a078376eab0d6df1 (patch)
treedc1fc01ab55aa2f56b18dcab012f3ae19cb714aa /app/lib/camera/hooks/useCameraStore.ts
parent8a0e4716aa12ce335758c84f7fdcb4b47cd9c2db (diff)
<MIqdad> multiple image SJ
Diffstat (limited to 'app/lib/camera/hooks/useCameraStore.ts')
-rw-r--r--app/lib/camera/hooks/useCameraStore.ts54
1 files changed, 33 insertions, 21 deletions
diff --git a/app/lib/camera/hooks/useCameraStore.ts b/app/lib/camera/hooks/useCameraStore.ts
index ad83074..874c627 100644
--- a/app/lib/camera/hooks/useCameraStore.ts
+++ b/app/lib/camera/hooks/useCameraStore.ts
@@ -1,26 +1,38 @@
-// store/useCameraStore.ts
-import { create } from 'zustand'
+// lib/camera/hooks/useCameraStore.ts
+import { create } from "zustand";
interface CameraStore {
- barcode: string | null
- setBarcode: (barcode: string) => void
- imageSj: string | null
- setImageSj: (image: string) => void
- imagePackage: string | null
- setImagePackage: (image: string) => void
- imageDispatch: string | null
- setImageDispatch: (image: string) => void
+ barcode: string;
+ setBarcode: (barcode: string) => void;
+
+ imageSj: string[]; // dataURL
+ setImageSj: (imgOrArr: string | string[]) => void;
+ removeSjImage: (idx: number) => void;
+
+ imagePackage: string | null;
+ setImagePackage: (image: string | null) => void;
+
+ imageDispatch: string | null;
+ setImageDispatch: (image: string | null) => void;
}
const useCameraStore = create<CameraStore>((set) => ({
- barcode: '',
- setBarcode: (barcode: string) => set({ barcode: barcode }),
- imageSj: '',
- setImageSj: (image: string) => set({ imageSj: image }),
- imagePackage: '',
- setImagePackage: (image: string) => set({ imagePackage: image }),
- imageDispatch: '',
- setImageDispatch: (image: string) => set({ imageDispatch: image }),
-}))
-
-export default useCameraStore \ No newline at end of file
+ barcode: "",
+ setBarcode: (barcode) => set({ barcode }),
+
+ imageSj: [],
+ setImageSj: (imgOrArr) =>
+ set((s) => ({
+ imageSj: Array.isArray(imgOrArr) ? imgOrArr : [...s.imageSj, imgOrArr],
+ })),
+ removeSjImage: (idx) =>
+ set((s) => ({ imageSj: s.imageSj.filter((_, i) => i !== idx) })),
+
+ imagePackage: "",
+ setImagePackage: (image) => set({ imagePackage: image }),
+
+ imageDispatch: "",
+ setImageDispatch: (image) => set({ imageDispatch: image }),
+}));
+
+export default useCameraStore;