Skip to content

Commit f42a07e

Browse files
vid277cdxker
authored andcommitted
fix: refactor handle image editing function + fix rebase errors
1 parent ba9eab7 commit f42a07e

File tree

1 file changed

+61
-62
lines changed

1 file changed

+61
-62
lines changed

clients/search-component/src/utils/hooks/chat-context.tsx

Lines changed: 61 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,10 @@ function ChatProvider({ children }: { children: React.ReactNode }) {
509509

510510
let stoppedGeneratingMessage = false;
511511
let createMessageFilters: ChunkFilter | null = null;
512+
let useImage = false;
513+
let referenceImageUrls: string[] = [];
514+
let referenceChunks: Chunk[] = [];
515+
512516

513517
if (!groupIds || groupIds.length === 0) {
514518
chatMessageAbortController.current = new AbortController();
@@ -524,65 +528,6 @@ function ChatProvider({ children }: { children: React.ReactNode }) {
524528

525529
setLoadingText("Thinking about filter criteria...");
526530

527-
let referenceImageUrls: string[] = [];
528-
let referenceChunks: Chunk[] = [];
529-
let useImage = false;
530-
531-
const handleImageEdit = async () => {
532-
console.log("REFERENCE IMAGE URLS", referenceImageUrls);
533-
if (useImage) {
534-
setLoadingText("Editing image...");
535-
536-
try {
537-
const editImageResponse = await trieveSDK.editImage({
538-
input_images: [
539-
{
540-
image_src: {
541-
url: imageUrl,
542-
},
543-
file_name: "input_image",
544-
},
545-
...(referenceImageUrls?.map((url: string, index: number) => ({
546-
image_src: {
547-
url,
548-
},
549-
file_name: `reference_image_${index + 1}`,
550-
})) || []),
551-
],
552-
prompt:
553-
"Using the input image as a base reference, apply the following edit and use the reference images if provided: " +
554-
(questionProp || currentQuestion),
555-
quality: "medium",
556-
n: 1,
557-
});
558-
559-
if (
560-
editImageResponse.image_urls &&
561-
editImageResponse.image_urls.length > 0
562-
) {
563-
setMessages((m) => [
564-
...m.slice(0, -1),
565-
{
566-
type: "system",
567-
text: "Here's your edited image and other suggestions!",
568-
additional: referenceChunks,
569-
queryId: null,
570-
imageUrl: editImageResponse.image_urls[0],
571-
},
572-
]);
573-
setImageUrl("");
574-
setIsLoading(false);
575-
return true;
576-
}
577-
} catch (e) {
578-
console.error("error editing image", e);
579-
return false;
580-
}
581-
}
582-
583-
return false;
584-
};
585-
586531
try {
587532
const priceFiltersPromise = retryOperation(async () => {
588533
if (props.type === "ecommerce" && !curGroup) {
@@ -726,9 +671,8 @@ function ChatProvider({ children }: { children: React.ReactNode }) {
726671
});
727672
}
728673

729-
useImage = (imageFiltersResp?.parameters &&
730-
(imageFiltersResp.parameters as any)["image"] === true &&
731-
imageUrl) as boolean;
674+
useImage = (imageFiltersResp?.parameters &&
675+
(imageFiltersResp.parameters as any)["image"] === true && imageUrl) as boolean;
732676

733677
const match_any_tags = [];
734678
if (tagFiltersResp?.parameters) {
@@ -1047,6 +991,61 @@ function ChatProvider({ children }: { children: React.ReactNode }) {
1047991
}
1048992
}
1049993

994+
const handleImageEdit = async () => {
995+
console.log("REFERENCE IMAGE URLS", referenceImageUrls);
996+
if (useImage) {
997+
setLoadingText("Editing image...");
998+
999+
try {
1000+
const editImageResponse = await trieveSDK.editImage({
1001+
input_images: [
1002+
{
1003+
image_src: {
1004+
url: imageUrl,
1005+
},
1006+
file_name: "input_image",
1007+
},
1008+
...(referenceImageUrls?.map((url: string, index: number) => ({
1009+
image_src: {
1010+
url,
1011+
},
1012+
file_name: `reference_image_${index + 1}`,
1013+
})) || []),
1014+
],
1015+
prompt:
1016+
"Using the input image as a base reference, apply the following edit and use the reference images if provided: " +
1017+
(questionProp || currentQuestion),
1018+
quality: "medium",
1019+
n: 1,
1020+
});
1021+
1022+
if (
1023+
editImageResponse.image_urls &&
1024+
editImageResponse.image_urls.length > 0
1025+
) {
1026+
setMessages((m) => [
1027+
...m.slice(0, -1),
1028+
{
1029+
type: "system",
1030+
text: "Here's your edited image and other suggestions!",
1031+
additional: referenceChunks,
1032+
queryId: null,
1033+
imageUrl: editImageResponse.image_urls[0],
1034+
},
1035+
]);
1036+
setImageUrl("");
1037+
setIsLoading(false);
1038+
return true;
1039+
}
1040+
} catch (e) {
1041+
console.error("error editing image", e);
1042+
return false;
1043+
}
1044+
}
1045+
1046+
return false;
1047+
};
1048+
10501049
if (referenceImageUrls.length > 0) {
10511050
if (await handleImageEdit()) {
10521051
return;

0 commit comments

Comments
 (0)