Skip to content

Commit b5c675e

Browse files
committed
Remove layout drawer and include base, include layout in home screen and apply changes in all screens, create app_bar_provider
1 parent 2b6216a commit b5c675e

14 files changed

Lines changed: 628 additions & 626 deletions

app/lib/apps/chatbot/chatbot_widget.dart

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import 'package:flutter_inappwebview/flutter_inappwebview.dart';
33
import 'package:threebotlogin/apps/chatbot/chatbot_config.dart';
44
import 'package:threebotlogin/browser.dart';
55
import 'package:threebotlogin/helpers/logger.dart';
6-
import 'package:threebotlogin/widgets/layout_drawer.dart';
76

87
class ChatbotWidget extends StatefulWidget {
98
final String email;
@@ -85,15 +84,13 @@ class _ChatbotState extends State<ChatbotWidget>
8584
@override
8685
Widget build(BuildContext context) {
8786
super.build(context);
88-
return LayoutDrawer(
89-
titleText: 'Support',
90-
content: Column(
87+
return Column(
9188
children: <Widget>[
9289
Expanded(
9390
child: Container(child: iaWebview),
9491
),
9592
],
96-
));
93+
);
9794
}
9895

9996
@override

app/lib/apps/farmers/farmers_widget.dart

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import 'package:threebotlogin/helpers/logger.dart';
1414
import 'package:threebotlogin/models/wallet_data.dart';
1515
import 'package:threebotlogin/screens/scan_screen.dart';
1616
import 'package:threebotlogin/services/shared_preference_service.dart';
17-
import 'package:threebotlogin/widgets/layout_drawer.dart';
1817

1918
bool created = false;
2019

@@ -153,15 +152,13 @@ class _FarmersState extends State<FarmersWidget>
153152
@override
154153
Widget build(BuildContext context) {
155154
super.build(context);
156-
return LayoutDrawer(
157-
titleText: 'Farming',
158-
content: Column(
155+
return Column(
159156
children: <Widget>[
160157
Expanded(
161158
child: Container(child: iaWebView),
162159
),
163160
],
164-
));
161+
);
165162
}
166163

167164
@override

app/lib/apps/news/news_screen.dart

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import 'package:flutter_widget_from_html/flutter_widget_from_html.dart';
44
import 'package:http/http.dart' as http;
55
import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';
66
import 'package:threebotlogin/helpers/globals.dart';
7-
import 'package:threebotlogin/widgets/layout_drawer.dart';
87
import 'package:xml2json/xml2json.dart';
98
import 'package:url_launcher/url_launcher.dart';
109
import 'package:timeago/timeago.dart' as timeago;
@@ -16,7 +15,8 @@ class NewsScreen extends StatefulWidget {
1615
State<NewsScreen> createState() => _NewsScreenState();
1716
}
1817

19-
class _NewsScreenState extends State<NewsScreen> {
18+
class _NewsScreenState extends State<NewsScreen>
19+
with AutomaticKeepAliveClientMixin {
2020
final Xml2Json xml2json = Xml2Json();
2121
static const int articlesPerPage = 20;
2222
final PagingController<int, Map<String, dynamic>> _pagingController =
@@ -60,27 +60,25 @@ class _NewsScreenState extends State<NewsScreen> {
6060

6161
@override
6262
Widget build(BuildContext context) {
63-
return LayoutDrawer(
64-
titleText: 'News',
65-
content: RefreshIndicator(
66-
onRefresh: () async => _pagingController.refresh(),
67-
child: PagedListView<int, Map<String, dynamic>>(
68-
pagingController: _pagingController,
69-
builderDelegate: PagedChildBuilderDelegate<Map<String, dynamic>>(
70-
itemBuilder: (context, entry, index) =>
71-
buildArticleCard(entry, context),
72-
firstPageProgressIndicatorBuilder: (context) => Center(
73-
child: Column(
74-
mainAxisAlignment: MainAxisAlignment.center,
75-
children: [
76-
const CircularProgressIndicator(),
77-
const SizedBox(height: 8),
78-
Text('Loading Articles...',
79-
style: Theme.of(context).textTheme.bodyLarge!.copyWith(
80-
color: Theme.of(context).colorScheme.onSurface,
81-
fontWeight: FontWeight.bold)),
82-
],
83-
),
63+
super.build(context);
64+
return RefreshIndicator(
65+
onRefresh: () async => _pagingController.refresh(),
66+
child: PagedListView<int, Map<String, dynamic>>(
67+
pagingController: _pagingController,
68+
builderDelegate: PagedChildBuilderDelegate<Map<String, dynamic>>(
69+
itemBuilder: (context, entry, index) =>
70+
buildArticleCard(entry, context),
71+
firstPageProgressIndicatorBuilder: (context) => Center(
72+
child: Column(
73+
mainAxisAlignment: MainAxisAlignment.center,
74+
children: [
75+
const CircularProgressIndicator(),
76+
const SizedBox(height: 8),
77+
Text('Loading Articles...',
78+
style: Theme.of(context).textTheme.bodyLarge!.copyWith(
79+
color: Theme.of(context).colorScheme.onSurface,
80+
fontWeight: FontWeight.bold)),
81+
],
8482
),
8583
),
8684
),
@@ -186,4 +184,7 @@ class _NewsScreenState extends State<NewsScreen> {
186184
await launchUrl(uri);
187185
}
188186
}
187+
188+
@override
189+
bool get wantKeepAlive => true;
189190
}

app/lib/apps/news/news_widget.dart

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'package:threebotlogin/clipboard_hack/clipboard_hack.dart';
66
import 'package:threebotlogin/events/events.dart';
77
import 'package:threebotlogin/events/go_home_event.dart';
88
import 'package:threebotlogin/helpers/logger.dart';
9-
import 'package:threebotlogin/widgets/layout_drawer.dart';
109
import 'package:url_launcher/url_launcher.dart';
1110

1211
bool created = false;
@@ -83,15 +82,13 @@ class _NewsState extends State<NewsWidget> with AutomaticKeepAliveClientMixin {
8382
@override
8483
Widget build(BuildContext context) {
8584
super.build(context);
86-
return LayoutDrawer(
87-
titleText: 'News',
88-
content: Column(
85+
return Column(
8986
children: <Widget>[
9087
Expanded(
9188
child: Container(child: iaWebView),
9289
),
9390
],
94-
));
91+
);
9592
}
9693

9794
@override

app/lib/apps/wallet/wallet_widget.dart

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import 'package:threebotlogin/models/wallet_data.dart';
1616
import 'package:threebotlogin/screens/scan_screen.dart';
1717
import 'package:threebotlogin/services/crypto_service.dart';
1818
import 'package:threebotlogin/services/shared_preference_service.dart';
19-
import 'package:threebotlogin/widgets/layout_drawer.dart';
2019

2120
bool created = false;
2221

@@ -184,15 +183,13 @@ class _WalletState extends State<WalletWidget>
184183
@override
185184
Widget build(BuildContext context) {
186185
super.build(context);
187-
return LayoutDrawer(
188-
titleText: 'Wallet',
189-
content: Column(
190-
children: <Widget>[
191-
Expanded(
192-
child: Container(child: iaWebView),
193-
),
194-
],
195-
));
186+
return Column(
187+
children: <Widget>[
188+
Expanded(
189+
child: Container(child: iaWebView),
190+
),
191+
],
192+
);
196193
}
197194

198195
@override
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:flutter_riverpod/flutter_riverpod.dart';
3+
4+
final appBarActionsBuilderProvider = StateProvider<List<Widget> Function(BuildContext context)?>((ref) => null);

app/lib/screens/council_screen.dart

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import 'package:flutter/material.dart';
22
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
33
import 'package:threebotlogin/widgets/council/councils.dart';
4-
import 'package:threebotlogin/widgets/layout_drawer.dart';
54
import 'package:validators/validators.dart';
65

76
class CouncilScreen extends StatefulWidget {
@@ -11,7 +10,7 @@ class CouncilScreen extends StatefulWidget {
1110
State<CouncilScreen> createState() => _CouncilScreenState();
1211
}
1312

14-
class _CouncilScreenState extends State<CouncilScreen> {
13+
class _CouncilScreenState extends State<CouncilScreen> with AutomaticKeepAliveClientMixin {
1514
final urlController = TextEditingController();
1615
String? errorMessage;
1716
String? selectedNetwork = '';
@@ -57,6 +56,7 @@ class _CouncilScreenState extends State<CouncilScreen> {
5756

5857
@override
5958
Widget build(BuildContext context) {
59+
super.build(context);
6060
final content = Padding(
6161
padding: const EdgeInsets.all(16.0),
6262
child: KeyboardVisibilityBuilder(builder: (context, isKeyboardVisible) {
@@ -157,6 +157,9 @@ class _CouncilScreenState extends State<CouncilScreen> {
157157
],
158158
));
159159
}));
160-
return LayoutDrawer(titleText: 'Council', content: content);
160+
return content;
161161
}
162+
163+
@override
164+
bool get wantKeepAlive => true;
162165
}

app/lib/screens/dao_screen.dart

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import 'package:flutter/material.dart';
22
import 'package:tfchain_client/models/dao.dart';
33
import 'package:threebotlogin/helpers/logger.dart';
4-
import 'package:threebotlogin/widgets/layout_drawer.dart';
54
import 'package:threebotlogin/widgets/dao/proposals.dart';
65
import 'package:threebotlogin/services/tfchain_service.dart';
76

@@ -12,7 +11,7 @@ class DaoPage extends StatefulWidget {
1211
State<DaoPage> createState() => _DaoPageState();
1312
}
1413

15-
class _DaoPageState extends State<DaoPage> with SingleTickerProviderStateMixin {
14+
class _DaoPageState extends State<DaoPage> with SingleTickerProviderStateMixin, AutomaticKeepAliveClientMixin {
1615
final List<Proposal> activeList = [];
1716
final List<Proposal> inactiveList = [];
1817
bool loading = true;
@@ -67,6 +66,7 @@ class _DaoPageState extends State<DaoPage> with SingleTickerProviderStateMixin {
6766

6867
@override
6968
Widget build(BuildContext context) {
69+
super.build(context);
7070
Widget content;
7171
if (loading) {
7272
content = Center(
@@ -149,6 +149,9 @@ class _DaoPageState extends State<DaoPage> with SingleTickerProviderStateMixin {
149149
),
150150
);
151151
}
152-
return LayoutDrawer(titleText: 'Dao', content: content);
152+
return content;
153153
}
154+
155+
@override
156+
bool get wantKeepAlive => true;
154157
}

0 commit comments

Comments
 (0)