Skip to content

Commit 5c87298

Browse files
committed
refactor: cleanup chat-context to work with agentic search
1 parent d64806d commit 5c87298

File tree

7 files changed

+125
-577
lines changed

7 files changed

+125
-577
lines changed

clients/search-component/example/src/routes/ecommerce.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export default function ECommerce() {
2525
import.meta.env.VITE_SHOW_FLOATING_SEARCH_ICON == "true";
2626
const showFloatingInput = import.meta.env.VITE_SHOW_FLOATING_INPUT == "true";
2727
const usePagefind = import.meta.env.VITE_USE_PAGEFIND == "true";
28-
const defaultSearchQueries: any= (
28+
const defaultSearchQueries: any = (
2929
import.meta.env.VITE_DEFAULT_SEARCH_QUERIES ?? ""
3030
).split(",");
3131
const defaultTags: any[] = JSON.parse(

clients/search-component/src/TrieveModal/Chat/SuggestedQuestions.tsx

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ export const SuggestedQuestions = ({
2222
const { suggestedQuestions, isLoadingSuggestedQueries, getQuestions } =
2323
useSuggestedQuestions();
2424

25-
const { props, trieveSDK, fingerprint, abTreatment } =
26-
useModalState();
25+
const { props, trieveSDK, fingerprint, abTreatment } = useModalState();
2726
const [parent] = useAutoAnimate({ duration: 100 });
2827

2928
if (messages.length) {
@@ -33,7 +32,13 @@ export const SuggestedQuestions = ({
3332
const handleSuggestedQuestion = async (
3433
q: AiQuestion | DefaultSearchQuery | string,
3534
) => {
36-
setCurrentQuestion(isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "" : q);
35+
setCurrentQuestion(
36+
isAiQuestion(q)
37+
? q.questionText
38+
: isDefaultSearchQuery(q)
39+
? (q.query ?? "")
40+
: q,
41+
);
3742

3843
if (!isDefaultSearchQuery(q)) {
3944
askQuestion(
@@ -44,7 +49,11 @@ export const SuggestedQuestions = ({
4449
);
4550
} else {
4651
askQuestion(
47-
isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "" : q,
52+
isAiQuestion(q)
53+
? q.questionText
54+
: isDefaultSearchQuery(q)
55+
? (q.query ?? "")
56+
: q,
4857
undefined,
4958
isAiQuestion(q) ? (q.products?.map((p) => p.groupId) ?? []) : undefined,
5059
isAiQuestion(q) && q.promptForAI !== "" ? q.promptForAI : undefined,
@@ -63,7 +72,11 @@ export const SuggestedQuestions = ({
6372
user_id: fingerprint,
6473
location: window.location.href,
6574
metadata: {
66-
followup_query: isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "" : q,
75+
followup_query: isAiQuestion(q)
76+
? q.questionText
77+
: isDefaultSearchQuery(q)
78+
? (q.query ?? "")
79+
: q,
6780
component_props: props,
6881
ab_treatment: abTreatment,
6982
},
@@ -117,17 +130,27 @@ export const SuggestedQuestions = ({
117130
onClick={() => {
118131
handleSuggestedQuestion(q);
119132
}}
120-
key={isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "": q}
133+
key={
134+
isAiQuestion(q)
135+
? q.questionText
136+
: isDefaultSearchQuery(q)
137+
? (q.query ?? "")
138+
: q
139+
}
121140
className={`suggested-question tv-flex tv-gap-1 tv-items-center${
122141
isLoadingSuggestedQueries ? " loading" : ""
123142
}`}
124143
>
125144
<SparklesIcon fill="none" width={15} height={15} />
126-
{isAiQuestion(q) ? q.questionText : isDefaultSearchQuery(q) ? q.query ?? "": q}
145+
{isAiQuestion(q)
146+
? q.questionText
147+
: isDefaultSearchQuery(q)
148+
? (q.query ?? "")
149+
: q}
127150
</button>
128151
))}
129152
</div>
130153
</div>
131154
</div>
132155
);
133-
};
156+
};

clients/search-component/src/TrieveModal/Search/SuggestedQueries.tsx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import React, { useCallback, useEffect, useState } from "react";
22
import { cn } from "../../utils/styles";
3-
import { useModalState, isDefaultSearchQuery } from "../../utils/hooks/modal-context";
3+
import {
4+
useModalState,
5+
isDefaultSearchQuery,
6+
} from "../../utils/hooks/modal-context";
47
import { DefaultSearchQuery } from "trieve-ts-sdk";
58
import { getSuggestedQueries } from "../../utils/trieve";
69

@@ -42,9 +45,11 @@ export const SuggestedQueries = () => {
4245

4346
useEffect(() => {
4447
const defaultQueries =
45-
props.defaultSearchQueries && props.defaultSearchQueries.length > 0 && isDefaultSearchQuery(props.defaultSearchQueries[0])
48+
props.defaultSearchQueries &&
49+
props.defaultSearchQueries.length > 0 &&
50+
isDefaultSearchQuery(props.defaultSearchQueries[0])
4651
? props.defaultSearchQueries
47-
: props.defaultSearchQueries?.filter((q) => q !== "") ?? [];
52+
: (props.defaultSearchQueries?.filter((q) => q !== "") ?? []);
4853

4954
if (props.defaultSearchQueries?.length) {
5055
setSuggestedQueries(defaultQueries);
@@ -79,7 +84,9 @@ export const SuggestedQueries = () => {
7984
<div className="suggested-query loading">Loading...</div>
8085
) : (
8186
suggestedQueries.map((q) => {
82-
let query = isDefaultSearchQuery(q) ? q.query?.replace(/^-|\*$/g, "") : q.replace(/^-|\*$/g, "");
87+
let query = isDefaultSearchQuery(q)
88+
? q.query?.replace(/^-|\*$/g, "")
89+
: q.replace(/^-|\*$/g, "");
8390
query = query?.trim();
8491
return (
8592
<button

clients/search-component/src/TrieveModal/index.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,14 @@ const Modal = () => {
185185
setMode("chat");
186186
cancelGroupChat();
187187
setOpen(true);
188-
askQuestion(customEvent.detail.text, undefined, undefined, "", true, customEvent.detail.imageUrl);
188+
askQuestion(
189+
customEvent.detail.text,
190+
undefined,
191+
undefined,
192+
"",
193+
true,
194+
customEvent.detail.imageUrl,
195+
);
189196
} else {
190197
setOpen(true);
191198
setMode("search");

0 commit comments

Comments
 (0)