Skip to content

Commit b8c4846

Browse files
committed
Revert "feature: default search and ai questions sends images"
This reverts commit d107c1f.
1 parent 1248ea4 commit b8c4846

16 files changed

Lines changed: 83 additions & 185 deletions

File tree

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: string[] = (
2929
import.meta.env.VITE_DEFAULT_SEARCH_QUERIES ?? ""
3030
).split(",");
3131
const defaultTags: any[] = JSON.parse(

clients/search-component/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
"react-two-thumb-input-range": "^1.0.7",
8888
"remark-gfm": "^4.0.1",
8989
"tailwind-merge": "^3.0.2",
90-
"trieve-ts-sdk": "*"
90+
"trieve-ts-sdk": "^0.0.110"
9191
},
9292
"peerDependencies": {
9393
"react": "^18.3.1 || ^19.0.0-rc",

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

Lines changed: 13 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
1-
import React, { useEffect, useState } from "react";
1+
import React from "react";
22
import { useSuggestedQuestions } from "../../utils/hooks/useSuggestedQuestions";
33
import { useChatState } from "../../utils/hooks/chat-context";
44
import {
55
AiQuestion,
66
isAiQuestion,
7-
isDefaultSearchQuery,
87
useModalState,
98
} from "../../utils/hooks/modal-context";
109
import { cn } from "../../utils/styles";
1110
import { useAutoAnimate } from "@formkit/auto-animate/react";
1211
import { ArrowRotateRightIcon, SparklesIcon } from "../icons";
1312
import { AIInitialMessage } from "./AIInitalMessage";
14-
import { DefaultSearchQuery } from "trieve-ts-sdk";
1513

1614
export const SuggestedQuestions = ({
1715
onMessageSend,
@@ -22,44 +20,21 @@ export const SuggestedQuestions = ({
2220
const { suggestedQuestions, isLoadingSuggestedQueries, getQuestions } =
2321
useSuggestedQuestions();
2422

25-
const { props, trieveSDK, fingerprint, abTreatment, imageUrl, setImageUrl } =
26-
useModalState();
23+
const { props, trieveSDK, fingerprint, abTreatment } = useModalState();
2724
const [parent] = useAutoAnimate({ duration: 100 });
28-
const [selectedQuestion, setSelectedQuestion] = useState<
29-
AiQuestion | DefaultSearchQuery | null
30-
>(null);
31-
32-
useEffect(() => {
33-
if (selectedQuestion && imageUrl) {
34-
askQuestion(
35-
isAiQuestion(selectedQuestion)
36-
? selectedQuestion.questionText
37-
: (selectedQuestion.query as string),
38-
undefined,
39-
isAiQuestion(selectedQuestion)
40-
? (selectedQuestion.products?.map((p) => p.groupId) ?? [])
41-
: undefined,
42-
isAiQuestion(selectedQuestion) && selectedQuestion.promptForAI !== ""
43-
? selectedQuestion.promptForAI
44-
: undefined,
45-
);
46-
}
47-
}, [imageUrl, selectedQuestion]);
4825

4926
if (messages.length) {
5027
return null;
5128
}
5229

53-
const handleSuggestedQuestion = async (
54-
q: AiQuestion | DefaultSearchQuery,
55-
) => {
56-
console.log("q", q);
57-
setCurrentQuestion(isAiQuestion(q) ? q.questionText : (q.query ?? ""));
58-
59-
if (isDefaultSearchQuery(q) && q.imageUrl) {
60-
setSelectedQuestion(q);
61-
setImageUrl(q.imageUrl);
62-
}
30+
const handleSuggestedQuestion = async (q: string | AiQuestion) => {
31+
setCurrentQuestion(isAiQuestion(q) ? q.questionText : q);
32+
askQuestion(
33+
isAiQuestion(q) ? q.questionText : q,
34+
undefined,
35+
isAiQuestion(q) ? (q.products?.map((p) => p.groupId) ?? []) : undefined,
36+
isAiQuestion(q) && q.promptForAI !== "" ? q.promptForAI : undefined,
37+
);
6338

6439
const requestId =
6540
messages[messages.length - 1]?.queryId ??
@@ -71,7 +46,7 @@ export const SuggestedQuestions = ({
7146
user_id: fingerprint,
7247
location: window.location.href,
7348
metadata: {
74-
followup_query: isAiQuestion(q) ? q.questionText : q.query,
49+
followup_query: q,
7550
component_props: props,
7651
ab_treatment: abTreatment,
7752
},
@@ -83,7 +58,6 @@ export const SuggestedQuestions = ({
8358
});
8459
if (onMessageSend) {
8560
onMessageSend();
86-
setImageUrl("");
8761
}
8862
};
8963

@@ -126,13 +100,13 @@ export const SuggestedQuestions = ({
126100
onClick={() => {
127101
handleSuggestedQuestion(q);
128102
}}
129-
key={isAiQuestion(q) ? q.questionText : q.query}
103+
key={isAiQuestion(q) ? q.questionText : q}
130104
className={`suggested-question tv-flex tv-gap-1 tv-items-center${
131105
isLoadingSuggestedQueries ? " loading" : ""
132106
}`}
133107
>
134108
<SparklesIcon fill="none" width={15} height={15} />
135-
{isAiQuestion(q) ? q.questionText : q.query}
109+
{isAiQuestion(q) ? q.questionText : q}
136110
</button>
137111
))}
138112
</div>

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

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import React, { useCallback, useEffect, useState } from "react";
22
import { cn } from "../../utils/styles";
33
import { useModalState } from "../../utils/hooks/modal-context";
4-
import { DefaultSearchQuery } from "trieve-ts-sdk";
4+
import { SuggestedQueriesResponse } from "trieve-ts-sdk";
55
import { getSuggestedQueries } from "../../utils/trieve";
66

77
export const SuggestedQueries = () => {
8-
const { props, query, setQuery, imageUrl, setImageUrl, trieveSDK } =
9-
useModalState();
8+
const { props, query, setQuery, imageUrl, trieveSDK } = useModalState();
109
const [isLoading, setIsLoading] = useState(false);
1110
const [suggestedQueries, setSuggestedQueries] = useState<
12-
DefaultSearchQuery[]
11+
SuggestedQueriesResponse["queries"]
1312
>([]);
1413

1514
const getQueries = useCallback(
@@ -28,17 +27,12 @@ export const SuggestedQueries = () => {
2827
[query],
2928
);
3029

31-
const handleSendSuggestedQuery = (q: DefaultSearchQuery) => {
32-
setQuery(q.query ?? "");
33-
34-
if (q.imageUrl) {
35-
setImageUrl(q.imageUrl);
36-
}
37-
};
38-
3930
useEffect(() => {
40-
if (props.defaultSearchQueries?.length) {
41-
setSuggestedQueries(props.defaultSearchQueries);
31+
const defaultQueries =
32+
props.defaultSearchQueries?.filter((q) => q !== "") ?? [];
33+
34+
if (defaultQueries.length) {
35+
setSuggestedQueries(defaultQueries);
4236
return;
4337
}
4438

@@ -70,15 +64,15 @@ export const SuggestedQueries = () => {
7064
<div className="suggested-query loading">Loading...</div>
7165
) : (
7266
suggestedQueries.map((q) => {
73-
let query = q.query?.replace(/^-|\*$/g, "") ?? "";
74-
query = query.trim();
67+
q = q.replace(/^-|\*$/g, "");
68+
q = q.trim();
7569
return (
7670
<button
77-
onClick={() => handleSendSuggestedQuery(q)}
78-
key={query}
71+
onClick={() => setQuery(q)}
72+
key={q}
7973
className={`suggested-query${isLoading ? " loading" : ""}`}
8074
>
81-
{query}
75+
{q}
8276
</button>
8377
);
8478
})

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

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,8 @@ import { createPortal } from "react-dom";
2121

2222
const Modal = () => {
2323
useKeyboardNavigation();
24-
const {
25-
open,
26-
setOpen,
27-
setMode,
28-
setImageUrl,
29-
setQuery,
30-
props,
31-
display,
32-
abTreatment,
33-
} = useModalState();
24+
const { open, setOpen, setMode, setQuery, props, display, abTreatment } =
25+
useModalState();
3426
const { askQuestion, chatWithGroup, cancelGroupChat, clearConversation } =
3527
useChatState();
3628

@@ -175,7 +167,6 @@ const Modal = () => {
175167
try {
176168
const customEvent = e as CustomEvent<{
177169
text: string;
178-
imageUrl?: string;
179170
}>;
180171

181172
const defaultMode = props.defaultSearchMode || "search";
@@ -185,12 +176,11 @@ const Modal = () => {
185176
setOpen(true);
186177
setMode("chat");
187178
cancelGroupChat();
188-
setImageUrl(customEvent.detail.imageUrl ?? "");
179+
189180
askQuestion(customEvent.detail.text);
190181
} else {
191182
setOpen(true);
192183
setMode("search");
193-
setImageUrl(customEvent.detail.imageUrl ?? "");
194184
setQuery(customEvent.detail.text);
195185
}
196186
} catch (e) {

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

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import {
1212
ChunkGroup,
1313
SearchChunksReqPayload,
1414
TrieveSDK,
15-
DefaultSearchQuery,
1615
} from "trieve-ts-sdk";
1716
import {
1817
groupSearchWithPagefind,
@@ -126,6 +125,7 @@ export interface SearchPageProps {
126125
filterSidebarProps?: FilterSidebarProps;
127126
display?: boolean;
128127
}
128+
129129
export interface AiQuestion {
130130
questionText: string;
131131
promptForAI?: string;
@@ -136,18 +136,11 @@ export interface AiQuestion {
136136
}
137137

138138
export function isAiQuestion(
139-
question: string | AiQuestion | DefaultSearchQuery,
139+
question: string | AiQuestion,
140140
): question is AiQuestion {
141141
return typeof question === "object" && "questionText" in question;
142142
}
143143

144-
export function isDefaultSearchQuery(
145-
question: string | AiQuestion | DefaultSearchQuery,
146-
): question is DefaultSearchQuery {
147-
return typeof question === "object" && "query" in question;
148-
}
149-
150-
151144
export type ModalProps = {
152145
datasetId: string;
153146
apiKey: string;
@@ -170,8 +163,8 @@ export type ModalProps = {
170163
allowRefreshSuggestedQueries?: boolean;
171164
followupQuestions?: boolean;
172165
numberOfSuggestions?: number;
173-
defaultSearchQueries?: DefaultSearchQuery[];
174-
defaultAiQuestions?: AiQuestion[] | DefaultSearchQuery[];
166+
defaultSearchQueries?: string[];
167+
defaultAiQuestions?: string[] | AiQuestion[];
175168
brandLogoImgSrcUrl?: string;
176169
brandName?: string;
177170
problemLink?: string;

clients/search-component/src/utils/hooks/useFollowupQuestions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export const useFollowupQuestions = () => {
4848
setSuggestedQuestions((prev) => ({
4949
...prev,
5050
[prevMessage.text]: queries.queries.map((q) => {
51-
return q.query?.replace(/^[\d.-]+\s*/, "").trim() ?? "";
51+
return q.replace(/^[\d.-]+\s*/, "").trim();
5252
}),
5353
}));
5454
setIsLoadingSuggestedQueries(false);

clients/search-component/src/utils/hooks/useSuggestedQuestions.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import { useEffect, useState } from "react";
22
import { getSuggestedQuestions } from "../trieve";
33
import { ModalProps, useModalState } from "./modal-context";
4-
import { DefaultSearchQuery } from "trieve-ts-sdk";
54

65
export const useSuggestedQuestions = () => {
76
const { props, query, trieveSDK, currentGroup } = useModalState();
87
const [isLoadingSuggestedQueries, setIsLoadingSuggestedQueries] =
98
useState(false);
109

1110
const [suggestedQuestions, setSuggestedQuestions] = useState<
12-
ModalProps["defaultAiQuestions"] | DefaultSearchQuery[]
11+
ModalProps["defaultAiQuestions"]
1312
>(props.defaultAiQuestions ?? []);
1413

1514
const getQuestions = async () => {
@@ -23,7 +22,11 @@ export const useSuggestedQuestions = () => {
2322
query,
2423
props,
2524
});
26-
setSuggestedQuestions(queries.queries);
25+
setSuggestedQuestions(
26+
queries.queries.map((q) => {
27+
return q.replace(/^[\d.-]+\s*/, "").trim();
28+
}),
29+
);
2730
setIsLoadingSuggestedQueries(false);
2831
};
2932

@@ -47,7 +50,11 @@ export const useSuggestedQuestions = () => {
4750
: currentGroup?.tracking_id,
4851
props,
4952
});
50-
setSuggestedQuestions(queries.queries);
53+
setSuggestedQuestions(
54+
queries.queries.map((q) => {
55+
return q.replace(/^[\d.-]+\s*/, "").trim();
56+
}),
57+
);
5158
setIsLoadingSuggestedQueries(false);
5259
});
5360

clients/ts-sdk/openapi.json

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12311,19 +12311,6 @@
1231112311
"lte": "2021-01-01 00:00:00.000"
1231212312
}
1231312313
},
12314-
"DefaultSearchQuery": {
12315-
"type": "object",
12316-
"properties": {
12317-
"imageUrl": {
12318-
"type": "string",
12319-
"nullable": true
12320-
},
12321-
"query": {
12322-
"type": "string",
12323-
"nullable": true
12324-
}
12325-
}
12326-
},
1232712314
"DeleteTopicData": {
1232812315
"type": "object",
1232912316
"required": [
@@ -16448,7 +16435,7 @@
1644816435
"defaultAiQuestions": {
1644916436
"type": "array",
1645016437
"items": {
16451-
"$ref": "#/components/schemas/DefaultSearchQuery"
16438+
"type": "string"
1645216439
},
1645316440
"nullable": true
1645416441
},
@@ -16467,7 +16454,7 @@
1646716454
"defaultSearchQueries": {
1646816455
"type": "array",
1646916456
"items": {
16470-
"$ref": "#/components/schemas/DefaultSearchQuery"
16457+
"type": "string"
1647116458
},
1647216459
"nullable": true
1647316460
},
@@ -22031,7 +22018,7 @@
2203122018
"queries": {
2203222019
"type": "array",
2203322020
"items": {
22034-
"$ref": "#/components/schemas/DefaultSearchQuery"
22021+
"type": "string"
2203522022
}
2203622023
}
2203722024
}

0 commit comments

Comments
 (0)