From 131e29964ffe842316cc1d05ba42786a26ff751c Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 30 Oct 2019 14:34:51 +0200 Subject: [PATCH] Settings --- lib/ui/app/debug/state_inspector.dart | 44 ++++++++++++++------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/lib/ui/app/debug/state_inspector.dart b/lib/ui/app/debug/state_inspector.dart index 435c4857e..81525b1c1 100644 --- a/lib/ui/app/debug/state_inspector.dart +++ b/lib/ui/app/debug/state_inspector.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:flutter/material.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/data/models/serializers.dart'; @@ -16,34 +14,38 @@ class _StateInspectorState extends State { String _filter = ''; dynamic filterJson(dynamic data, String filter) { - print('FILTER...'); if (filter.contains('.')) { - filter.split('.') + final parts = filter.split('.') ..removeLast() - ..where((part) => part.isNotEmpty).forEach((part) { - print('part: $part'); + ..where((part) => part.isNotEmpty); + + if (parts.isNotEmpty) { + parts.forEach((part) { + String pattern = ''; + part.split('').forEach((ch) => pattern += ch.toLowerCase() + '.*'); + final regExp = RegExp(pattern, caseSensitive: false); - String pattern = '.*'; - part.split('').forEach((ch) => pattern += ch + '.*'); - final regExp = RegExp(pattern, caseSensitive: true); - dynamic index; try { - index = (data as Map) + final dynamic index = (data as Map) .keys .firstWhere((dynamic key) => regExp.hasMatch(key)); - } catch (e) { + + if (index != null) { + data = data[index]; + } + } catch (e){ // do nothing } - - print('index: $index'); - - if (index != null) { - data = data[index]; - } }); + } } - return data; + if (data.runtimeType.toString() == + '_InternalLinkedHashMap') { + return data; + } else { + return {'value': data}; + } } @override @@ -60,14 +62,14 @@ class _StateInspectorState extends State { TextFormField( autofocus: true, onChanged: (value) { - print('changed: $value'); setState(() { _filter = value; }); }, ), + SizedBox(height: 20), Container( - color: Colors.white, + //color: Colors.white, child: SingleChildScrollView( child: JsonViewerWidget(filterJson(data, _filter))), ),