import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:provider/provider.dart'; class SubstrateSandBox extends StatelessWidget { const SubstrateSandBox({Key? key}) : super(key: key); @override Widget build(BuildContext context) { SubstrateSdk _sub = Provider.of(context, listen: false); return StatefulWrapper( onInit: () async { await _sub.initApi(); await _sub.connectNode(); }, child: Scaffold( appBar: AppBar( toolbarHeight: 60 * ratio, title: const SizedBox( height: 22, child: Text('Substrate Sandbox'), ), ), body: SafeArea( child: Consumer(builder: (context, _sub, _) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('js-api chargé ?: ${_sub.sdkReady}'), Text( 'Noeud connecté ?: ${_sub.nodeConnected} (${_sub.subNode})'), if (_sub.nodeConnected) Text('Numéro de bloc: ${_sub.blocNumber}'), ]); }), ), ), ); } } class StatefulWrapper extends StatefulWidget { final Function onInit; final Widget child; const StatefulWrapper({Key? key, required this.onInit, required this.child}) : super(key: key); @override _StatefulWrapperState createState() => _StatefulWrapperState(); } class _StatefulWrapperState extends State { @override void initState() { widget.onInit(); super.initState(); } @override Widget build(BuildContext context) { return widget.child; } }