Skip to content

Commit b1aeabd

Browse files
Merge pull request #97 from ishanvaghani/slider
feat: Added support for slider widget
2 parents 73d36db + d88d729 commit b1aeabd

File tree

13 files changed

+1022
-3
lines changed

13 files changed

+1022
-3
lines changed

examples/mirai_gallery/assets/json/home_screen.json

+34
Original file line numberDiff line numberDiff line change
@@ -1489,6 +1489,40 @@
14891489
}
14901490
}
14911491
},
1492+
{
1493+
"type": "listTile",
1494+
"leading": {
1495+
"type": "icon",
1496+
"iconType": "cupertino",
1497+
"icon": "slider_horizontal_3"
1498+
},
1499+
"title": {
1500+
"type": "text",
1501+
"data": "Mirai Slider",
1502+
"align": "center",
1503+
"style": {
1504+
"fontSize": 21
1505+
}
1506+
},
1507+
"subtitle": {
1508+
"type": "text",
1509+
"data": "A Material Design Slider widget",
1510+
"align": "center",
1511+
"style": {
1512+
"fontSize": 12
1513+
}
1514+
},
1515+
"isThreeLine": true,
1516+
"style": "list",
1517+
"onTap": {
1518+
"actionType": "navigate",
1519+
"navigationStyle": "push",
1520+
"widgetJson": {
1521+
"type": "exampleScreen",
1522+
"assetPath": "assets/json/slider_example.json"
1523+
}
1524+
}
1525+
},
14921526
{
14931527
"type": "sizedBox",
14941528
"height": 24.0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"type": "scaffold",
3+
"appBar": {
4+
"type": "appBar",
5+
"title": {
6+
"type": "text",
7+
"data": "Mirai Slider"
8+
}
9+
},
10+
"body": {
11+
"type": "form",
12+
"child": {
13+
"type": "center",
14+
"child": {
15+
"id": "example_slider",
16+
"type": "slider",
17+
"sliderType": "material",
18+
"value": 20,
19+
"max": 100,
20+
"divisions": 5
21+
}
22+
}
23+
}
24+
}

packages/mirai/lib/src/framework/mirai.dart

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ class Mirai {
8989
const MiraiHeroParser(),
9090
const MiraiRadioParser(),
9191
const MiraiRadioGroupParser(),
92+
const MiraiSliderParser(),
9293
];
9394

9495
static final _actionParsers = <MiraiActionParser>[
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:freezed_annotation/freezed_annotation.dart';
3+
import 'package:mirai/src/parsers/mirai_mouse_cursor/mirai_mouse_cursor.dart';
4+
5+
export 'package:mirai/src/parsers/mirai_slider/mirai_slider_parser.dart';
6+
7+
part 'mirai_slider.freezed.dart';
8+
part 'mirai_slider.g.dart';
9+
10+
enum MiraiSliderType { adaptive, cupertino, material }
11+
12+
@freezed
13+
class MiraiSlider with _$MiraiSlider {
14+
const factory MiraiSlider({
15+
String? id,
16+
@Default(MiraiSliderType.material) MiraiSliderType sliderType,
17+
required double value,
18+
double? secondaryTrackValue,
19+
Map<String, dynamic>? onChanged,
20+
Map<String, dynamic>? onChangeStart,
21+
Map<String, dynamic>? onChangeEnd,
22+
@Default(0.0) double min,
23+
@Default(1.0) double max,
24+
int? divisions,
25+
String? label,
26+
String? activeColor,
27+
String? inactiveColor,
28+
String? secondaryActiveColor,
29+
String? thumbColor,
30+
String? overlayColor,
31+
MiraiMouseCursor? mouseCursor,
32+
@Default(false) bool autofocus,
33+
SliderInteraction? allowedInteraction,
34+
}) = _MiraiSlider;
35+
36+
factory MiraiSlider.fromJson(Map<String, dynamic> json) =>
37+
_$MiraiSliderFromJson(json);
38+
}

0 commit comments

Comments
 (0)