From 0413cab0d9350296c7c162f9b1ac32d75944f283 Mon Sep 17 00:00:00 2001 From: utin-francis-peter Date: Tue, 9 Jul 2024 13:32:46 +0100 Subject: [PATCH] chore: removed all TextArea related entities from branch as it's outiside scope of branch/issue --- frontend/src/components/types/index.ts | 9 +++---- frontend/src/conversation/Conversation.tsx | 30 ++++++++++++++-------- frontend/src/index.css | 5 ++++ 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/types/index.ts b/frontend/src/components/types/index.ts index cf46ab0a..0d6172ab 100644 --- a/frontend/src/components/types/index.ts +++ b/frontend/src/components/types/index.ts @@ -1,5 +1,7 @@ -export type TextAreaProps = { +export type InputProps = { + type: 'text' | 'number'; value: string | string[] | number; + colorVariant?: 'silver' | 'jet' | 'gray'; isAutoFocused?: boolean; id?: string; maxLength?: number; @@ -17,8 +19,3 @@ export type TextAreaProps = { e: React.KeyboardEvent, ) => void; }; - -export type InputProps = TextAreaProps & { - type: 'text' | 'number'; - colorVariant?: 'silver' | 'jet' | 'gray'; -}; diff --git a/frontend/src/conversation/Conversation.tsx b/frontend/src/conversation/Conversation.tsx index b15103f3..487e8ea7 100644 --- a/frontend/src/conversation/Conversation.tsx +++ b/frontend/src/conversation/Conversation.tsx @@ -20,13 +20,12 @@ import { sendFeedback } from './conversationApi'; import { useTranslation } from 'react-i18next'; import ArrowDown from './../assets/arrow-down.svg'; import RetryIcon from '../components/RetryIcon'; -import TextArea from '../components/TextArea'; export default function Conversation() { const queries = useSelector(selectQueries); const status = useSelector(selectStatus); const dispatch = useDispatch(); const endMessageRef = useRef(null); - const [prompt, setPrompt] = useState(''); + const inputRef = useRef(null); const [isDarkTheme] = useDarkTheme(); const [hasScrolledToLast, setHasScrolledToLast] = useState(true); const fetchStream = useRef(null); @@ -41,6 +40,13 @@ export default function Conversation() { !eventInterrupt && scrollIntoView(); }, [queries.length, queries[queries.length - 1]]); + useEffect(() => { + const element = document.getElementById('inputbox') as HTMLInputElement; + if (element) { + element.focus(); + } + }, []); + useEffect(() => { return () => { if (status !== 'idle') { @@ -106,14 +112,14 @@ export default function Conversation() { }; const handleQuestionSubmission = () => { - if (prompt.length && status !== 'loading') { + if (inputRef.current?.textContent && status !== 'loading') { if (lastQueryReturnedErr) { // update last failed query with new prompt dispatch( updateQuery({ index: queries.length - 1, query: { - prompt, + prompt: inputRef.current.textContent, }, }), ); @@ -122,9 +128,9 @@ export default function Conversation() { isRetry: true, }); } else { - handleQuestion({ question: prompt }); + handleQuestion({ question: inputRef.current.textContent }); } - setPrompt(''); + inputRef.current.textContent = ''; } }; @@ -230,19 +236,21 @@ export default function Conversation() {
- + >
{status === 'loading' ? (