gen-ui / app /components /mixedcomponent.tsx
sankett's picture
First commit
df76d92 verified
'use client';
import { useActions, useAIState } from 'ai/rsc';
import { AI } from '../actions/mixedstate';
export default function MixedComponent() {
const { sendMessage } = useActions<typeof AI>();
const [messages, setMessages] = useAIState<typeof AI>();
const handleSubmit = async event => {
event.preventDefault();
setMessages([
...messages,
{ role: 'user', content: event.target.message.value },
]);
const {text, display} = await sendMessage(event.target.message.value);
console.log(display);
setMessages((messages) => [...messages, { role: 'assistant', content: text }])
};
return (
<>
<ul>
{messages.map((message,index) => (
<li key={index}>{message.role}:{message.content}
<br></br>
</li>
))}
</ul>
<form onSubmit={handleSubmit}>
<input type="text" name="message" />
<button type="submit">Send</button>
</form>
</>
);
}