@yogiswara/honcho-editor-ui 2.5.0 → 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.
@@ -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,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yogiswara/honcho-editor-ui",
3
- "version": "2.5.0",
3
+ "version": "2.5.1",
4
4
  "description": "A complete UI component library for the Honcho photo editor.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",