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.