Hoy os traigo un tutorial interesante, es un pequeño chat que simula que un bot te contesta.

Estructura del Proyecto
Organiza tu proyecto de la siguiente manera:
src/ |-- components/ | |-- QuantumChatBox.js |-- App.js |-- App.css |-- QuantumChatBox.css
Creación del Componente QuantumChatBox
Crea el componente QuantumChatBox.js en la carpeta components:
// components/QuantumChatBox.js
import React, { useState, useEffect, useRef } from 'react';
import './QuantumChatBox.css';
const QuantumChatBox = () => {
const [messages, setMessages] = useState([]);
const [inputValue, setInputValue] = useState('');
const chatContainerRef = useRef(null);
const addMessage = (text, sender) => {
setMessages((prevMessages) => [...prevMessages, { text, sender }]);
};
const handleUserInput = (e) => {
setInputValue(e.target.value);
};
const handleSendMessage = () => {
if (inputValue.trim() === '') return;
addMessage(inputValue, 'user');
setInputValue('');
setTimeout(() => addMessage('¡Gracias por tu mensaje!', 'bot'), 1000);
};
useEffect(() => {
chatContainerRef.current.scrollTop = chatContainerRef.current.scrollHeight;
}, [messages]);
return (
<div className="quantum-chat-box">
<div className="chat-container" ref={chatContainerRef}>
{messages.map((message, index) => (
<div key={index} className={`message ${message.sender}`}>
{message.text}
</div>
))}
</div>
<div className="input-container">
<input
type="text"
placeholder="Escribe un mensaje..."
value={inputValue}
onChange={handleUserInput}
/>
<button onClick={handleSendMessage}>Enviar</button>
</div>
</div>
);
};
export default QuantumChatBox;
Estilos con CSS
Crea el archivo QuantumChatBox.css en la misma carpeta que tu componente:
/* QuantumChatBox.css */
.quantum-chat-box {
max-width: 400px;
margin: 50px auto;
border: 1px solid #ccc;
border-radius: 10px;
overflow: hidden;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.chat-container {
height: 300px;
overflow-y: auto;
padding: 10px;
background-color: #f5f5f5;
}
.message {
padding: 8px;
margin: 5px 0;
border-radius: 5px;
max-width: 80%;
}
.user {
background-color: #3498db;
color: #fff;
align-self: flex-end;
}
.bot {
background-color: #2ecc71;
color: #fff;
align-self: flex-start;
}
.input-container {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px;
background-color: #fff;
}
input {
flex: 1;
padding: 8px;
border: 1px solid #ccc;
border-radius: 5px;
margin-right: 10px;
}
button {
padding: 8px 15px;
background-color: #3498db;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
outline: none;
}
Implementación en App.js
Usa el componente QuantumChatBox en tu App.js:
// App.js
import React from 'react';
import QuantumChatBox from './components/QuantumChatBox';
const App = () => {
return (
<div>
<h1>¡Chat Cuántico Impresionante!</h1>
<QuantumChatBox />
</div>
);
};
export default App;
Ejecutar la Aplicación
Ejecuta tu aplicación con el siguiente comando:
npm start

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.