Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Ğecko
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
clients
Ğecko
Commits
5ab9377f
Commit
5ab9377f
authored
2 years ago
by
poka
Browse files
Options
Downloads
Patches
Plain Diff
fix: use different pageInfo on activityscreen when pop multiple accounts
parent
c6a7474c
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Pipeline
#19001
waiting for manual action
Stage: format
Stage: build_and_test
Stage: package
Changes
3
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
lib/screens/activity.dart
+31
-14
31 additions, 14 deletions
lib/screens/activity.dart
lib/widgets/history_query.dart
+5
-98
5 additions, 98 deletions
lib/widgets/history_query.dart
lib/widgets/history_view.dart
+112
-0
112 additions, 0 deletions
lib/widgets/history_view.dart
with
148 additions
and
112 deletions
lib/screens/activity.dart
+
31
−
14
View file @
5ab9377f
// ignore_for_file: must_be_immutable
import
'package:easy_localization/easy_localization.dart'
;
import
'package:gecko/globals.dart'
;
import
'package:gecko/models/widgets_keys.dart'
;
import
'package:flutter/material.dart'
;
import
'package:gecko/providers/duniter_indexer.dart'
;
import
'package:gecko/widgets/bottom_app_bar.dart'
;
import
'package:gecko/widgets/header_profile.dart'
;
import
'package:gecko/widgets/history_query.dart'
;
import
'package:provider/provider.dart'
;
class
ActivityScreen
extends
StatelessWidget
with
ChangeNotifier
{
ActivityScreen
({
required
this
.
address
,
required
this
.
avatar
,
this
.
username
})
...
...
@@ -18,10 +19,25 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
@override
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
final
duniterIndexer
=
Provider
.
of
<
DuniterIndexer
>(
context
,
listen:
true
);
return
WillPopScope
(
onWillPop:
()
{
duniterIndexer
.
fetchMoreCursor
=
duniterIndexer
.
pageInfo
=
duniterIndexer
.
transBC
=
null
;
return
Future
<
bool
>
.
value
(
true
);
},
child:
Scaffold
(
appBar:
AppBar
(
elevation:
0
,
toolbarHeight:
60
*
ratio
,
leading:
IconButton
(
icon:
const
Icon
(
Icons
.
arrow_back
,
color:
Colors
.
black
),
onPressed:
()
{
duniterIndexer
.
fetchMoreCursor
=
duniterIndexer
.
pageInfo
=
duniterIndexer
.
transBC
=
null
;
Navigator
.
of
(
context
)
.
pop
();
}),
title:
SizedBox
(
height:
22
,
child:
Text
(
'accountActivity'
.
tr
()),
...
...
@@ -31,6 +47,7 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
body:
Column
(
children:
<
Widget
>[
HeaderProfile
(
address:
address
,
username:
username
),
HistoryQuery
(
address:
address
),
]));
])),
);
}
}
This diff is collapsed.
Click to expand it.
lib/widgets/history_query.dart
+
5
−
98
View file @
5ab9377f
...
...
@@ -4,7 +4,7 @@ import 'package:gecko/globals.dart';
import
'package:gecko/models/queries_indexer.dart'
;
import
'package:gecko/models/widgets_keys.dart'
;
import
'package:gecko/providers/duniter_indexer.dart'
;
import
'package:gecko/widgets/
transaction_tile
.dart'
;
import
'package:gecko/widgets/
history_view
.dart'
;
import
'package:graphql_flutter/graphql_flutter.dart'
;
import
'package:provider/provider.dart'
;
...
...
@@ -116,11 +116,14 @@ class HistoryQuery extends StatelessWidget {
child:
ListView
(
key:
keyListTransactions
,
controller:
scrollController
,
children:
<
Widget
>[
h
istoryView
(
context
,
result
)],
children:
<
Widget
>[
H
istoryView
(
result:
result
)],
),
),
),
onNotification:
(
dynamic
t
)
{
if
(
duniterIndexer
.
pageInfo
==
null
)
{
duniterIndexer
.
reload
();
}
if
(
t
is
ScrollEndNotification
&&
scrollController
.
position
.
pixels
>
=
scrollController
.
position
.
maxScrollExtent
*
0.7
&&
...
...
@@ -136,100 +139,4 @@ class HistoryQuery extends StatelessWidget {
)),
);
}
Widget
historyView
(
context
,
result
)
{
final
duniterIndexer
=
Provider
.
of
<
DuniterIndexer
>(
context
,
listen:
false
);
int
keyID
=
0
;
const
double
avatarSize
=
200
;
bool
isMigrationPassed
=
false
;
List
<
String
>
pastDelimiters
=
[];
return
duniterIndexer
.
transBC
==
null
?
Column
(
children:
<
Widget
>[
const
SizedBox
(
height:
50
),
Text
(
"noTransactionToDisplay"
.
tr
(),
style:
const
TextStyle
(
fontSize:
18
),
)
])
:
Column
(
children:
<
Widget
>[
Column
(
children:
duniterIndexer
.
transBC
!.
map
((
repository
)
{
final
answer
=
computeHistoryView
(
repository
);
pastDelimiters
.
add
(
answer
[
'dateDelimiter'
]);
bool
isMigrationTime
=
false
;
if
(
answer
[
'isMigrationTime'
]
&&
!
isMigrationPassed
)
{
isMigrationPassed
=
true
;
isMigrationTime
=
true
;
}
return
Column
(
children:
<
Widget
>[
if
(
isMigrationTime
)
Padding
(
padding:
const
EdgeInsets
.
symmetric
(
vertical:
30
),
child:
Row
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
const
Image
(
image:
AssetImage
(
'assets/party.png'
),
height:
40
),
const
SizedBox
(
width:
40
),
Text
(
'blockchainStart'
.
tr
(),
style:
const
TextStyle
(
fontSize:
25
,
color:
Colors
.
blueAccent
,
fontWeight:
FontWeight
.
w500
),
),
const
SizedBox
(
width:
40
),
const
Image
(
image:
AssetImage
(
'assets/party.png'
),
height:
40
),
],
),
),
// if ((countsDelimiter[answer['dateDelimiter']] ?? 0) >= 1)
if
(
pastDelimiters
.
length
==
1
||
pastDelimiters
.
length
>
=
2
&&
!
(
pastDelimiters
[
pastDelimiters
.
length
-
2
]
==
answer
[
'dateDelimiter'
]))
Padding
(
padding:
const
EdgeInsets
.
symmetric
(
vertical:
30
),
child:
Text
(
answer
[
'dateDelimiter'
],
style:
const
TextStyle
(
fontSize:
23
,
color:
orangeC
,
fontWeight:
FontWeight
.
w300
),
),
),
TransactionTile
(
keyID:
keyID
,
avatarSize:
avatarSize
,
repository:
repository
,
dateForm:
answer
[
'dateForm'
],
finalAmount:
answer
[
'finalAmount'
],
duniterIndexer:
duniterIndexer
,
context:
context
),
]);
})
.
toList
()),
if
(
result
.
isLoading
&&
duniterIndexer
.
pageInfo
!
[
'hasPreviousPage'
])
Row
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
const
<
Widget
>[
CircularProgressIndicator
(),
],
),
if
(
!
duniterIndexer
.
pageInfo
!
[
'hasNextPage'
])
Column
(
children:
<
Widget
>[
const
SizedBox
(
height:
15
),
Text
(
"historyStart"
.
tr
(),
textAlign:
TextAlign
.
center
,
style:
const
TextStyle
(
fontSize:
20
)),
const
SizedBox
(
height:
15
)
],
)
]);
}
}
This diff is collapsed.
Click to expand it.
lib/widgets/history_view.dart
0 → 100644
+
112
−
0
View file @
5ab9377f
import
'package:easy_localization/easy_localization.dart'
;
import
'package:flutter/material.dart'
;
import
'package:gecko/globals.dart'
;
import
'package:gecko/providers/duniter_indexer.dart'
;
import
'package:gecko/widgets/transaction_tile.dart'
;
import
'package:graphql_flutter/graphql_flutter.dart'
;
import
'package:provider/provider.dart'
;
class
HistoryView
extends
StatelessWidget
{
const
HistoryView
({
Key
?
key
,
required
this
.
result
,
})
:
super
(
key:
key
);
final
QueryResult
result
;
@override
Widget
build
(
BuildContext
context
)
{
final
duniterIndexer
=
Provider
.
of
<
DuniterIndexer
>(
context
,
listen:
false
);
int
keyID
=
0
;
const
double
avatarSize
=
200
;
bool
isMigrationPassed
=
false
;
List
<
String
>
pastDelimiters
=
[];
return
duniterIndexer
.
transBC
==
null
?
Column
(
children:
<
Widget
>[
const
SizedBox
(
height:
50
),
Text
(
"noTransactionToDisplay"
.
tr
(),
style:
const
TextStyle
(
fontSize:
18
),
)
])
:
Column
(
children:
<
Widget
>[
Column
(
children:
duniterIndexer
.
transBC
!.
map
((
repository
)
{
final
answer
=
computeHistoryView
(
repository
);
pastDelimiters
.
add
(
answer
[
'dateDelimiter'
]);
bool
isMigrationTime
=
false
;
if
(
answer
[
'isMigrationTime'
]
&&
!
isMigrationPassed
)
{
isMigrationPassed
=
true
;
isMigrationTime
=
true
;
}
return
Column
(
children:
<
Widget
>[
if
(
isMigrationTime
)
Padding
(
padding:
const
EdgeInsets
.
symmetric
(
vertical:
30
),
child:
Row
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
[
const
Image
(
image:
AssetImage
(
'assets/party.png'
),
height:
40
),
const
SizedBox
(
width:
40
),
Text
(
'blockchainStart'
.
tr
(),
style:
const
TextStyle
(
fontSize:
25
,
color:
Colors
.
blueAccent
,
fontWeight:
FontWeight
.
w500
),
),
const
SizedBox
(
width:
40
),
const
Image
(
image:
AssetImage
(
'assets/party.png'
),
height:
40
),
],
),
),
// if ((countsDelimiter[answer['dateDelimiter']] ?? 0) >= 1)
if
(
pastDelimiters
.
length
==
1
||
pastDelimiters
.
length
>
=
2
&&
!
(
pastDelimiters
[
pastDelimiters
.
length
-
2
]
==
answer
[
'dateDelimiter'
]))
Padding
(
padding:
const
EdgeInsets
.
symmetric
(
vertical:
30
),
child:
Text
(
answer
[
'dateDelimiter'
],
style:
const
TextStyle
(
fontSize:
23
,
color:
orangeC
,
fontWeight:
FontWeight
.
w300
),
),
),
TransactionTile
(
keyID:
keyID
,
avatarSize:
avatarSize
,
repository:
repository
,
dateForm:
answer
[
'dateForm'
],
finalAmount:
answer
[
'finalAmount'
],
duniterIndexer:
duniterIndexer
,
context:
context
),
]);
})
.
toList
()),
if
(
result
.
isLoading
&&
duniterIndexer
.
pageInfo
!
[
'hasPreviousPage'
])
Row
(
mainAxisAlignment:
MainAxisAlignment
.
center
,
children:
const
<
Widget
>[
CircularProgressIndicator
(),
],
),
if
(
!
duniterIndexer
.
pageInfo
!
[
'hasNextPage'
])
Column
(
children:
<
Widget
>[
const
SizedBox
(
height:
15
),
Text
(
"historyStart"
.
tr
(),
textAlign:
TextAlign
.
center
,
style:
const
TextStyle
(
fontSize:
20
)),
const
SizedBox
(
height:
15
)
],
)
]);
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment