Settings
This commit is contained in:
parent
1994bf9d06
commit
131e29964f
|
|
@ -1,5 +1,3 @@
|
||||||
import 'dart:convert';
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/serializers.dart';
|
import 'package:invoiceninja_flutter/data/models/serializers.dart';
|
||||||
|
|
@ -16,34 +14,38 @@ class _StateInspectorState extends State<StateInspector> {
|
||||||
String _filter = '';
|
String _filter = '';
|
||||||
|
|
||||||
dynamic filterJson(dynamic data, String filter) {
|
dynamic filterJson(dynamic data, String filter) {
|
||||||
print('FILTER...');
|
|
||||||
if (filter.contains('.')) {
|
if (filter.contains('.')) {
|
||||||
filter.split('.')
|
final parts = filter.split('.')
|
||||||
..removeLast()
|
..removeLast()
|
||||||
..where((part) => part.isNotEmpty).forEach((part) {
|
..where((part) => part.isNotEmpty);
|
||||||
print('part: $part');
|
|
||||||
|
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 {
|
try {
|
||||||
index = (data as Map)
|
final dynamic index = (data as Map)
|
||||||
.keys
|
.keys
|
||||||
.firstWhere((dynamic key) => regExp.hasMatch(key));
|
.firstWhere((dynamic key) => regExp.hasMatch(key));
|
||||||
} catch (e) {
|
|
||||||
// do nothing
|
|
||||||
}
|
|
||||||
|
|
||||||
print('index: $index');
|
|
||||||
|
|
||||||
if (index != null) {
|
if (index != null) {
|
||||||
data = data[index];
|
data = data[index];
|
||||||
}
|
}
|
||||||
|
} catch (e){
|
||||||
|
// do nothing
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data.runtimeType.toString() ==
|
||||||
|
'_InternalLinkedHashMap<String, Object>') {
|
||||||
return data;
|
return data;
|
||||||
|
} else {
|
||||||
|
return <String, dynamic>{'value': data};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -60,14 +62,14 @@ class _StateInspectorState extends State<StateInspector> {
|
||||||
TextFormField(
|
TextFormField(
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
print('changed: $value');
|
|
||||||
setState(() {
|
setState(() {
|
||||||
_filter = value;
|
_filter = value;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
SizedBox(height: 20),
|
||||||
Container(
|
Container(
|
||||||
color: Colors.white,
|
//color: Colors.white,
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
child: JsonViewerWidget(filterJson(data, _filter))),
|
child: JsonViewerWidget(filterJson(data, _filter))),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue