Skip to content

Commit cdcecb0

Browse files
committed
loading button state
1 parent 7608c89 commit cdcecb0

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/pages/index.tsx

+14-6
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ export default function Home() {
2727
const [resultsArray, setResultsArray] = useState<string[] | null>(null);
2828
const [GPTAnswers, setGPTAnswers] = useState<Array<unknown>>([]);
2929
const [isFetching, setFetching] = useState(false);
30-
const [isFetchingGPT, setFetchingGPT] = useState(false);
30+
const [isFetchingGPTIndex, setFetchingGPTIndex] = useState<number | null>(
31+
null
32+
);
3133
const [messages, setMessages] = useState([
3234
{
3335
message: "Hello, I'm ChatGPT! Ask me anything!",
@@ -58,15 +60,16 @@ export default function Home() {
5860
};
5961

6062
const handleGPTQuestion = async (message: string, index: number) => {
63+
setFetchingGPTIndex(index);
6164
const newMessage = {
6265
message: message,
6366
direction: 'outgoing',
6467
sender: 'user',
6568
};
6669
const newMessages = [...messages, newMessage];
6770

68-
setFetchingGPT(true);
6971
await handleGPTMessage(newMessages, index);
72+
setFetchingGPTIndex(null);
7073
};
7174

7275
useEffect(() => {
@@ -115,7 +118,6 @@ export default function Home() {
115118
const newAnswers: Array<unknown> = [...GPTAnswers];
116119
newAnswers[index] = data.choices[0].message.content;
117120
setGPTAnswers(newAnswers);
118-
setFetchingGPT(false);
119121
});
120122
};
121123

@@ -181,18 +183,24 @@ export default function Home() {
181183
alignItems: 'space-between',
182184
}}
183185
>
184-
<Typography flexGrow={1}>{result}</Typography>
186+
<Typography flexGrow={1} sx={{ fontWeight: 500 }}>
187+
{result}
188+
</Typography>
185189
<Button
186190
variant='outlined'
187-
// loading={isFetching}
191+
loading={index === isFetchingGPTIndex}
188192
onClick={() => handleGPTQuestion(result, index)}
189193
>
190194
Explain
191195
</Button>
192196
</ListItem>
193197
{GPTAnswers[index] && (
194198
<ListItem key={uuidv4()}>
195-
{GPTAnswers[index] as string}
199+
<Typography
200+
sx={{ fontWeight: 200, fontStyle: 'italic' }}
201+
>
202+
{GPTAnswers[index] as string}
203+
</Typography>
196204
</ListItem>
197205
)}
198206
<ListDivider inset='gutter' />

0 commit comments

Comments
 (0)