Skip to content
Snippets Groups Projects
Select Git revision
  • c4bdceaf4f9d2f044e09c4fa91e5120683b55715
  • master default protected
  • WIP-buggy-mywallets-riverpod
  • polkadart-stuff
  • provider-to-riverpod
  • implementLightnode
  • hugo_RML16
  • refactorOnboardingSlideshow
  • duniterV1Latest
  • scanNetwork
  • dubp_rs
  • v0.2.18+141
  • v0.2.17+140
  • v0.2.16+139
  • v0.2.16+138
  • v0.2.15+137
  • v0.2.14+134
  • v0.2.13+133
  • v0.2.13+132
  • v0.2.12+131
  • v0.2.11+130
  • v0.2.10+129
  • v0.2.9+128
  • v0.2.8+127
  • v0.2.7+125
  • v0.2.6+124
  • v0.2.5+123
  • v0.2.4+122
  • v0.2.3+119
  • v0.2.2+118
  • v0.2.1+113
31 results

certs_list.dart

Blame
  • certs_list.dart 4.34 KiB
    import 'package:easy_localization/easy_localization.dart';
    import 'package:flutter/material.dart';
    import 'package:gecko/globals.dart';
    import 'package:gecko/models/queries_indexer.dart';
    import 'package:gecko/models/scale_functions.dart';
    import 'package:gecko/models/widgets_keys.dart';
    import 'package:gecko/providers/duniter_indexer.dart';
    import 'package:gecko/widgets/cert_tile.dart';
    import 'package:graphql_flutter/graphql_flutter.dart';
    import 'package:provider/provider.dart';
    
    class CertsList extends StatelessWidget {
      const CertsList({super.key, required this.address, this.direction = CertDirection.received});
      final String address;
      final CertDirection direction;
    
      String formatNumber(int number) {
        return number < 10 ? '0$number' : '$number';
      }
    
      @override
      Widget build(BuildContext context) {
        final indexerProvider = Provider.of<DuniterIndexer>(context, listen: false);
        final screenHeight = MediaQuery.of(context).size.height;
        final appBarHeight = AppBar().preferredSize.height;
        final windowHeight = screenHeight - appBarHeight - (isTall ? 170 : 140);
    
        late String gertCertsReq;
        late String certFrom;
    
        if (direction == CertDirection.received) {
          gertCertsReq = getCertsReceived;
          certFrom = 'issuer';
        } else {
          gertCertsReq = getCertsSent;
          certFrom = 'receiver';
        }
    
        return GraphQLProvider(
          client: ValueNotifier(indexerProvider.indexerClient),
          child: Query(
            options: QueryOptions(
              document: gql(gertCertsReq),
              variables: <String, dynamic>{
                'address': address,
              },
            ),
            builder: (QueryResult result, {fetchMore, refetch}) {
              if (result.isLoading || result.data == null) {
                return const Center(
                  child: CircularProgressIndicator(),
                );
              }
    
              if (result.hasException || result.data == null) {
                log.e('Error Indexer: ${result.exception}');
                return Column(children: <Widget>[
                  ScaledSizedBox(height: 50),
                  Text(
                    "noNetworkNoHistory".tr(),
                    textAlign: TextAlign.center,
                    style: scaledTextStyle(fontSize: 17),
                  )
                ]);
              } else if (result.data?['certConnection']['edges']?.isEmpty) {
                return Column(children: <Widget>[
                  ScaledSizedBox(height: 50),
                  Text(
                    "noDataToDisplay".tr(),
                    style: scaledTextStyle(fontSize: 17),