Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 10 additions & 11 deletions lib/src/builders/primitive_builders/list_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@ import 'package:flutter_json_view/src/utils/typer.dart';
import 'package:flutter_json_view/src/widgets/widgets.dart';

class JsonListBuilder extends StatefulWidget {
const JsonListBuilder({
Key? key,
required this.jsonObj,
required this.jsonViewTheme,
}) : super(key: key);
const JsonListBuilder({Key? key, required this.jsonObj, required this.jsonViewTheme}) : super(key: key);

final List jsonObj;
final JsonViewTheme jsonViewTheme;
Expand All @@ -18,7 +14,13 @@ class JsonListBuilder extends StatefulWidget {
}

class _JsonListBuilderState extends State<JsonListBuilder> {
bool isOpened = true;
late bool isOpened;

@override
void initState() {
isOpened = widget.jsonViewTheme.listInitialExpanded;
super.initState();
}

@override
Widget build(BuildContext context) {
Expand All @@ -28,9 +30,7 @@ class _JsonListBuilderState extends State<JsonListBuilder> {
children: [
GestureDetector(
onTap: () => setState(() => isOpened = !isOpened),
child: isOpened
? widget.jsonViewTheme.closeIcon
: widget.jsonViewTheme.openIcon,
child: isOpened ? widget.jsonViewTheme.closeIcon : widget.jsonViewTheme.openIcon,
),
_buildItem(items),
],
Expand All @@ -43,8 +43,7 @@ class _JsonListBuilderState extends State<JsonListBuilder> {
isList: true,
jsonViewTheme: widget.jsonViewTheme,
count: widget.jsonObj.length,
type: Typer.getType(
widget.jsonObj.isNotEmpty ? widget.jsonObj.first : null),
type: Typer.getType(widget.jsonObj.isNotEmpty ? widget.jsonObj.first : null),
);
}
return Column(
Expand Down
12 changes: 8 additions & 4 deletions lib/src/builders/primitive_builders/map_builder.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,13 @@ class JsonMapBuilder extends StatefulWidget {
}

class _JsonMapBuilderState extends State<JsonMapBuilder> {
bool isOpened = true;
late bool isOpened;

@override
void initState() {
isOpened = widget.jsonViewTheme.mapInitialExpanded;
super.initState();
}

@override
Widget build(BuildContext context) {
Expand All @@ -26,9 +32,7 @@ class _JsonMapBuilderState extends State<JsonMapBuilder> {
children: [
GestureDetector(
onTap: () => setState(() => isOpened = !isOpened),
child: isOpened
? widget.jsonViewTheme.closeIcon
: widget.jsonViewTheme.openIcon,
child: isOpened ? widget.jsonViewTheme.closeIcon : widget.jsonViewTheme.openIcon,
),
_buidItem(),
],
Expand Down
10 changes: 10 additions & 0 deletions lib/src/theme/json_view_theme.dart
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ class JsonViewTheme {
this.loadingWidget = const CircularProgressIndicator(),
this.viewType = JsonViewType.collapsible,
this.backgroundColor = const Color(0xFF1E1F28),
this.listInitialExpanded = true,
this.mapInitialExpanded = true,
}) : _keyStyle = keyStyle ?? const TextStyle(color: Colors.deepPurple),
_doubleStyle = doubleStyle ?? const TextStyle(color: Colors.blue),
_intStyle = intStyle ?? const TextStyle(color: Colors.blue),
Expand Down Expand Up @@ -95,4 +97,12 @@ class JsonViewTheme {
/// This style used as default for all styles
/// and for not parsed values
final TextStyle defaultTextStyle;

/// Set if the lists should show
/// collapsed or expanded on its first render.
final bool listInitialExpanded;

/// Set if the maps should show
/// collapsed or expanded on its first render.
final bool mapInitialExpanded;
}