import 'package:Envelope/models/conversation_users.dart'; import 'package:flutter/material.dart'; import '/views/main/conversation_settings_user_list_item.dart'; import '/models/conversations.dart'; import 'package:Envelope/components/custom_circle_avatar.dart'; class ConversationSettings extends StatefulWidget { final Conversation conversation; const ConversationSettings({ Key? key, required this.conversation, }) : super(key: key); @override State createState() => _ConversationSettingsState(); } class _ConversationSettingsState extends State { final _formKey = GlobalKey(); List users = []; TextEditingController nameController = TextEditingController(); @override void initState() { nameController.text = widget.conversation.name; super.initState(); getUsers(); } Future getUsers() async { users = await getConversationUsers(widget.conversation); setState(() {}); } Widget conversationName() { return Row( children: [ const CustomCircleAvatar( icon: Icon(Icons.people, size: 40), imagePath: null, // TODO: Add image here radius: 30, ), const SizedBox(width: 10), Text( widget.conversation.name, style: const TextStyle( fontSize: 25, fontWeight: FontWeight.w500, ), ), ], ); } Widget usersList() { return ListView.builder( itemCount: users.length, shrinkWrap: true, padding: const EdgeInsets.only(top: 16), itemBuilder: (context, i) { return ConversationSettingsUserListItem( user: users[i], isAdmin: widget.conversation.admin, ); } ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( elevation: 0, automaticallyImplyLeading: false, flexibleSpace: SafeArea( child: Container( padding: const EdgeInsets.only(right: 16), child: Row( children: [ IconButton( onPressed: (){ Navigator.pop(context); }, icon: const Icon(Icons.arrow_back), ), const SizedBox(width: 2,), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, children: [ Text( widget.conversation.name + " Settings", style: const TextStyle( fontSize: 16, fontWeight: FontWeight.w600 ), ), ], ), ), ], ), ), ), ), body: Padding( padding: const EdgeInsets.all(15), child: Column( children: [ const SizedBox(height: 30), conversationName(), const SizedBox(height: 10), const Text('Users', style: TextStyle(fontSize: 20)), usersList(), ], ), ), ); } }