Skip to content

Commit 8baf1c1

Browse files
committed
cleanup: remove old stuff
1 parent 659f25e commit 8baf1c1

File tree

3 files changed

+5
-158
lines changed

3 files changed

+5
-158
lines changed

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

Lines changed: 4 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -11,111 +11,27 @@ import { InlineChatHeader } from "./InlineChatHeader";
1111
import { ChatInput } from "./ChatInput";
1212

1313
export const ChatMode = () => {
14-
const { props, modalRef, minHeight, resetHeight, addHeight } =
15-
useModalState();
14+
const { props, modalRef } = useModalState();
1615
const { messages } = useChatState();
1716

1817
const actualChatRef = useRef<HTMLDivElement>(null);
19-
const rulerRef = useRef<HTMLDivElement>(null);
2018

2119
const [ref, { entry }] = useIntersectionObserver();
2220
const isOnScreen = entry && entry.isIntersecting;
2321

24-
const onMessageSend = () => {
25-
setTimeout(() => {
26-
if (!actualChatRef.current || !modalRef.current) {
27-
return;
28-
}
29-
30-
const userMessages = actualChatRef.current.querySelectorAll(
31-
".user-message-container",
32-
);
33-
if (userMessages.length === 0) {
34-
return;
35-
}
36-
37-
const lastUserMessage = userMessages[userMessages.length - 1];
38-
39-
const messageRect = lastUserMessage.getBoundingClientRect();
40-
const containerRect = modalRef.current.getBoundingClientRect();
41-
42-
const bufferSpace = 20;
43-
44-
const scrollTo =
45-
messageRect.top -
46-
containerRect.top +
47-
modalRef.current.scrollTop -
48-
bufferSpace;
49-
50-
handleHeightAddition();
51-
52-
setTimeout(() => {
53-
if (!modalRef.current) {
54-
return;
55-
}
56-
modalRef.current.scrollTo({
57-
top: scrollTo,
58-
behavior: "smooth",
59-
});
60-
}, 30); // 30 used for consistency with react-dom updates
61-
}, 100);
62-
};
63-
64-
const calculateHeightToAdd = () => {
65-
if (!modalRef.current || !actualChatRef.current) {
66-
return 0;
67-
}
68-
if (!rulerRef.current) {
69-
return 0;
70-
}
71-
72-
const userMessages = actualChatRef.current.querySelectorAll(
73-
".user-message-container",
74-
);
75-
if (userMessages.length === 0) {
76-
return 0;
77-
}
78-
79-
const lastUserMessage = userMessages[userMessages.length - 1];
80-
81-
const messageRect = lastUserMessage.getBoundingClientRect();
82-
83-
const scrollContainerVisibleHeight = modalRef.current.clientHeight;
84-
const messageRectYDistance =
85-
messageRect.top +
86-
modalRef.current.scrollTop +
87-
lastUserMessage.scrollHeight;
88-
89-
const redLead = rulerRef.current.scrollHeight - messageRectYDistance;
90-
91-
const targetGap =
92-
scrollContainerVisibleHeight - lastUserMessage.scrollHeight;
93-
94-
const heightToAdd = targetGap - redLead;
95-
return heightToAdd - 80;
96-
};
97-
98-
const handleHeightAddition = () => {
99-
const height = calculateHeightToAdd();
100-
addHeight(height);
101-
};
102-
10322
return (
10423
<Suspense>
105-
{props.previewTopicId == undefined && (
106-
<InlineChatHeader resetHeight={resetHeight} />
107-
)}
24+
{props.previewTopicId == undefined && <InlineChatHeader />}
10825
<div
10926
ref={modalRef}
11027
className="chat-modal-wrapper tv-justify-items-stretch tv-flex-grow tv-pt-3 tv-pb-2 tv-px-2 tv-relative tv-overflow-y-auto tv-flex tv-overflow-x-hidden"
11128
>
112-
<ChatRuler rulerRef={rulerRef} minHeight={minHeight} />
11329
<div
11430
className="tv-flex-col tv-h-full tv-grow tv-flex tv-gap-4 tv-max-w-full"
11531
ref={actualChatRef}
11632
>
11733
{/* Only shows with zero messages */}
118-
<SuggestedQuestions onMessageSend={onMessageSend} />{" "}
34+
<SuggestedQuestions onMessageSend={() => {}} />{" "}
11935
{messages.map((message, i) => {
12036
if (message.type === "user") {
12137
return <UserMessage key={i} message={message} idx={i} />;
@@ -130,28 +46,9 @@ export const ChatMode = () => {
13046
></div>
13147
</div>
13248
</div>
133-
<ChatInput onMessageSend={onMessageSend} showShadow={!isOnScreen} />
49+
<ChatInput onMessageSend={() => {}} showShadow={!isOnScreen} />
13450
</Suspense>
13551
);
13652
};
13753

138-
// sits on the left side of chat in a flexbox to enforce the minimum height and control scroll
139-
const ChatRuler = ({
140-
minHeight,
141-
rulerRef,
142-
}: {
143-
minHeight: number;
144-
rulerRef: React.RefObject<HTMLDivElement>;
145-
}) => {
146-
return (
147-
<div
148-
ref={rulerRef}
149-
className="tv-min-w-[1px]"
150-
style={{
151-
minHeight,
152-
}}
153-
></div>
154-
);
155-
};
156-
15754
export default ChatMode;

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@ import React from "react";
22
import { useChatState } from "../../utils/hooks/chat-context";
33
import { useModalState } from "../../utils/hooks/modal-context";
44

5-
export const InlineChatHeader = ({
6-
resetHeight,
7-
}: {
8-
resetHeight: () => void;
9-
}) => {
5+
export const InlineChatHeader = () => {
106
const { props } = useModalState();
117
const { messages, clearConversation, isDoneReading, stopGeneratingMessage } =
128
useChatState();
@@ -23,7 +19,6 @@ export const InlineChatHeader = ({
2319
className={`tv-text-xs tv-rounded-md !tv-bg-transparent tv-flex !hover:bg-tv-zinc-200 tv-px-2 tv-justify-end tv-items-center tv-p-2 tv-gap-0.5 tv-cursor-pointer ${props.type}`}
2420
onClick={() => {
2521
if (isDoneReading) {
26-
resetHeight();
2722
clearConversation();
2823
} else {
2924
stopGeneratingMessage();

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

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -281,9 +281,6 @@ const ModalContext = createContext<{
281281
setSelectedSidebarFilters: React.Dispatch<
282282
React.SetStateAction<Record<string, string[]>>
283283
>;
284-
minHeight: number;
285-
resetHeight: () => void;
286-
addHeight: (height: number) => void;
287284
}>({
288285
props: defaultProps,
289286
trieveSDK: (() => {}) as unknown as TrieveSDK,
@@ -320,10 +317,7 @@ const ModalContext = createContext<{
320317
// sidebar filter specific state
321318
selectedSidebarFilters: {},
322319
setSelectedSidebarFilters: () => {},
323-
minHeight: 0,
324-
resetHeight: () => {},
325320
// eslint-disable-next-line @typescript-eslint/no-unused-vars
326-
addHeight: (height: number) => {},
327321
});
328322

329323
const ModalProvider = ({
@@ -360,9 +354,6 @@ const ModalProvider = ({
360354
const [selectedSidebarFilters, setSelectedSidebarFilters] = useState<
361355
Record<string, string[]>
362356
>({});
363-
const [minHeight, setMinHeight] = useState(0);
364-
const [chatHeight, setChatHeight] = useState(0);
365-
const [enabled, setEnabled] = useState(true);
366357

367358
const trieve = new TrieveSDK({
368359
baseUrl: props.baseUrl,
@@ -587,39 +578,6 @@ const ModalProvider = ({
587578
};
588579
}, [query, imageUrl, audioBase64, selectedTags, mode]);
589580

590-
useEffect(() => {
591-
if (!modalRef || !modalRef.current) {
592-
return;
593-
}
594-
const ref = modalRef.current;
595-
const observer = new ResizeObserver((entries) => {
596-
setChatHeight(entries[0].contentRect.height);
597-
});
598-
599-
observer.observe(ref);
600-
return () => {
601-
observer.disconnect();
602-
};
603-
}, [modalRef]);
604-
605-
useEffect(() => {
606-
if (chatHeight > minHeight && enabled) {
607-
setMinHeight(chatHeight);
608-
}
609-
}, [chatHeight, minHeight, enabled]);
610-
611-
const resetHeight = useCallback(() => {
612-
setMinHeight(0);
613-
setEnabled(false);
614-
setTimeout(() => {
615-
setEnabled(true);
616-
}, 200);
617-
}, []);
618-
619-
const addHeight = useCallback((height: number) => {
620-
setMinHeight((prev) => prev + height);
621-
}, []);
622-
623581
return (
624582
<ModalContext.Provider
625583
value={{
@@ -660,9 +618,6 @@ const ModalProvider = ({
660618
setSelectedSidebarFilters,
661619
fingerprint,
662620
setFingerprint,
663-
minHeight,
664-
resetHeight,
665-
addHeight,
666621
}}
667622
>
668623
{children}

0 commit comments

Comments
 (0)