@yogiswara/honcho-editor-ui 2.4.1 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -7,7 +7,7 @@ import HTabPresetMobile from "./HTabPresetMobile";
|
|
|
7
7
|
// Data structure for the sub-navigation tabs
|
|
8
8
|
const subTabs = {
|
|
9
9
|
colorAdjustment: [
|
|
10
|
-
{ value: "color", label: "Color", inactiveIcon: "/v1/svg/
|
|
10
|
+
{ value: "color", label: "Color", inactiveIcon: "/v1/svg/new-mobile-coloAdjustment-notpress.svg", activeIcon: "/v1/svg/new-mobile-coloAdjustment-presssvg.svg" },
|
|
11
11
|
{ value: "light", label: "Light", inactiveIcon: "/v1/svg/light-inactive-mobile.svg", activeIcon: "/v1/svg/light-active-mobile.svg" },
|
|
12
12
|
// { value: "details", label: "Details", inactiveIcon: "/v1/svg/details-inactive-mobile.svg", activeIcon: "/v1/svg/details-active-mobile.svg"},
|
|
13
13
|
],
|
|
@@ -26,6 +26,8 @@ export declare function useHonchoEditorBulk(controller: Controller, eventID: str
|
|
|
26
26
|
isLoading: boolean;
|
|
27
27
|
error: string | null;
|
|
28
28
|
selectedIds: string[];
|
|
29
|
+
hasMore: boolean;
|
|
30
|
+
loadMoreImages: () => void;
|
|
29
31
|
handleBackCallbackBulk: () => void;
|
|
30
32
|
selectedBulkPreset: string;
|
|
31
33
|
handleToggleImageSelection: (imageId: string) => void;
|
|
@@ -44,6 +44,8 @@ export function useHonchoEditorBulk(controller, eventID, firebaseUid) {
|
|
|
44
44
|
const [imageCollection, setImageCollection] = useState([]);
|
|
45
45
|
const [isLoading, setIsLoading] = useState(true);
|
|
46
46
|
const [error, setError] = useState(null);
|
|
47
|
+
const [page, setPage] = useState(1);
|
|
48
|
+
const [hasMore, setHasMore] = useState(true);
|
|
47
49
|
const [selectedBulkPreset, setSelectedBulkPreset] = useState('preset1');
|
|
48
50
|
const imageData = useMemo(() => {
|
|
49
51
|
return imageCollection.map(item => {
|
|
@@ -111,6 +113,27 @@ export function useHonchoEditorBulk(controller, eventID, firebaseUid) {
|
|
|
111
113
|
const handleBulkSharpnessDecrease = createRelativeAdjuster('sharpnessScore', -5);
|
|
112
114
|
const handleBulkSharpnessIncrease = createRelativeAdjuster('sharpnessScore', 5);
|
|
113
115
|
const handleBulkSharpnessIncreaseMax = createRelativeAdjuster('sharpnessScore', 20);
|
|
116
|
+
const loadImages = useCallback(async (pageNum) => {
|
|
117
|
+
setIsLoading(true);
|
|
118
|
+
try {
|
|
119
|
+
const res = await controller.getImageList(firebaseUid, eventID, pageNum);
|
|
120
|
+
const newImages = res.gallery || [];
|
|
121
|
+
setImageCollection(prev => [...prev, ...newImages]);
|
|
122
|
+
setPage(pageNum);
|
|
123
|
+
setHasMore(newImages.length > 0);
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
console.error("Failed to load images:", err);
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
setIsLoading(false);
|
|
130
|
+
}
|
|
131
|
+
}, [controller, firebaseUid, eventID]);
|
|
132
|
+
const loadMoreImages = useCallback(() => {
|
|
133
|
+
if (!isLoading && hasMore) {
|
|
134
|
+
loadImages(page + 1);
|
|
135
|
+
}
|
|
136
|
+
}, [isLoading, hasMore, page, loadImages]);
|
|
114
137
|
// Extract selected image IDs for other operations (like applying bulk adjustments)
|
|
115
138
|
useEffect(() => {
|
|
116
139
|
if (eventID && firebaseUid) {
|
|
@@ -131,11 +154,16 @@ export function useHonchoEditorBulk(controller, eventID, firebaseUid) {
|
|
|
131
154
|
});
|
|
132
155
|
}
|
|
133
156
|
}, [eventID, firebaseUid, controller]);
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
setImageCollection([]);
|
|
159
|
+
}, [loadImages]);
|
|
134
160
|
return {
|
|
135
161
|
imageData,
|
|
136
162
|
isLoading,
|
|
137
163
|
error,
|
|
138
164
|
selectedIds,
|
|
165
|
+
hasMore,
|
|
166
|
+
loadMoreImages,
|
|
139
167
|
// Gallery Handlers
|
|
140
168
|
handleBackCallbackBulk,
|
|
141
169
|
selectedBulkPreset,
|