chore: make space filter buttons into floating action buttons (#2166)

This commit is contained in:
ggurdin 2025-03-18 09:51:19 -04:00 committed by GitHub
parent 94790229e6
commit bd1c6c7437
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 58 additions and 72 deletions

View file

@ -13,7 +13,6 @@ import 'package:fluffychat/pages/chat_list/search_title.dart';
import 'package:fluffychat/pages/chat_list/space_view.dart';
import 'package:fluffychat/pages/user_bottom_sheet/user_bottom_sheet.dart';
import 'package:fluffychat/pangea/chat_list/widgets/pangea_chat_list_header.dart';
import 'package:fluffychat/pangea/spaces/widgets/space_filter_buttons.dart';
import 'package:fluffychat/utils/adaptive_bottom_sheet.dart';
import 'package:fluffychat/utils/stream_extension.dart';
import 'package:fluffychat/widgets/avatar.dart';
@ -353,10 +352,6 @@ class ChatListViewBody extends StatelessWidget {
);
},
),
// #Pangea
if (controller.activeFilter == ActiveFilter.spaces)
const SpaceFilterButtons(),
// Pangea#
],
),
);

View file

@ -6,6 +6,7 @@ import 'package:go_router/go_router.dart';
import 'package:fluffychat/config/themes.dart';
import 'package:fluffychat/pages/chat_list/chat_list.dart';
import 'package:fluffychat/pangea/chat_list/widgets/chat_list_view_body_wrapper.dart';
import 'package:fluffychat/pangea/spaces/widgets/space_floating_actions_buttons.dart';
import 'package:fluffychat/widgets/navigation_rail.dart';
class ChatListView extends StatelessWidget {
@ -53,19 +54,25 @@ class ChatListView extends StatelessWidget {
body: ChatListViewBodyWrapper(controller: controller),
// Pangea#
floatingActionButton:
!controller.isSearchMode && controller.activeSpaceId == null
? FloatingActionButton.extended(
// #Pangea
// onPressed: () => context.go('/rooms/newprivatechat'),
onPressed: () => context.go('/rooms/newgroup'),
// #Pangea
// !controller.isSearchMode && controller.activeSpaceId == null
controller.activeFilter == ActiveFilter.spaces
? const SpaceFloatingActionButtons()
: !controller.isSearchMode &&
controller.activeSpaceId == null
// Pangea#
icon: const Icon(Icons.add_outlined),
label: Text(
L10n.of(context).chat,
overflow: TextOverflow.fade,
),
)
: const SizedBox.shrink(),
? FloatingActionButton.extended(
// #Pangea
// onPressed: () => context.go('/rooms/newprivatechat'),
onPressed: () => context.go('/rooms/newgroup'),
// Pangea#
icon: const Icon(Icons.add_outlined),
label: Text(
L10n.of(context).chat,
overflow: TextOverflow.fade,
),
)
: const SizedBox.shrink(),
),
),
),

View file

@ -1,55 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:go_router/go_router.dart';
import 'package:fluffychat/pangea/spaces/utils/space_code.dart';
class SpaceFilterButtons extends StatelessWidget {
const SpaceFilterButtons({super.key});
@override
Widget build(BuildContext context) {
return SliverList(
delegate: SliverChildListDelegate(
[
const SizedBox(height: 16.0),
Padding(
padding: const EdgeInsets.all(4.0),
child: Center(
child: SizedBox(
width: 100.0,
child: FloatingActionButton.extended(
onPressed: () =>
SpaceCodeUtil.joinWithSpaceCodeDialog(context),
icon: const Icon(Icons.join_right_outlined),
label: Text(
L10n.of(context).join,
overflow: TextOverflow.fade,
),
),
),
),
),
Padding(
padding: const EdgeInsets.all(4.0),
child: Center(
child: SizedBox(
width: 100.0,
child: FloatingActionButton.extended(
onPressed: () => context.go('/rooms/newspace'),
icon: const Icon(Icons.add),
label: Text(
L10n.of(context).space,
overflow: TextOverflow.fade,
),
),
),
),
),
const SizedBox(height: 16.0),
],
),
);
}
}

View file

@ -0,0 +1,39 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:go_router/go_router.dart';
import 'package:fluffychat/pangea/spaces/utils/space_code.dart';
class SpaceFloatingActionButtons extends StatelessWidget {
const SpaceFloatingActionButtons({super.key});
@override
Widget build(BuildContext context) {
return IntrinsicWidth(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisSize: MainAxisSize.min,
spacing: 8.0,
children: [
FloatingActionButton.extended(
onPressed: () => SpaceCodeUtil.joinWithSpaceCodeDialog(context),
icon: const Icon(Icons.join_right_outlined),
label: Text(
L10n.of(context).join,
overflow: TextOverflow.fade,
),
),
FloatingActionButton.extended(
onPressed: () => context.go('/rooms/newspace'),
icon: const Icon(Icons.add),
label: Text(
L10n.of(context).space,
overflow: TextOverflow.fade,
),
),
],
),
);
}
}