mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-19 14:03:31 +00:00
54 lines
1.6 KiB
Dart
54 lines
1.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:friendica_portal/globals.dart';
|
|
import 'package:friendica_portal/services/auth_service.dart';
|
|
import 'package:go_router/go_router.dart';
|
|
|
|
import '../controls/app_bottom_nav_bar.dart';
|
|
import '../routes.dart';
|
|
|
|
class MenusScreen extends StatelessWidget {
|
|
static const menuButtonWidth = 350.0;
|
|
static const menuButtonHeight = 125.0;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final items = [
|
|
buildMenuButton('Gallery', () => context.pushNamed(ScreenPaths.gallery)),
|
|
buildMenuButton('Profile', () => context.pushNamed(ScreenPaths.profile)),
|
|
buildMenuButton('Logout', () async {
|
|
final confirm = await showYesNoDialog(context, 'Log out account?');
|
|
if (confirm == true) {
|
|
await getIt<AuthService>().signOut();
|
|
}
|
|
}),
|
|
];
|
|
return Scaffold(
|
|
body: Center(
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: GridView.builder(
|
|
itemCount: items.length,
|
|
gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent(
|
|
mainAxisExtent: menuButtonHeight,
|
|
maxCrossAxisExtent: menuButtonWidth,
|
|
),
|
|
itemBuilder: (context, index) => items[index],
|
|
),
|
|
),
|
|
),
|
|
bottomNavigationBar: const AppBottomNavBar(
|
|
currentButton: NavBarButtons.menu,
|
|
),
|
|
);
|
|
}
|
|
|
|
Widget buildMenuButton(String title, Function() onPressed) {
|
|
return Padding(
|
|
padding: const EdgeInsets.all(8.0),
|
|
child: ElevatedButton(
|
|
onPressed: onPressed,
|
|
child: Text(title),
|
|
),
|
|
);
|
|
}
|
|
}
|