Merge branch 'sageTheDm-main'

This commit is contained in:
Patrick_Pluto 2024-09-20 11:17:28 +02:00
commit e08b8e0783
18 changed files with 16 additions and 14 deletions

View file

@ -0,0 +1,46 @@
import React, { useState, ForwardedRef } from 'react';
interface InputProps {
message: string;
onSendClick: (message: string) => void;
onMicClick: () => void;
}
const InputFrontend = React.forwardRef<HTMLDivElement, InputProps>(
({ message, onSendClick, onMicClick }, ref: ForwardedRef<HTMLDivElement>) => {
const [inputValue, setInputValue] = useState('');
const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
setInputValue(e.target.value);
};
const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {
if (event.key === 'Enter') {
onSendClick(inputValue); // Call the function passed via props
setInputValue(''); // Optionally clear input after submission
event.preventDefault(); // Prevent default action (e.g., form submission)
}
};
return (
<div className="input" id="inputForm" ref={ref}>
<input
type="text"
name="user_message"
placeholder="Type your message here..."
value={inputValue}
onChange={handleInputChange}
onKeyDown={handleKeyDown}
/>
<button type="button" onClick={() => onSendClick(inputValue)}>
<img src="/img/send.svg" alt="send" />
</button>
<button type="button" onClick={onMicClick}>
<img src="/img/microphone.svg" alt="microphone" />
</button>
</div>
);
}
);
export default InputFrontend;