diff --git a/lib/screens/account.dart b/lib/screens/account.dart index 345911c..1a177f6 100644 --- a/lib/screens/account.dart +++ b/lib/screens/account.dart @@ -4,10 +4,12 @@ import 'package:gap/gap.dart'; import 'package:go_router/go_router.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:provider/provider.dart'; +import 'package:responsive_framework/responsive_framework.dart'; import 'package:styled_widget/styled_widget.dart'; import 'package:surface/providers/userinfo.dart'; import 'package:surface/widgets/account/account_image.dart'; import 'package:surface/widgets/dialog.dart'; +import 'package:surface/widgets/navigation/app_scaffold.dart'; class AccountScreen extends StatelessWidget { const AccountScreen({super.key}); @@ -18,6 +20,11 @@ class AccountScreen extends StatelessWidget { return Scaffold( appBar: AppBar( + leading: ResponsiveBreakpoints.of(context).smallerOrEqualTo(MOBILE) + ? DrawerButton(onPressed: () { + globalRootScaffoldKey.currentState?.openDrawer(); + }) + : null, title: Text("screenAccount").tr(), actions: [ IconButton( diff --git a/lib/screens/chat.dart b/lib/screens/chat.dart index 1e07cfc..c7b359c 100644 --- a/lib/screens/chat.dart +++ b/lib/screens/chat.dart @@ -3,12 +3,14 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:provider/provider.dart'; +import 'package:responsive_framework/responsive_framework.dart'; import 'package:surface/providers/channel.dart'; import 'package:surface/providers/user_directory.dart'; import 'package:surface/types/chat.dart'; import 'package:surface/widgets/account/account_image.dart'; import 'package:surface/widgets/dialog.dart'; import 'package:surface/widgets/loading_indicator.dart'; +import 'package:surface/widgets/navigation/app_scaffold.dart'; class ChatScreen extends StatefulWidget { const ChatScreen({super.key}); @@ -65,6 +67,11 @@ class _ChatScreenState extends State { return Scaffold( appBar: AppBar( + leading: ResponsiveBreakpoints.of(context).smallerOrEqualTo(MOBILE) + ? DrawerButton(onPressed: () { + globalRootScaffoldKey.currentState?.openDrawer(); + }) + : null, title: Text('screenChat').tr(), ), floatingActionButton: FloatingActionButton( diff --git a/lib/screens/explore.dart b/lib/screens/explore.dart index 9b0de23..4a058f2 100644 --- a/lib/screens/explore.dart +++ b/lib/screens/explore.dart @@ -5,8 +5,10 @@ import 'package:gap/gap.dart'; import 'package:go_router/go_router.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:provider/provider.dart'; +import 'package:responsive_framework/responsive_framework.dart'; import 'package:surface/providers/post.dart'; import 'package:surface/types/post.dart'; +import 'package:surface/widgets/navigation/app_scaffold.dart'; import 'package:surface/widgets/post/post_item.dart'; import 'package:very_good_infinite_list/very_good_infinite_list.dart'; @@ -137,6 +139,12 @@ class _ExploreScreenState extends State { child: CustomScrollView( slivers: [ SliverAppBar( + leading: + ResponsiveBreakpoints.of(context).smallerOrEqualTo(MOBILE) + ? DrawerButton(onPressed: () { + globalRootScaffoldKey.currentState?.openDrawer(); + }) + : null, title: Text('screenExplore').tr(), floating: true, snap: true, diff --git a/lib/screens/home.dart b/lib/screens/home.dart index dd0c9b7..70d3134 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -6,12 +6,14 @@ import 'package:gap/gap.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:material_symbols_icons/symbols.dart'; import 'package:provider/provider.dart'; +import 'package:responsive_framework/responsive_framework.dart'; import 'package:styled_widget/styled_widget.dart'; import 'package:flutter/material.dart'; import 'package:surface/providers/sn_network.dart'; import 'package:surface/providers/userinfo.dart'; import 'package:surface/types/check_in.dart'; import 'package:surface/widgets/dialog.dart'; +import 'package:surface/widgets/navigation/app_scaffold.dart'; class HomeScreenDashEntry { final String name; @@ -45,6 +47,11 @@ class _HomeScreenState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( + leading: ResponsiveBreakpoints.of(context).smallerOrEqualTo(MOBILE) + ? DrawerButton(onPressed: () { + globalRootScaffoldKey.currentState?.openDrawer(); + }) + : null, title: Text("screenHome").tr(), ), body: LayoutBuilder( diff --git a/lib/widgets/navigation/app_scaffold.dart b/lib/widgets/navigation/app_scaffold.dart index 954b8c7..27ce3f4 100644 --- a/lib/widgets/navigation/app_scaffold.dart +++ b/lib/widgets/navigation/app_scaffold.dart @@ -10,6 +10,8 @@ import 'package:surface/widgets/navigation/app_bottom_navigation.dart'; import 'package:surface/widgets/navigation/app_drawer_navigation.dart'; import 'package:surface/widgets/navigation/app_rail_navigation.dart'; +final globalRootScaffoldKey = GlobalKey(); + class AppPageScaffold extends StatelessWidget { final String? title; final Widget? body; @@ -93,6 +95,7 @@ class AppRootScaffold extends StatelessWidget { return AppBackground( isRoot: true, child: Scaffold( + key: globalRootScaffoldKey, body: Column( children: [ ConnectionIndicator(),