import 'package:flutter/material.dart'; import '/data/models/message_model.dart'; import '/data/models/contact_model.dart'; import 'package:chepuhagram/presentation/widgets/message_bubble.dart'; class ChatScreen extends StatefulWidget { final Contact contact; const ChatScreen({super.key, required this.contact}); @override State createState() => _ChatScreenState(); } class _ChatScreenState extends State { final TextEditingController _controller = TextEditingController(); final List messages = []; @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text(widget.contact.name)), body: Column( children: [ Expanded( child: ListView.builder( reverse: true, // Сообщения растут снизу вверх itemCount: messages.length, itemBuilder: (context, index) { final msg = messages[messages.length - 1 - index]; return MessageBubble( message: msg.text, time: msg.createdAt, isMe: msg.isMe, ); }, ), ), _buildMessageInput(), ], ), ); } Widget _buildMessageInput() { return Padding( padding: const EdgeInsets.all(8.0), child: Row( children: [ Expanded( child: TextField( controller: _controller, decoration: const InputDecoration(hintText: "Напиши сообщение..."), ), ), IconButton( icon: const Icon(Icons.send), onPressed: () { // Логика отправки через WebSocket или API _controller.clear(); }, ), ], ), ); } }