@yogiswara/honcho-editor-ui 2.3.0 → 2.3.2
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.
|
@@ -3,5 +3,5 @@ import { Modal, Box, Typography, Button, Stack, IconButton, CardMedia } from "@m
|
|
|
3
3
|
import useColors from '../../themes/colors';
|
|
4
4
|
export default function HModalMobile(props) {
|
|
5
5
|
const colors = useColors();
|
|
6
|
-
return (_jsx(_Fragment, { children: _jsx(Modal, { open: props.modalOpen, onClose: props.modalClose, children: _jsxs(Stack, { direction: "column", spacing: 2, height: "100%", sx: { p: "10px", backgroundColor: colors.surface }, children: [_jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [_jsxs(Stack, { direction: "row", justifyContent: "flex-start", alignItems: "center", spacing: 1, children: [_jsx(IconButton, { "aria-label": "close", onClick: props.modalClose, children: _jsx(CardMedia, { component: "img", image: "/v1/svg/exit-button-modal-mobile.svg" }) }), _jsx(Typography, { variant: "h6", color: "initial", children: props.modalTitle })] }), _jsx(Button, { onClick: props.onConfirm, children: "Save" })] }), _jsx(Typography, { variant: "inherit", color: "initial", children: props.modalInformation }), _jsx(Box, { sx: { mt: 2 }, children: props.children })] }) }) }));
|
|
6
|
+
return (_jsx(_Fragment, { children: _jsx(Modal, { open: props.modalOpen, onClose: props.modalClose, children: _jsxs(Stack, { direction: "column", spacing: 2, height: "100%", sx: { p: "10px", backgroundColor: colors.surface }, children: [_jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [_jsxs(Stack, { direction: "row", justifyContent: "flex-start", alignItems: "center", spacing: 1, children: [_jsx(IconButton, { "aria-label": "close", onClick: props.modalClose, children: _jsx(CardMedia, { component: "img", image: "/v1/svg/exit-button-modal-mobile.svg" }) }), _jsx(Typography, { variant: "h6", color: "initial", children: props.modalTitle })] }), _jsx(Button, { onClick: props.onConfirm, children: "Save" })] }), _jsx(Typography, { variant: "inherit", color: "initial", children: props.modalInformation }), _jsx(Box, { sx: { mt: 2 }, children: props.children }), _jsx(Box, { children: props.action })] }) }) }));
|
|
7
7
|
}
|
|
@@ -184,14 +184,11 @@ export declare function useHonchoEditor(controller: Controller, initImageId: str
|
|
|
184
184
|
handleSelectDesktopPreset: (presetId: string) => void;
|
|
185
185
|
handlePresetMenuClick: (event: React.MouseEvent<HTMLElement>, presetId: string) => void;
|
|
186
186
|
handlePresetMenuClose: () => void;
|
|
187
|
-
handleCreatePreset: () => Promise<void>;
|
|
188
187
|
handleRemovePreset: () => void;
|
|
189
|
-
handleDeletePreset: () => Promise<void>;
|
|
190
188
|
handleOpenPresetModal: () => void;
|
|
191
189
|
handleClosePresetModal: () => void;
|
|
192
190
|
handleOpenPresetModalMobile: () => void;
|
|
193
191
|
handleClosePresetModalMobile: () => void;
|
|
194
|
-
handleCreatePresetMobile: () => Promise<void>;
|
|
195
192
|
setPresetName: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
196
193
|
handleNameChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
197
194
|
isRenameModalOpen: boolean;
|
|
@@ -22,6 +22,7 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
22
22
|
const [isEditorReady, setIsEditorReady] = useState(false);
|
|
23
23
|
const [isImageLoaded, setIsImageLoaded] = useState(false);
|
|
24
24
|
const [zoomLevel, setZoomLevel] = useState(1);
|
|
25
|
+
const [presets, setPresets] = useState([]);
|
|
25
26
|
// MARK: - Adjustment & History State
|
|
26
27
|
const [copiedAdjustments, setCopiedAdjustments] = useState(null);
|
|
27
28
|
const [copyColorChecks, setCopyColorChecks] = useState({ temperature: true, tint: true, vibrance: true, saturation: true });
|
|
@@ -46,7 +47,6 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
46
47
|
// Preset State
|
|
47
48
|
const [isPresetModalOpen, setPresetModalOpen] = useState(false);
|
|
48
49
|
const [isPresetModalOpenMobile, setPresetModalOpenMobile] = useState(false);
|
|
49
|
-
const [presets, setPresets] = useState([]);
|
|
50
50
|
const [presetName, setPresetName] = useState("Type Here");
|
|
51
51
|
const [isPresetCreated, setIsPresetCreated] = useState(false);
|
|
52
52
|
const [selectedMobilePreset, setSelectedMobilePreset] = useState('preset1');
|
|
@@ -232,63 +232,11 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
232
232
|
};
|
|
233
233
|
const handlePresetMenuClose = () => { setPresetMenuAnchorEl(null); setActivePresetMenuId(null); };
|
|
234
234
|
const handleRemovePreset = () => { console.log(`Remove: ${activePresetMenuId}`); handlePresetMenuClose(); };
|
|
235
|
-
const handleDeletePreset = useCallback(async () => {
|
|
236
|
-
if (!controller || !activePresetMenuId)
|
|
237
|
-
return;
|
|
238
|
-
try {
|
|
239
|
-
await controller.deletePreset(firebaseUid, activePresetMenuId);
|
|
240
|
-
// On success, remove the preset from local state
|
|
241
|
-
setPresets(prevPresets => prevPresets.filter(p => p.id !== activePresetMenuId));
|
|
242
|
-
}
|
|
243
|
-
catch (error) {
|
|
244
|
-
console.error("Failed to delete preset:", error);
|
|
245
|
-
}
|
|
246
|
-
handlePresetMenuClose(); // Close the options menu
|
|
247
|
-
}, [controller, activePresetMenuId]);
|
|
248
235
|
// Preset Modal Handlers
|
|
249
236
|
const handleOpenPresetModal = () => { setIsPresetCreated(false); setPresetModalOpen(true); };
|
|
250
237
|
const handleClosePresetModal = () => setPresetModalOpen(false);
|
|
251
|
-
const handleCreatePreset = useCallback(async () => {
|
|
252
|
-
if (!controller)
|
|
253
|
-
return;
|
|
254
|
-
// The current adjustment state from the history hook
|
|
255
|
-
const currentAdjustments = { ...currentAdjustmentsState };
|
|
256
|
-
try {
|
|
257
|
-
// Call the controller, which now calls the real API
|
|
258
|
-
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]);
|
|
263
|
-
// }
|
|
264
|
-
}
|
|
265
|
-
catch (error) {
|
|
266
|
-
console.error("Failed to create preset:", error);
|
|
267
|
-
// Optionally: show an error message to the user here
|
|
268
|
-
}
|
|
269
|
-
// Close the modal and show a confirmation
|
|
270
|
-
setIsPresetCreated(true);
|
|
271
|
-
handleClosePresetModal();
|
|
272
|
-
setTimeout(() => setIsPresetCreated(false), 1000); // Hide confirmation after 1s
|
|
273
|
-
}, [controller, presetName, currentAdjustmentsState, firebaseUid]);
|
|
274
238
|
const handleOpenPresetModalMobile = () => { setIsPresetCreated(false); setPresetModalOpenMobile(true); };
|
|
275
239
|
const handleClosePresetModalMobile = () => setPresetModalOpenMobile(false);
|
|
276
|
-
const handleCreatePresetMobile = useCallback(async () => {
|
|
277
|
-
if (!controller)
|
|
278
|
-
return;
|
|
279
|
-
console.log("Creating mobile preset:", presetName);
|
|
280
|
-
const currentAdjustments = { ...currentAdjustmentsState };
|
|
281
|
-
try {
|
|
282
|
-
// RE-USE THE SAME LOGIC AS THE DESKTOP VERSION
|
|
283
|
-
await controller.createPreset(firebaseUid, presetName, currentAdjustments);
|
|
284
|
-
}
|
|
285
|
-
catch (error) {
|
|
286
|
-
console.error("Failed to create mobile preset:", error);
|
|
287
|
-
}
|
|
288
|
-
setIsPresetCreated(true);
|
|
289
|
-
handleClosePresetModalMobile();
|
|
290
|
-
setTimeout(() => setIsPresetCreated(false), 1000);
|
|
291
|
-
}, [controller, presetName, currentAdjustmentsState, firebaseUid]);
|
|
292
240
|
const handleNameChange = (event) => setPresetName(event.target.value);
|
|
293
241
|
// Watermark Handlers
|
|
294
242
|
const handleOpenWatermarkView = () => setIsCreatingWatermark(true);
|
|
@@ -694,14 +642,11 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
694
642
|
handleSelectDesktopPreset,
|
|
695
643
|
handlePresetMenuClick,
|
|
696
644
|
handlePresetMenuClose,
|
|
697
|
-
handleCreatePreset,
|
|
698
645
|
handleRemovePreset,
|
|
699
|
-
handleDeletePreset,
|
|
700
646
|
handleOpenPresetModal,
|
|
701
647
|
handleClosePresetModal,
|
|
702
648
|
handleOpenPresetModalMobile,
|
|
703
649
|
handleClosePresetModalMobile,
|
|
704
|
-
handleCreatePresetMobile,
|
|
705
650
|
setPresetName,
|
|
706
651
|
handleNameChange,
|
|
707
652
|
isRenameModalOpen,
|