diff --git a/lib/frontend/screens/chats/chat_list_screen.dart b/lib/frontend/screens/chats/chat_list_screen.dart index db596fd..d716833 100644 --- a/lib/frontend/screens/chats/chat_list_screen.dart +++ b/lib/frontend/screens/chats/chat_list_screen.dart @@ -933,7 +933,7 @@ class _ChatListScreenState extends State ), ), Padding( - padding: const EdgeInsets.fromLTRB(20, 3, 20, 6), + padding: const EdgeInsets.fromLTRB(20, 3, 20, 14), child: Container( height: 44, decoration: BoxDecoration( @@ -1078,7 +1078,7 @@ class _ChatListScreenState extends State parent: const AlwaysScrollableScrollPhysics(), ), slivers: [ - const SliverToBoxAdapter(child: SizedBox(height: 6)), + const SliverToBoxAdapter(child: SizedBox(height: 14)), if (chats.isEmpty && !_isInitialLoading) SliverFillRemaining( child: Center( @@ -1104,7 +1104,7 @@ class _ChatListScreenState extends State // Insert separator row between pinned and regular sections if (hasSeparator && index == pinnedCount) { return Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), + padding: const EdgeInsets.symmetric(horizontal: 20), child: Divider( height: 1, thickness: 0.5, @@ -1823,7 +1823,7 @@ Navigator.push( ? cs.primary.withValues(alpha: 0.08) : Colors.transparent, child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 6), + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 6), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ @@ -2073,13 +2073,27 @@ Navigator.push( } Widget _buildFabMenu() { + final cs = Theme.of(context).colorScheme; + return Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + _buildFabMenuItem(Symbols.group_add, 'Создать группу'), + const SizedBox(height: 4), + _buildFabMenuItem(Symbols.campaign, 'Создать канал'), + const SizedBox(height: 4), + _buildFabMenuItem(Symbols.person_add, 'Создать контакт'), + ], + ); + } + + Widget _buildFabMenuItem(IconData icon, String title) { final cs = Theme.of(context).colorScheme; return Container( width: 220, - padding: const EdgeInsets.symmetric(vertical: 8), decoration: BoxDecoration( color: cs.surfaceContainerHigh, - borderRadius: BorderRadius.circular(16), + borderRadius: BorderRadius.circular(100), boxShadow: [ BoxShadow( color: Colors.black.withValues(alpha: 0.2), @@ -2088,39 +2102,27 @@ Navigator.push( ), ], ), - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - _buildFabMenuItem(Symbols.search, 'Найти по номеру'), - _buildFabMenuItem(Symbols.group_add, 'Добавить группу'), - _buildFabMenuItem(Symbols.campaign, 'Создать канал'), - ], - ), - ); - } - - Widget _buildFabMenuItem(IconData icon, String title) { - final cs = Theme.of(context).colorScheme; - return InkWell( - onTap: () { - // Action logic here - }, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), - child: Row( - children: [ - Icon(icon, color: cs.onSurface, size: 22), - const SizedBox(width: 12), - Text( - title, - style: TextStyle( - color: cs.onSurface, - fontSize: 14, - fontWeight: FontWeight.w500, + child: InkWell( + onTap: () { + // Action logic here + }, + borderRadius: BorderRadius.circular(100), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + Icon(icon, color: cs.onSurface, size: 22), + const SizedBox(width: 12), + Text( + title, + style: TextStyle( + color: cs.onSurface, + fontSize: 14, + fontWeight: FontWeight.w500, + ), ), - ), - ], + ], + ), ), ), ); diff --git a/pubspec.lock b/pubspec.lock index 00c6969..13dcd14 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -385,10 +385,10 @@ packages: dependency: transitive description: name: matcher - sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 + sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6" url: "https://pub.dev" source: hosted - version: "0.12.19" + version: "0.12.18" material_color_utilities: dependency: transitive description: @@ -726,10 +726,10 @@ packages: dependency: transitive description: name: test_api - sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" + sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636" url: "https://pub.dev" source: hosted - version: "0.7.10" + version: "0.7.9" timezone: dependency: "direct main" description: