improve member status view

This commit is contained in:
poka 2022-06-06 17:52:42 +02:00
parent 48e2b09b22
commit a1767d289f
5 changed files with 27 additions and 18 deletions

View File

@ -214,7 +214,7 @@ class SubstrateSdk with ChangeNotifier {
Future<List<int>> getCerts(String address) async { Future<List<int>> getCerts(String address) async {
final idtyIndex = await sdk.webView! final idtyIndex = await sdk.webView!
.evalJavascript('api.query.identity.identityIndexOf("$address")'); .evalJavascript('api.query.identity.identityIndexOf("$address")');
log.d('u32: ' + idtyIndex.toString()); // log.d('u32: ' + idtyIndex.toString());
final _certsReceiver = await sdk.webView! final _certsReceiver = await sdk.webView!
.evalJavascript('api.query.cert.storageIdtyCertMeta($idtyIndex)') ?? .evalJavascript('api.query.cert.storageIdtyCertMeta($idtyIndex)') ??
@ -234,9 +234,9 @@ class SubstrateSdk with ChangeNotifier {
'api.query.cert.storageCertsByIssuer($idtyIndexFrom, $idtyIndexTo)') ?? 'api.query.cert.storageCertsByIssuer($idtyIndexFrom, $idtyIndexTo)') ??
''; '';
log.d(_certData);
if (_certData == '') return {}; if (_certData == '') return {};
// log.d(_certData);
return _certData; return _certData;
} }
@ -487,7 +487,7 @@ class SubstrateSdk with ChangeNotifier {
} }
} }
Future<String> idtyStatus(String address) async { Future<String> idtyStatus(String address, [bool smooth = true]) async {
// var tata = await sdk.webView! // var tata = await sdk.webView!
// .evalJavascript('api.query.system.account("$address")'); // .evalJavascript('api.query.system.account("$address")');
@ -503,7 +503,7 @@ class SubstrateSdk with ChangeNotifier {
if (idtyStatus != null) { if (idtyStatus != null) {
final String _status = idtyStatus['status']; final String _status = idtyStatus['status'];
log.d(_status); log.d('Status $address: $_status');
return (_status); return (_status);
} else { } else {
return 'expired'; return 'expired';

View File

@ -5,6 +5,7 @@ import 'package:gecko/globals.dart';
import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/models/wallet_data.dart';
import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/substrate_sdk.dart';
import 'package:gecko/screens/animated_text.dart';
import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/common_elements.dart';
import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
import 'package:gecko/screens/transaction_in_progress.dart'; import 'package:gecko/screens/transaction_in_progress.dart';
@ -109,20 +110,28 @@ class WalletOptionsProvider with ChangeNotifier {
} }
Widget idtyStatus(BuildContext context, String address, Widget idtyStatus(BuildContext context, String address,
{bool isOwner = false}) { {bool isOwner = false, Color color = Colors.black}) {
_showText(String text, [double size = 18, bool _bold = false]) => Text( _showText(String text,
text, [double size = 18, bool _bold = false, bool smooth = true]) {
log.d(text);
return AnimatedFadeOutIn<String>(
data: text,
duration: Duration(milliseconds: smooth ? 200 : 0),
builder: (value) => Text(
value,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: size, fontSize: size,
color: _bold ? orangeC : Colors.black, color: _bold ? color : Colors.black,
fontWeight: _bold ? FontWeight.w500 : FontWeight.w400), fontWeight: _bold ? FontWeight.w500 : FontWeight.w400),
); ),
);
}
return Consumer<SubstrateSdk>(builder: (context, _sub, _) { return Consumer<SubstrateSdk>(builder: (context, _sub, _) {
return FutureBuilder( return FutureBuilder(
future: _sub.idtyStatus(address), future: _sub.idtyStatus(address),
initialData: '...', initialData: '',
builder: (context, snapshot) { builder: (context, snapshot) {
switch (snapshot.data.toString()) { switch (snapshot.data.toString()) {
case 'noid': case 'noid':
@ -150,7 +159,7 @@ class WalletOptionsProvider with ChangeNotifier {
case 'Validated': case 'Validated':
{ {
return _showText('Membre validé !'); return _showText('Membre validé !', 18, true);
} }
case 'expired': case 'expired':
@ -159,15 +168,15 @@ class WalletOptionsProvider with ChangeNotifier {
} }
} }
return SizedBox( return SizedBox(
child: _showText('Statut inconnu'), child: _showText('', 18, false, false),
); );
}); });
}); });
} }
Future<bool> isMember(BuildContext context, String address) async { Future<bool> isMember(BuildContext context, String address) async {
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false); SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
return await _sub. idtyStatus(address) == 'Validated'; return await _sub.idtyStatus(address) == 'Validated';
} }
Future<String?> validateIdentity(BuildContext context) async { Future<String?> validateIdentity(BuildContext context) async {

View File

@ -108,7 +108,7 @@ class WalletOptions extends StatelessWidget {
children: [ children: [
_walletOptions.idtyStatus( _walletOptions.idtyStatus(
context, _walletOptions.address.text, context, _walletOptions.address.text,
isOwner: true), isOwner: true, color: orangeC),
getCerts(context, getCerts(context,
walletProvider.address.text, 15), walletProvider.address.text, 15),
]), ]),

View File

@ -133,7 +133,7 @@ class WalletViewScreen extends StatelessWidget {
future: _sub.certState(_defaultWallet.address!, future: _sub.certState(_defaultWallet.address!,
pubkey!), // .canCertify(_defaultWallet.address!, pubkey!), pubkey!), // .canCertify(_defaultWallet.address!, pubkey!),
builder: (context, AsyncSnapshot<Map<String, int>> snapshot) { builder: (context, AsyncSnapshot<Map<String, int>> snapshot) {
log.d(snapshot.data); // log.d(snapshot.data);
if (snapshot.data == null) return const SizedBox(); if (snapshot.data == null) return const SizedBox();
String _duration = ''; String _duration = '';
if (snapshot.data!['certDelay'] != null || if (snapshot.data!['certDelay'] != null ||
@ -736,7 +736,7 @@ class WalletViewScreen extends StatelessWidget {
balance(context, pubkey!, 22), balance(context, pubkey!, 22),
const SizedBox(height: 10), const SizedBox(height: 10),
_walletOptions.idtyStatus(context, pubkey!, isOwner: false), _walletOptions.idtyStatus(context, pubkey!, isOwner: false, color: Colors.black),
getCerts(context, pubkey!, 14), getCerts(context, pubkey!, 14),
// if (username == null && // if (username == null &&

View File

@ -5,7 +5,7 @@ description: Pay with G1.
# pub.dev using `pub publish`. This is preferred for private packages. # pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 0.0.8+0 version: 0.0.8+2
environment: environment:
sdk: '>=2.12.0 <3.0.0' sdk: '>=2.12.0 <3.0.0'