diff --git a/lib/pages/chat_list/chat_list_view.dart b/lib/pages/chat_list/chat_list_view.dart index 97d08c41..aa983059 100644 --- a/lib/pages/chat_list/chat_list_view.dart +++ b/lib/pages/chat_list/chat_list_view.dart @@ -56,12 +56,7 @@ class ChatListView extends StatelessWidget { ? null : selectMode == SelectMode.select ? [ - if (controller.spaces.isNotEmpty && - !Matrix.of(context) - .client - .getRoomById( - controller.selectedRoomIds.single) - .isDirectChat) + if (controller.spaces.isNotEmpty) IconButton( tooltip: L10n.of(context).addToSpace, icon: const Icon(Icons.group_work_outlined), diff --git a/lib/pages/chat_list/spaces_bottom_bar.dart b/lib/pages/chat_list/spaces_bottom_bar.dart index 0bddde3c..ff7cc053 100644 --- a/lib/pages/chat_list/spaces_bottom_bar.dart +++ b/lib/pages/chat_list/spaces_bottom_bar.dart @@ -2,6 +2,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:salomon_bottom_bar/salomon_bottom_bar.dart'; import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/widgets/avatar.dart'; @@ -17,40 +18,44 @@ class SpacesBottomBar extends StatelessWidget { : controller.spaces .indexWhere((space) => controller.activeSpaceId == space.id) + 1; - return BottomNavigationBar( - currentIndex: currentIndex, - backgroundColor: Theme.of(context).scaffoldBackgroundColor, - landscapeLayout: BottomNavigationBarLandscapeLayout.spread, - onTap: (i) => controller.setActiveSpaceId( - context, - i == 0 ? null : controller.spaces[i - 1].id, - ), - items: [ - BottomNavigationBarItem( - backgroundColor: Theme.of(context).scaffoldBackgroundColor, - icon: const Icon(CupertinoIcons.chat_bubble_2), - label: L10n.of(context).allChats, + return Material( + color: Theme.of(context).appBarTheme.backgroundColor, + elevation: 6, + child: SalomonBottomBar( + itemPadding: const EdgeInsets.all(8), + currentIndex: currentIndex, + onTap: (i) => controller.setActiveSpaceId( + context, + i == 0 ? null : controller.spaces[i - 1].id, ), - ...controller.spaces - .map((space) => BottomNavigationBarItem( - icon: InkWell( - borderRadius: BorderRadius.circular(28), - onTap: () => controller.setActiveSpaceId( - context, - space.id, + items: [ + SalomonBottomBarItem( + icon: const Icon(CupertinoIcons.chat_bubble_2), + activeIcon: const Icon(CupertinoIcons.chat_bubble_2_fill), + title: Text(L10n.of(context).allChats), + ), + ...controller.spaces + .map((space) => SalomonBottomBarItem( + icon: InkWell( + borderRadius: BorderRadius.circular(28), + onTap: () => controller.setActiveSpaceId( + context, + space.id, + ), + onLongPress: () => + controller.editSpace(context, space.id), + child: Avatar( + space.avatar, + space.displayname, + size: 24, + fontSize: 12, + ), ), - onLongPress: () => controller.editSpace(context, space.id), - child: Avatar( - space.avatar, - space.displayname, - size: 24, - fontSize: 12, - ), - ), - label: space.displayname, - )) - .toList(), - ], + title: Text(space.displayname), + )) + .toList(), + ], + ), ); } } diff --git a/pubspec.lock b/pubspec.lock index 5648e0ed..934a3521 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1152,6 +1152,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.26.0" + salomon_bottom_bar: + dependency: "direct main" + description: + name: salomon_bottom_bar + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" scroll_to_index: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index d37315d9..a09ed36d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -61,6 +61,7 @@ dependencies: qr_flutter: ^4.0.0 receive_sharing_intent: ^1.4.5 record: ^3.0.0 + salomon_bottom_bar: ^3.1.0 scroll_to_index: ^2.1.0 sembast_web: ^2.0.1+1 sentry: ^6.0.1