@yogiswara/honcho-editor-ui 2.2.6 → 2.2.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.
|
@@ -177,7 +177,7 @@ export declare function useHonchoEditor(controller: Controller, initImageId: str
|
|
|
177
177
|
handleClosePresetModal: () => void;
|
|
178
178
|
handleOpenPresetModalMobile: () => void;
|
|
179
179
|
handleClosePresetModalMobile: () => void;
|
|
180
|
-
handleCreatePresetMobile: () => void
|
|
180
|
+
handleCreatePresetMobile: () => Promise<void>;
|
|
181
181
|
setPresetName: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
182
182
|
handleNameChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
183
183
|
isRenameModalOpen: boolean;
|
|
@@ -251,34 +251,47 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
251
251
|
const handleCreatePreset = useCallback(async () => {
|
|
252
252
|
if (!controller)
|
|
253
253
|
return;
|
|
254
|
+
// The current adjustment state from the history hook
|
|
254
255
|
const currentAdjustments = { ...currentAdjustmentsState };
|
|
255
256
|
try {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
257
|
+
// Call the controller, which now calls the real API
|
|
258
|
+
const newPresetFromApi = await controller.createPreset(firebaseUid, presetName, currentAdjustments);
|
|
259
|
+
// If the API call was successful and returned a preset...
|
|
260
|
+
if (newPresetFromApi) {
|
|
261
|
+
// ...add the new preset from the API response to our local state
|
|
262
|
+
setPresets(prevPresets => [...prevPresets, newPresetFromApi]);
|
|
260
263
|
}
|
|
261
264
|
}
|
|
262
265
|
catch (error) {
|
|
263
266
|
console.error("Failed to create preset:", error);
|
|
267
|
+
// Optionally: show an error message to the user here
|
|
264
268
|
}
|
|
265
|
-
|
|
266
|
-
const newPreset = { id: `preset${presets.length + 1}`, name: presetName };
|
|
267
|
-
setPresets(prevPresets => [...prevPresets, newPreset]);
|
|
269
|
+
// Close the modal and show a confirmation
|
|
268
270
|
setIsPresetCreated(true);
|
|
269
271
|
handleClosePresetModal();
|
|
270
|
-
setTimeout(() => setIsPresetCreated(false), 1000);
|
|
272
|
+
setTimeout(() => setIsPresetCreated(false), 1000); // Hide confirmation after 1s
|
|
271
273
|
}, [controller, presetName, currentAdjustmentsState, firebaseUid]);
|
|
272
274
|
const handleOpenPresetModalMobile = () => { setIsPresetCreated(false); setPresetModalOpenMobile(true); };
|
|
273
275
|
const handleClosePresetModalMobile = () => setPresetModalOpenMobile(false);
|
|
274
|
-
const handleCreatePresetMobile = () => {
|
|
276
|
+
const handleCreatePresetMobile = useCallback(async () => {
|
|
277
|
+
if (!controller)
|
|
278
|
+
return;
|
|
275
279
|
console.log("Creating mobile preset:", presetName);
|
|
276
|
-
const
|
|
277
|
-
|
|
280
|
+
const currentAdjustments = { ...currentAdjustmentsState };
|
|
281
|
+
try {
|
|
282
|
+
// RE-USE THE SAME LOGIC AS THE DESKTOP VERSION
|
|
283
|
+
const newPresetFromApi = await controller.createPreset(firebaseUid, presetName, currentAdjustments);
|
|
284
|
+
if (newPresetFromApi) {
|
|
285
|
+
setPresets(prevPresets => [...prevPresets, newPresetFromApi]);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
console.error("Failed to create mobile preset:", error);
|
|
290
|
+
}
|
|
278
291
|
setIsPresetCreated(true);
|
|
279
292
|
handleClosePresetModalMobile();
|
|
280
293
|
setTimeout(() => setIsPresetCreated(false), 1000);
|
|
281
|
-
};
|
|
294
|
+
}, [controller, presetName, currentAdjustmentsState, firebaseUid]);
|
|
282
295
|
const handleNameChange = (event) => setPresetName(event.target.value);
|
|
283
296
|
// Watermark Handlers
|
|
284
297
|
const handleOpenWatermarkView = () => setIsCreatingWatermark(true);
|