Skip to content

Commit af8c64e

Browse files
authored
feat: Add support for the VerticalDivider (#306)
* feat: Add support for the VerticalDivider * added example in gallery and removed height from vertical divider parameter * removed unwanted changes
1 parent ef44ce4 commit af8c64e

File tree

9 files changed

+373
-7
lines changed

9 files changed

+373
-7
lines changed

examples/stac_gallery/assets/json/divider_example.json

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@
99
},
1010
"body": {
1111
"type": "listView",
12-
"children": [{
13-
"type": "divider",
14-
"thickness": 5,
15-
"height": 5,
16-
"color": "#672BFF"
17-
},
12+
"children": [
13+
{
14+
"type": "divider",
15+
"thickness": 5,
16+
"height": 5,
17+
"color": "#672BFF"
18+
},
1819
{
1920
"type": "sizedBox",
2021
"height": 20
@@ -34,6 +35,23 @@
3435
"thickness": 2,
3536
"height": 2,
3637
"color": "#32FC88"
37-
}]
38+
},
39+
{
40+
"type": "sizedBox",
41+
"height": 20
42+
},
43+
{
44+
"type": "sizedBox",
45+
"height": 200,
46+
"child": {
47+
"type": "verticalDivider",
48+
"width": 20,
49+
"thickness": 4,
50+
"indent": 10,
51+
"endIndent": 10,
52+
"color": "#21814C"
53+
}
54+
}
55+
]
3856
}
3957
}

packages/stac/lib/src/framework/stac.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ class Stac {
109109
const StacConditionalParser(),
110110
const StacVisibilityParser(),
111111
const StacBackdropFilterParser(),
112+
const StacVerticalDividerParser(),
112113
];
113114

114115
static final _actionParsers = <StacActionParser>[
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import 'package:freezed_annotation/freezed_annotation.dart';
2+
import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart';
3+
4+
export 'stac_vertical_divider_parser.dart';
5+
6+
part 'stac_vertical_divider.freezed.dart';
7+
part 'stac_vertical_divider.g.dart';
8+
9+
@freezed
10+
abstract class StacVerticalDivider with _$StacVerticalDivider {
11+
const factory StacVerticalDivider({
12+
StacDouble? width,
13+
StacDouble? thickness,
14+
StacDouble? indent,
15+
StacDouble? endIndent,
16+
String? color,
17+
}) = _StacVerticalDivider;
18+
19+
factory StacVerticalDivider.fromJson(Map<String, dynamic> json) =>
20+
_$StacVerticalDividerFromJson(json);
21+
}

packages/stac/lib/src/parsers/widgets/stac_vertical_divider/stac_vertical_divider.freezed.dart

Lines changed: 238 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/stac/lib/src/parsers/widgets/stac_vertical_divider/stac_vertical_divider.g.dart

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:stac/src/parsers/widgets/stac_double/stac_double.dart';
3+
import 'package:stac/src/parsers/widgets/stac_vertical_divider/stac_vertical_divider.dart';
4+
import 'package:stac/src/utils/color_utils.dart';
5+
import 'package:stac/src/utils/widget_type.dart';
6+
import 'package:stac_framework/stac_framework.dart';
7+
8+
class StacVerticalDividerParser extends StacParser<StacVerticalDivider> {
9+
const StacVerticalDividerParser();
10+
11+
@override
12+
StacVerticalDivider getModel(Map<String, dynamic> json) =>
13+
StacVerticalDivider.fromJson(json);
14+
15+
@override
16+
String get type => WidgetType.verticalDivider.name;
17+
18+
@override
19+
Widget parse(BuildContext context, StacVerticalDivider model) {
20+
return VerticalDivider(
21+
width: model.width?.parse,
22+
thickness: model.thickness?.parse,
23+
indent: model.indent?.parse,
24+
endIndent: model.endIndent?.parse,
25+
color: model.color?.toColor(context),
26+
);
27+
}
28+
}

packages/stac/lib/src/parsers/widgets/widgets.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ export 'package:stac/src/parsers/widgets/stac_text_button/stac_text_button.dart'
9595
export 'package:stac/src/parsers/widgets/stac_text_field/stac_text_field.dart';
9696
export 'package:stac/src/parsers/widgets/stac_text_form_field/stac_text_form_field.dart';
9797
export 'package:stac/src/parsers/widgets/stac_text_style/stac_text_style.dart';
98+
export 'package:stac/src/parsers/widgets/stac_vertical_divider/stac_vertical_divider.dart';
9899
export 'package:stac/src/parsers/widgets/stac_wrap/stac_wrap.dart';
99100
export 'package:stac/src/parsers/widgets/stac_visibility/stac_visibility.dart';
100101
export 'package:stac/src/parsers/widgets/stac_backdrop_filter/stac_backdrop_filter.dart';

packages/stac/lib/src/utils/widget_type.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,5 @@ enum WidgetType {
7777
textFormField,
7878
wrap,
7979
visibility,
80+
verticalDivider,
8081
}

0 commit comments

Comments
 (0)