From 2ecf10eb03a23db43d211ea9eab5603cfef5eee2 Mon Sep 17 00:00:00 2001 From: poka Date: Tue, 23 Nov 2021 04:11:45 +0100 Subject: [PATCH] Implement search view --- assets/loupe-noire.png | Bin 0 -> 27270 bytes lib/main.dart | 2 + lib/models/history.dart | 5 - lib/models/my_wallets.dart | 1 - lib/models/queries.dart | 24 ++++ lib/models/search.dart | 12 ++ lib/screens/home.dart | 23 ++-- .../myWallets/confirm_wallet_storage.dart | 3 - lib/screens/search.dart | 109 ++++++++++++++++++ lib/screens/search_result.dart | 45 ++++++++ lib/screens/settings.dart | 3 - 11 files changed, 204 insertions(+), 23 deletions(-) create mode 100644 assets/loupe-noire.png create mode 100644 lib/models/search.dart create mode 100644 lib/screens/search.dart create mode 100644 lib/screens/search_result.dart diff --git a/assets/loupe-noire.png b/assets/loupe-noire.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8773daed29701653cfd986c341ee483c24953e GIT binary patch literal 27270 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 GenerateWalletsProvider()), ChangeNotifierProvider(create: (_) => WalletOptionsProvider()), ChangeNotifierProvider(create: (_) => ChangePinProvider()), + ChangeNotifierProvider(create: (_) => SearchProvider()), ChangeNotifierProvider(create: (_) => CesiumPlusProvider()) ], child: GraphQLProvider( diff --git a/lib/models/history.dart b/lib/models/history.dart index 9639cb4..0d6294d 100644 --- a/lib/models/history.dart +++ b/lib/models/history.dart @@ -2,14 +2,12 @@ import 'package:dubp/dubp.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; -import 'package:gecko/models/home.dart'; import 'package:gecko/models/my_wallets.dart'; import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/screens/history.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:jdenticon_dart/jdenticon_dart.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:provider/provider.dart'; import 'package:qrscan/qrscan.dart' as scanner; import 'dart:math'; import 'package:intl/intl.dart'; @@ -74,8 +72,6 @@ class HistoryProvider with ChangeNotifier { } String isPubkey(context, pubkey, {bool goHistory}) { - HomeProvider _homeProvider = - Provider.of(context, listen: false); final RegExp regExp = RegExp( r'^[a-zA-Z0-9]+$', caseSensitive: false, @@ -102,7 +98,6 @@ class HistoryProvider with ChangeNotifier { historySwitchButtun = "Voir l'historique"; } - _homeProvider.handleSearchEnd(); Navigator.push( context, MaterialPageRoute(builder: (context) { diff --git a/lib/models/my_wallets.dart b/lib/models/my_wallets.dart index cf95349..e8a6305 100644 --- a/lib/models/my_wallets.dart +++ b/lib/models/my_wallets.dart @@ -3,7 +3,6 @@ import 'package:flutter/material.dart'; import 'dart:async'; import 'package:gecko/globals.dart'; import 'package:gecko/models/wallet_data.dart'; -import 'package:gecko/screens/home.dart'; class MyWalletsProvider with ChangeNotifier { List listWallets = []; diff --git a/lib/models/queries.dart b/lib/models/queries.dart index 72ba0e9..4644a77 100644 --- a/lib/models/queries.dart +++ b/lib/models/queries.dart @@ -62,3 +62,27 @@ const String getBalance = r''' } } '''; + +const String getWallets = r''' +query ($number: Int!, $cursor: String) { + wallets(pagination: {ord: ASC, pageSize: $number, cursor: $cursor}) { + pageInfo { + hasNextPage + endCursor + } + edges { + node { + script + balance { + amount + base + } + idty { + isMember + username + } + } + } + } +} +'''; diff --git a/lib/models/search.dart b/lib/models/search.dart new file mode 100644 index 0000000..eaa1beb --- /dev/null +++ b/lib/models/search.dart @@ -0,0 +1,12 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +class SearchProvider with ChangeNotifier { + TextEditingController searchController = TextEditingController(); + + void rebuildWidget() { + notifyListeners(); + } + + void searchPubkey() {} +} diff --git a/lib/screens/home.dart b/lib/screens/home.dart index f505035..eff093f 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -10,6 +10,7 @@ import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/screens/myWallets/restore_chest.dart'; import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:gecko/screens/onBoarding/1.dart'; +import 'package:gecko/screens/search.dart'; import 'dart:ui'; import 'package:gecko/screens/settings.dart'; import 'package:flutter/services.dart'; @@ -205,18 +206,18 @@ Widget geckHome(context) { color: orangeC, // button color child: InkWell( child: const Padding( - padding: EdgeInsets.all(18), - child: Image( - image: AssetImage('assets/home/loupe.png'), - height: 70)), + padding: EdgeInsets.all(18), + child: Image( + image: AssetImage('assets/home/loupe.png'), + height: 70), + ), onTap: () { - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (context) { - // return TemplateScreen(); - // }), - // ); + Navigator.push( + context, + MaterialPageRoute(builder: (context) { + return const SearchScreen(); + }), + ); }), ), ), diff --git a/lib/screens/myWallets/confirm_wallet_storage.dart b/lib/screens/myWallets/confirm_wallet_storage.dart index ef74324..fe7dc15 100644 --- a/lib/screens/myWallets/confirm_wallet_storage.dart +++ b/lib/screens/myWallets/confirm_wallet_storage.dart @@ -6,7 +6,6 @@ import 'package:flutter/services.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/generate_wallets.dart'; import 'package:gecko/models/my_wallets.dart'; -import 'package:gecko/models/wallet_options.dart'; import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:provider/provider.dart'; @@ -33,8 +32,6 @@ class ConfirmStoreWallet extends StatelessWidget with ChangeNotifier { Provider.of(context); MyWalletsProvider _myWalletProvider = Provider.of(context); - WalletOptionsProvider _walletOptions = - Provider.of(context); final int _currentChest = _myWalletProvider.getCurrentChest(); _mnemonicController.text = generatedMnemonic; diff --git a/lib/screens/search.dart b/lib/screens/search.dart new file mode 100644 index 0000000..39e4337 --- /dev/null +++ b/lib/screens/search.dart @@ -0,0 +1,109 @@ +import 'package:flutter/services.dart'; +import 'package:gecko/globals.dart'; +import 'package:flutter/material.dart'; +import 'package:gecko/models/search.dart'; +import 'package:gecko/screens/search_result.dart'; +import 'package:provider/provider.dart'; +// import 'package:gecko/models/home.dart'; +// import 'package:provider/provider.dart'; + +class SearchScreen extends StatelessWidget { + const SearchScreen({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); + SearchProvider _searchProvider = Provider.of(context); + + return WillPopScope( + onWillPop: () { + _searchProvider.searchController.text = ''; + return Future.value(true); + }, + child: Scaffold( + appBar: AppBar( + toolbarHeight: 60 * ratio, + title: const SizedBox( + height: 22, + child: Text('Rechercher'), + ), + leading: IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.black), + onPressed: () { + _searchProvider.searchController.text = ''; + Navigator.of(context).pop(); + }), + ), + body: SafeArea( + child: Column(children: [ + SizedBox(height: isTall ? 200 : 100), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 17), + child: TextField( + controller: _searchProvider.searchController, + autofocus: true, + maxLines: 1, + textAlign: TextAlign.left, + onChanged: (v) => _searchProvider.rebuildWidget(), + decoration: InputDecoration( + filled: true, + fillColor: Colors.white, + prefixIconConstraints: const BoxConstraints( + minHeight: 32, + ), + prefixIcon: const Padding( + padding: EdgeInsets.symmetric(horizontal: 17), + child: Image( + image: AssetImage('assets/loupe-noire.png'), + height: 35), + ), + border: OutlineInputBorder( + borderSide: + BorderSide(color: Colors.grey[500], width: 2), + borderRadius: BorderRadius.circular(8)), + focusedBorder: OutlineInputBorder( + borderSide: + BorderSide(color: Colors.grey[500], width: 2.5), + borderRadius: BorderRadius.circular(8), + ), + contentPadding: const EdgeInsets.all(20), + ), + style: const TextStyle( + fontSize: 20, + color: Colors.black, + fontWeight: FontWeight.w400, + ), + ), + ), + const Spacer(flex: 1), + SizedBox( + width: 410, + height: 70, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + elevation: 4, + primary: orangeC, // background + onPrimary: Colors.white, // foreground + ), + onPressed: _searchProvider.searchController.text.length >= 2 + ? () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) { + return const SearchResultScreen(); + }), + ); + } + : null, + child: const Text( + 'Rechercher', + style: TextStyle(fontSize: 24, fontWeight: FontWeight.w600), + ), + ), + ), + const Spacer(flex: 1), + ]), + ), + )); + } +} diff --git a/lib/screens/search_result.dart b/lib/screens/search_result.dart new file mode 100644 index 0000000..5c39998 --- /dev/null +++ b/lib/screens/search_result.dart @@ -0,0 +1,45 @@ +import 'package:flutter/services.dart'; +import 'package:gecko/globals.dart'; +import 'package:flutter/material.dart'; +import 'package:gecko/models/search.dart'; +import 'package:provider/provider.dart'; + +class SearchResultScreen extends StatelessWidget { + const SearchResultScreen({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); + SearchProvider _searchProvider = Provider.of(context); + int nbrResult = 0; + + return Scaffold( + appBar: AppBar( + toolbarHeight: 60 * ratio, + title: const SizedBox( + height: 22, + child: Text('Résultats de votre recherche'), + ), + ), + body: SafeArea( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 30), + Text( + '$nbrResult résultats pour "${_searchProvider.searchController.text}"', + style: TextStyle(fontSize: 18, color: Colors.grey[700]), + ), + const SizedBox(height: 40), + const Text( + 'Dans la blockchain Ğ1', + style: TextStyle(fontSize: 20), + ) + ]), + ), + ), + ); + } +} diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index 4934d67..8211062 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -1,13 +1,11 @@ import 'package:flutter/material.dart'; import 'package:dubp/dubp.dart'; import 'package:flutter/services.dart'; -import 'package:gecko/models/home.dart'; import 'package:gecko/models/my_wallets.dart'; import 'package:gecko/screens/myWallets/generate_wallets.dart'; import 'dart:io'; import 'package:gecko/screens/myWallets/import_cesium_wallet.dart'; import 'package:gecko/globals.dart'; -import 'package:provider/provider.dart'; // ignore: must_be_immutable class SettingsScreen extends StatelessWidget { @@ -29,7 +27,6 @@ class SettingsScreen extends StatelessWidget { @override Widget build(BuildContext context) { SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); - HomeProvider _homeProvider = Provider.of(context); // getAppDirectory(); return Scaffold(