Skip to content

Commit c5893c4

Browse files
committed
enable response fetching through clicking suggested prompts
1 parent 88eefc5 commit c5893c4

File tree

2 files changed

+31
-14
lines changed

2 files changed

+31
-14
lines changed

babblebeaver-react/src/App.js

+23-8
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export default function App() {
66
const [suggestedPrompts, setSuggestedPrompts] = useState([])
77
const [isDisabled, setIsDisabled] = useState(false) // for the input field and the button
88
const [query, setQuery] = useState("")
9+
const [triggerSubmission, setTriggerSubmission] = useState(false)
910

1011
useEffect(() => {
1112
// get rid of conversation history and tokens used on page refresh
@@ -19,10 +20,16 @@ export default function App() {
1920
.then((data) => setSuggestedPrompts(data))
2021
}, [])
2122

23+
useEffect(() => {
24+
if (triggerSubmission) {
25+
document.getElementById("submit-input").click();
26+
setTriggerSubmission(false);
27+
}
28+
}, [triggerSubmission])
29+
2230
const submitForm = async (e) => {
2331
e.preventDefault()
2432

25-
if (query.trim() === '') return;
2633
setSuggestedPrompts([]);
2734

2835
const chatMessages = document.getElementById("chat-messages")
@@ -43,7 +50,6 @@ export default function App() {
4350
loader.className = "loader"
4451
chatMessages.append(loader)
4552

46-
setQuery("")
4753
setIsDisabled(true)
4854

4955
let sessionMessageHistory = sessionStorage.getItem("messageHistory");
@@ -67,6 +73,7 @@ export default function App() {
6773
})
6874
.then((response) => response.json())
6975
.then((data) => {
76+
setQuery("");
7077
const {response: botMessage, usedTokens, updatedHistory} = data;
7178

7279
// update client side with number of used tokens(included tokens used for the last user query and bot response)
@@ -105,12 +112,14 @@ export default function App() {
105112
}
106113

107114
return (
108-
<>
109-
<div className="container">
115+
<div className="container">
110116
<div className="chat-container">
111117
<h1 className="text-center">BabbleBeaver React</h1>
112118

113-
<div id = "suggested-prompts" onClick = {(e) => setQuery(e.target.textContent)}>
119+
<div id = "suggested-prompts" onClick = {(e) => {
120+
setQuery(e.target.textContent);
121+
setTriggerSubmission(true);
122+
}}>
114123
{suggestedPrompts.map((suggestedPrompt, index) => {
115124
return (
116125
<button className = "suggested-prompt-btn" key = {index}>{suggestedPrompt}</button>
@@ -119,14 +128,20 @@ export default function App() {
119128
</div>
120129
<div id="chat-messages"></div>
121130

122-
<form id="chat-form" className="mt-4" onSubmit = {(e) => submitForm(e)}>
131+
<form id="chat-form" className="mt-4" onSubmit={(e) => submitForm(e)}>
123132
<div className="form-group">
124133
<input type="text" id="user-input" className="form-control" value = {query} placeholder="Type your message..." onChange = {(e) => setQuery(e.target.value)} disabled = {isDisabled}/>
125134
</div>
126-
<button id="submit-input" type="submit" className="btn btn-primary btn-block" disabled = {isDisabled}>Send</button>
135+
<button
136+
id="submit-input"
137+
type="submit"
138+
className="btn btn-primary btn-block"
139+
disabled = {query.trim() === "" || isDisabled}
140+
>
141+
Send
142+
</button>
127143
</form>
128144
</div>
129145
</div>
130-
</>
131146
)
132147
}

babblebeaver-react/src/style.css

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
* {
2-
margin: 0;
3-
padding: 0;
4-
box-sizing: border-box;
5-
}
6-
71
body {
82
font-family: Arial, sans-serif;
93
}
@@ -78,6 +72,14 @@ h1 {
7872
margin: 20px;
7973
}
8074

75+
.btn {
76+
cursor: pointer;
77+
}
78+
79+
.btn:disabled {
80+
cursor: not-allowed !important;
81+
}
82+
8183
.suggested-prompt-btn {
8284
border-radius: 5px;
8385
}

0 commit comments

Comments
 (0)