@yogiswara/honcho-editor-ui 2.5.5 → 2.5.7
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.
|
@@ -27,6 +27,8 @@ export declare function useHonchoEditorBulk(controller: Controller, eventID: str
|
|
|
27
27
|
error: string | null;
|
|
28
28
|
selectedIds: string[];
|
|
29
29
|
hasMore: boolean;
|
|
30
|
+
loadMoreImages: () => void;
|
|
31
|
+
isFetchingMore: boolean;
|
|
30
32
|
handleBackCallbackBulk: () => void;
|
|
31
33
|
selectedBulkPreset: string;
|
|
32
34
|
handleToggleImageSelection: (imageId: string) => void;
|
|
@@ -45,6 +45,7 @@ export function useHonchoEditorBulk(controller, eventID, firebaseUid) {
|
|
|
45
45
|
const [isLoading, setIsLoading] = useState(true);
|
|
46
46
|
const [error, setError] = useState(null);
|
|
47
47
|
const [page, setPage] = useState(1);
|
|
48
|
+
const [isFetchingMore, setIsFetchingMore] = useState(false);
|
|
48
49
|
const [hasMore, setHasMore] = useState(true);
|
|
49
50
|
const [selectedBulkPreset, setSelectedBulkPreset] = useState('preset1');
|
|
50
51
|
const imageData = useMemo(() => {
|
|
@@ -115,68 +116,79 @@ export function useHonchoEditorBulk(controller, eventID, firebaseUid) {
|
|
|
115
116
|
const handleBulkSharpnessDecrease = createRelativeAdjuster('sharpnessScore', -5);
|
|
116
117
|
const handleBulkSharpnessIncrease = createRelativeAdjuster('sharpnessScore', 5);
|
|
117
118
|
const handleBulkSharpnessIncreaseMax = createRelativeAdjuster('sharpnessScore', 20);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
// const response = await controller.getImageList(firebaseUid, eventID, pageNum);
|
|
122
|
-
// batchActions.syncAdjustment(response.gallery.map(mapToImageAdjustmentConfig));
|
|
123
|
-
// // append instead of replacing
|
|
124
|
-
// setImageCollection(prev => [...prev, ...response.gallery]);
|
|
125
|
-
// // track page & "more" status
|
|
126
|
-
// setPage(response.current_page);
|
|
127
|
-
// if (!response.next_page || response.gallery.length === 0) {
|
|
128
|
-
// setHasMore(false);
|
|
129
|
-
// } else {
|
|
130
|
-
// setHasMore(true);
|
|
131
|
-
// }
|
|
132
|
-
// } catch (err) {
|
|
133
|
-
// console.error("Failed to fetch image list:", err);
|
|
134
|
-
// setError("Could not load images.");
|
|
135
|
-
// } finally {
|
|
136
|
-
// setIsLoading(false);
|
|
137
|
-
// }
|
|
138
|
-
// }, [controller, firebaseUid, eventID, batchActions]);
|
|
139
|
-
// const loadMoreImages = useCallback(() => {
|
|
140
|
-
// if (!isLoading && hasMore) {
|
|
141
|
-
// loadImages(page + 1);
|
|
142
|
-
// }
|
|
143
|
-
// }, [isLoading, hasMore, page, loadImages]);
|
|
144
|
-
// Extract selected image IDs for other operations (like applying bulk adjustments)
|
|
145
|
-
useEffect(() => {
|
|
146
|
-
if (eventID && firebaseUid) {
|
|
119
|
+
const loadImages = useCallback(async (pageNum) => {
|
|
120
|
+
// Use the correct loading state
|
|
121
|
+
if (pageNum === 1) {
|
|
147
122
|
setIsLoading(true);
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
setIsFetchingMore(true);
|
|
126
|
+
}
|
|
127
|
+
setError(null);
|
|
128
|
+
try {
|
|
129
|
+
const response = await controller.getImageList(firebaseUid, eventID, pageNum);
|
|
130
|
+
// Sync adjustments for the new images with the batch history
|
|
131
|
+
batchActions.syncAdjustment(response.gallery.map(mapToImageAdjustmentConfig));
|
|
132
|
+
// Append new images for page > 1, otherwise replace
|
|
133
|
+
setImageCollection(prev => pageNum === 1 ? response.gallery : [...prev, ...response.gallery]);
|
|
134
|
+
setPage(response.current_page);
|
|
135
|
+
setHasMore(response.next_page > 0 && response.gallery.length > 0);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
console.error("Failed to fetch image list:", err);
|
|
139
|
+
setError(err.message || "Could not load images.");
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
if (pageNum === 1) {
|
|
160
143
|
setIsLoading(false);
|
|
161
|
-
}
|
|
162
|
-
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
setIsFetchingMore(false);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}, [controller, firebaseUid, eventID, batchActions]);
|
|
150
|
+
const loadMoreImages = useCallback(() => {
|
|
151
|
+
if (!isFetchingMore && hasMore) {
|
|
152
|
+
loadImages(page + 1);
|
|
163
153
|
}
|
|
164
|
-
}, [
|
|
154
|
+
}, [isFetchingMore, hasMore, page, loadImages]);
|
|
165
155
|
// useEffect(() => {
|
|
166
156
|
// if (eventID && firebaseUid) {
|
|
167
|
-
//
|
|
168
|
-
//
|
|
169
|
-
//
|
|
157
|
+
// setIsLoading(true);
|
|
158
|
+
// setError(null);
|
|
159
|
+
// controller.getImageList(firebaseUid, eventID, 2)
|
|
160
|
+
// .then(response => {
|
|
161
|
+
// // TODO need do pagination for this one
|
|
162
|
+
// batchActions.syncAdjustment(response.gallery.map(mapToImageAdjustmentConfig));
|
|
163
|
+
// setImageCollection(response.gallery);
|
|
164
|
+
// })
|
|
165
|
+
// .catch(err => {
|
|
166
|
+
// console.error("Failed to fetch image list:", err);
|
|
167
|
+
// setError("Could not load images.");
|
|
168
|
+
// })
|
|
169
|
+
// .finally(() => {
|
|
170
|
+
// setIsLoading(false);
|
|
171
|
+
// });
|
|
172
|
+
// console.log("Image data FROM USEHONCHOBULK: ", imageData);
|
|
170
173
|
// }
|
|
171
|
-
// }, [eventID, firebaseUid,
|
|
174
|
+
// }, [eventID, firebaseUid, controller]);
|
|
175
|
+
useEffect(() => {
|
|
176
|
+
if (eventID && firebaseUid) {
|
|
177
|
+
// Reset state when the event changes
|
|
178
|
+
setImageCollection([]);
|
|
179
|
+
setPage(1);
|
|
180
|
+
setHasMore(true);
|
|
181
|
+
loadImages(1); // Load the first page
|
|
182
|
+
}
|
|
183
|
+
}, [eventID, firebaseUid, loadImages]);
|
|
172
184
|
return {
|
|
173
185
|
imageData,
|
|
174
186
|
isLoading,
|
|
175
187
|
error,
|
|
176
188
|
selectedIds,
|
|
177
189
|
hasMore,
|
|
178
|
-
|
|
179
|
-
|
|
190
|
+
loadMoreImages,
|
|
191
|
+
isFetchingMore,
|
|
180
192
|
handleBackCallbackBulk,
|
|
181
193
|
selectedBulkPreset,
|
|
182
194
|
handleToggleImageSelection: batchActions.toggleSelection,
|