mixin_builder.dart
1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import 'package:flutter/material.dart';
import '../rx_flutter/rx_obx_widget.dart';
import 'get_controllers.dart';
import 'get_state.dart';
class MixinBuilder<T extends GetxController> extends StatelessWidget {
@required
final Widget Function(T) builder;
final bool global;
final String? id;
final bool autoRemove;
final void Function(BindElement<T> state)? initState,
dispose,
didChangeDependencies;
final void Function(Binder<T> oldWidget, BindElement<T> state)?
didUpdateWidget;
final T? init;
const MixinBuilder({
super.key,
this.init,
this.global = true,
required this.builder,
this.autoRemove = true,
this.initState,
this.dispose,
this.id,
this.didChangeDependencies,
this.didUpdateWidget,
});
@override
Widget build(BuildContext context) {
return GetBuilder<T>(
init: init,
global: global,
autoRemove: autoRemove,
initState: initState,
dispose: dispose,
id: id,
didChangeDependencies: didChangeDependencies,
didUpdateWidget: didUpdateWidget,
builder: (controller) => Obx(() => builder.call(controller)));
}
}