blob: 874c6274f8ba3afbe6cb31b148c081fd2b2933d9 (
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
29
30
31
32
33
34
35
36
37
38
|
// lib/camera/hooks/useCameraStore.ts
import { create } from "zustand";
interface CameraStore {
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) => 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;
|