♻️ Fab menu overhaul
This commit is contained in:
		| @@ -1,5 +1,6 @@ | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_hooks/flutter_hooks.dart'; | ||||
| import 'package:go_router/go_router.dart'; | ||||
| import 'package:gap/gap.dart'; | ||||
| import 'package:hooks_riverpod/hooks_riverpod.dart'; | ||||
| @@ -9,6 +10,7 @@ import 'package:island/widgets/alert.dart'; | ||||
| import 'package:island/widgets/app_scaffold.dart'; | ||||
| import 'package:island/widgets/content/cloud_files.dart'; | ||||
| import 'package:island/widgets/content/sheet.dart'; | ||||
| import 'package:island/widgets/navigation/fab_menu.dart'; | ||||
| import 'package:island/widgets/response.dart'; | ||||
| import 'package:material_symbols_icons/symbols.dart'; | ||||
| import 'package:riverpod_annotation/riverpod_annotation.dart'; | ||||
| @@ -41,6 +43,20 @@ class RealmListScreen extends HookConsumerWidget { | ||||
|     final realms = ref.watch(realmsJoinedProvider); | ||||
|     final realmInvites = ref.watch(realmInvitesProvider); | ||||
|  | ||||
|     useEffect(() { | ||||
|       // Set FAB type to realm | ||||
|       final fabMenuNotifier = ref.read(fabMenuTypeProvider.notifier); | ||||
|       WidgetsBinding.instance.addPostFrameCallback((_) { | ||||
|         fabMenuNotifier.state = FabMenuType.realm; | ||||
|       }); | ||||
|       return () { | ||||
|         // Clean up: reset FAB type to main | ||||
|         WidgetsBinding.instance.addPostFrameCallback((_) { | ||||
|           fabMenuNotifier.state = FabMenuType.main; | ||||
|         }); | ||||
|       }; | ||||
|     }, []); | ||||
|  | ||||
|     return AppScaffold( | ||||
|       isNoBackground: false, | ||||
|       appBar: AppBar( | ||||
| @@ -78,17 +94,7 @@ class RealmListScreen extends HookConsumerWidget { | ||||
|           const Gap(8), | ||||
|         ], | ||||
|       ), | ||||
|       floatingActionButton: FloatingActionButton( | ||||
|         heroTag: const Key("realms-page-fab"), | ||||
|         child: const Icon(Symbols.add), | ||||
|         onPressed: () { | ||||
|           context.pushNamed('realmNew').then((value) { | ||||
|             if (value != null) { | ||||
|               ref.invalidate(realmsJoinedProvider); | ||||
|             } | ||||
|           }); | ||||
|         }, | ||||
|       ), | ||||
|       floatingActionButton: const FabMenu(), | ||||
|       body: ExtendedRefreshIndicator( | ||||
|         child: realms.when( | ||||
|           data: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user