diff options
Diffstat (limited to 'app/lib/camera/hooks')
| -rw-r--r-- | app/lib/camera/hooks/useCameraStore.ts | 54 |
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; |
