@yogiswara/honcho-editor-ui 1.0.10 → 1.0.12
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.
|
@@ -9,30 +9,68 @@ export interface Content {
|
|
|
9
9
|
width: number;
|
|
10
10
|
height: number;
|
|
11
11
|
}
|
|
12
|
+
export interface ColorAdjustment {
|
|
13
|
+
temperature: number;
|
|
14
|
+
tint: number;
|
|
15
|
+
saturation: number;
|
|
16
|
+
vibrance: number;
|
|
17
|
+
exposure: number;
|
|
18
|
+
contrast: number;
|
|
19
|
+
highlights: number;
|
|
20
|
+
shadows: number;
|
|
21
|
+
whites: number;
|
|
22
|
+
blacks: number;
|
|
23
|
+
clarity: number;
|
|
24
|
+
sharpness: number;
|
|
25
|
+
}
|
|
26
|
+
export interface TransformationAdjustment {
|
|
27
|
+
angle_score?: number;
|
|
28
|
+
direction?: "cw" | "ccw";
|
|
29
|
+
scale_score?: number;
|
|
30
|
+
keep_dimension?: boolean;
|
|
31
|
+
flip_mode?: "horizontal" | "vertical" | "mix";
|
|
32
|
+
aspect_ratio?: string;
|
|
33
|
+
width?: number;
|
|
34
|
+
height?: number;
|
|
35
|
+
}
|
|
36
|
+
export interface Watermark {
|
|
37
|
+
path: string;
|
|
38
|
+
max_pct: [number, number];
|
|
39
|
+
anchor: [string, number | null, number[] | null];
|
|
40
|
+
rotate_deg: [number, "cw" | "ccw"];
|
|
41
|
+
}
|
|
42
|
+
export interface EditorConfig {
|
|
43
|
+
color_adjustment: ColorAdjustment;
|
|
44
|
+
transformation_adjustment: TransformationAdjustment[];
|
|
45
|
+
watermarks: Watermark[];
|
|
46
|
+
}
|
|
12
47
|
export interface Gallery {
|
|
13
48
|
id: string;
|
|
14
49
|
uid: string;
|
|
15
50
|
event_id: string;
|
|
16
51
|
download: Content;
|
|
17
|
-
download_edited: Content;
|
|
52
|
+
download_edited: Content | null;
|
|
18
53
|
raw?: Content;
|
|
19
54
|
raw_edited?: Content;
|
|
55
|
+
raw_preview?: Content;
|
|
56
|
+
raw_thumbnail?: Content;
|
|
20
57
|
original?: Content;
|
|
21
|
-
original_edited?: Content;
|
|
58
|
+
original_edited?: Content | null;
|
|
22
59
|
large?: Content;
|
|
23
|
-
large_edited?: Content;
|
|
24
|
-
medium?: Content;
|
|
25
|
-
medium_edited?: Content;
|
|
26
|
-
small?: Content;
|
|
27
|
-
small_edited?: Content;
|
|
28
|
-
mini?: Content;
|
|
29
|
-
mini_edited?: Content;
|
|
60
|
+
large_edited?: Content | null;
|
|
61
|
+
medium?: Content | null;
|
|
62
|
+
medium_edited?: Content | null;
|
|
63
|
+
small?: Content | null;
|
|
64
|
+
small_edited?: Content | null;
|
|
65
|
+
mini?: Content | null;
|
|
66
|
+
mini_edited?: Content | null;
|
|
30
67
|
create_from?: string[];
|
|
31
68
|
thumbnail: Content;
|
|
32
|
-
thumbnail_edited: Content;
|
|
69
|
+
thumbnail_edited: Content | null;
|
|
33
70
|
is_original: boolean;
|
|
34
71
|
available: boolean;
|
|
35
72
|
show_gallery: boolean;
|
|
73
|
+
editor_config?: EditorConfig;
|
|
36
74
|
log: Log;
|
|
37
75
|
}
|
|
38
76
|
export {};
|
|
@@ -6,14 +6,13 @@ declare global {
|
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
export interface Controller {
|
|
9
|
-
onGetImage(firebaseUid: string, imageID: string): Promise<Gallery
|
|
9
|
+
onGetImage(firebaseUid: string, imageID: string): Promise<Gallery>;
|
|
10
10
|
getImageList(firebaseUid: string): Promise<Gallery[]>;
|
|
11
11
|
syncConfig(firebaseUid: string): Promise<void>;
|
|
12
12
|
handleBack(firebaseUid: string): void;
|
|
13
13
|
getPresets(firebaseUid: string): Promise<Preset[]>;
|
|
14
|
-
createPreset(firebaseUid: string, name: string, settings: AdjustmentState): Promise<Preset
|
|
14
|
+
createPreset(firebaseUid: string, name: string, settings: AdjustmentState): Promise<Preset>;
|
|
15
15
|
deletePreset(firebaseUid: string, presetId: string): Promise<void>;
|
|
16
|
-
renamePreset(firebaseUid: string, presetId: string, newName: string): Promise<void>;
|
|
17
16
|
}
|
|
18
17
|
export type AdjustmentState = {
|
|
19
18
|
tempScore: number;
|
|
@@ -47,13 +46,12 @@ export declare function useHonchoEditor(controller: Controller, initImageId: str
|
|
|
47
46
|
fileInputRef: import("react").MutableRefObject<HTMLInputElement | null>;
|
|
48
47
|
displayedToken: string | null;
|
|
49
48
|
handleBack: (firebaseUid: string) => void;
|
|
50
|
-
onGetImage: (firebaseUid: string, imageID: string) => Promise<Gallery
|
|
49
|
+
onGetImage: (firebaseUid: string, imageID: string) => Promise<Gallery>;
|
|
51
50
|
getImageList: (firebaseUid: string) => Promise<Gallery[]>;
|
|
52
51
|
syncConfig: (firebaseUid: string) => Promise<void>;
|
|
53
52
|
getPresets: (firebaseUid: string) => Promise<Preset[]>;
|
|
54
|
-
createPreset: (firebaseUid: string, name: string, settings: AdjustmentState) => Promise<Preset
|
|
53
|
+
createPreset: (firebaseUid: string, name: string, settings: AdjustmentState) => Promise<Preset>;
|
|
55
54
|
deletePreset: (firebaseUid: string, presetId: string) => Promise<void>;
|
|
56
|
-
renamePreset: (firebaseUid: string, presetId: string, newName: string) => Promise<void>;
|
|
57
55
|
panelRef: import("react").MutableRefObject<HTMLDivElement | null>;
|
|
58
56
|
contentRef: import("react").MutableRefObject<HTMLDivElement | null>;
|
|
59
57
|
panelHeight: number;
|
|
@@ -175,7 +173,6 @@ export declare function useHonchoEditor(controller: Controller, initImageId: str
|
|
|
175
173
|
handlePresetMenuClose: () => void;
|
|
176
174
|
handleCreatePreset: () => Promise<void>;
|
|
177
175
|
handleRemovePreset: () => void;
|
|
178
|
-
handleRenamePreset: (newName: string) => Promise<void>;
|
|
179
176
|
handleDeletePreset: () => Promise<void>;
|
|
180
177
|
handleOpenPresetModal: () => void;
|
|
181
178
|
handleClosePresetModal: () => void;
|
|
@@ -190,7 +187,6 @@ export declare function useHonchoEditor(controller: Controller, initImageId: str
|
|
|
190
187
|
setNewPresetName: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
191
188
|
handleOpenRenameModal: () => void;
|
|
192
189
|
handleCloseRenameModal: () => void;
|
|
193
|
-
handleConfirmRename: () => Promise<void>;
|
|
194
190
|
handleOpenWatermarkView: () => void;
|
|
195
191
|
handleSaveWatermark: () => void;
|
|
196
192
|
handleCancelWatermark: () => void;
|
|
@@ -265,8 +265,11 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
265
265
|
setEditorStatus("Fetching image...");
|
|
266
266
|
try {
|
|
267
267
|
const gallery = await controller.onGetImage(firebaseUid, imageId);
|
|
268
|
-
|
|
269
|
-
|
|
268
|
+
const imagePath = gallery?.raw_edited?.path
|
|
269
|
+
? gallery.raw_edited.path
|
|
270
|
+
: gallery?.download?.path;
|
|
271
|
+
if (imagePath) {
|
|
272
|
+
await loadImageFromUrl(imagePath);
|
|
270
273
|
}
|
|
271
274
|
else {
|
|
272
275
|
throw new Error("Controller did not return a valid image object with path.");
|
|
@@ -717,19 +720,6 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
717
720
|
};
|
|
718
721
|
const handlePresetMenuClose = () => { setPresetMenuAnchorEl(null); setActivePresetMenuId(null); };
|
|
719
722
|
const handleRemovePreset = () => { console.log(`Remove: ${activePresetMenuId}`); handlePresetMenuClose(); };
|
|
720
|
-
const handleRenamePreset = useCallback(async (newName) => {
|
|
721
|
-
if (!controller || !activePresetMenuId)
|
|
722
|
-
return;
|
|
723
|
-
try {
|
|
724
|
-
await controller.renamePreset(firebaseUid, activePresetMenuId, newName);
|
|
725
|
-
// On success, update the preset in local state
|
|
726
|
-
setPresets(prev => prev.map(p => p.id === activePresetMenuId ? { ...p, name: newName } : p));
|
|
727
|
-
}
|
|
728
|
-
catch (error) {
|
|
729
|
-
console.error("Failed to rename preset:", error);
|
|
730
|
-
}
|
|
731
|
-
handlePresetMenuClose();
|
|
732
|
-
}, [controller, activePresetMenuId]);
|
|
733
723
|
const handleDeletePreset = useCallback(async () => {
|
|
734
724
|
if (!controller || !activePresetMenuId)
|
|
735
725
|
return;
|
|
@@ -798,19 +788,6 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
798
788
|
setPresetToRename(null);
|
|
799
789
|
setNewPresetName("");
|
|
800
790
|
};
|
|
801
|
-
const handleConfirmRename = useCallback(async () => {
|
|
802
|
-
if (!presetToRename || !newPresetName)
|
|
803
|
-
return;
|
|
804
|
-
try {
|
|
805
|
-
await controller.renamePreset(firebaseUid, presetToRename.id, newPresetName);
|
|
806
|
-
// On success, update the preset in local state
|
|
807
|
-
setPresets(prev => prev.map(p => p.id === presetToRename.id ? { ...p, name: newPresetName } : p));
|
|
808
|
-
}
|
|
809
|
-
catch (error) {
|
|
810
|
-
console.error("Failed to rename preset:", error);
|
|
811
|
-
}
|
|
812
|
-
handleCloseRenameModal();
|
|
813
|
-
}, [controller, presetToRename, newPresetName]);
|
|
814
791
|
// Bulk Editing Handlers
|
|
815
792
|
const toggleBulkEditing = () => {
|
|
816
793
|
setIsBulkEditing(prev => {
|
|
@@ -1010,7 +987,6 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
1010
987
|
getPresets: controller.getPresets,
|
|
1011
988
|
createPreset: controller.createPreset,
|
|
1012
989
|
deletePreset: controller.deletePreset,
|
|
1013
|
-
renamePreset: controller.renamePreset,
|
|
1014
990
|
// Refs for mobile panel
|
|
1015
991
|
panelRef,
|
|
1016
992
|
contentRef,
|
|
@@ -1106,7 +1082,6 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
1106
1082
|
handlePresetMenuClose,
|
|
1107
1083
|
handleCreatePreset,
|
|
1108
1084
|
handleRemovePreset,
|
|
1109
|
-
handleRenamePreset,
|
|
1110
1085
|
handleDeletePreset,
|
|
1111
1086
|
handleOpenPresetModal,
|
|
1112
1087
|
handleClosePresetModal,
|
|
@@ -1121,7 +1096,6 @@ export function useHonchoEditor(controller, initImageId, firebaseUid) {
|
|
|
1121
1096
|
setNewPresetName,
|
|
1122
1097
|
handleOpenRenameModal,
|
|
1123
1098
|
handleCloseRenameModal,
|
|
1124
|
-
handleConfirmRename,
|
|
1125
1099
|
handleOpenWatermarkView,
|
|
1126
1100
|
handleSaveWatermark,
|
|
1127
1101
|
handleCancelWatermark,
|