38 lines
1.4 KiB
Dart
38 lines
1.4 KiB
Dart
import 'package:wonders/common_libs.dart';
|
|
import 'package:wonders/ui/common/utils/app_haptics.dart';
|
|
|
|
class SimpleCheckbox extends StatelessWidget {
|
|
const SimpleCheckbox({super.key, required this.active, required this.onToggled, required this.label});
|
|
final bool active;
|
|
final String label;
|
|
final Function(bool? onToggle) onToggled;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Row(
|
|
mainAxisSize: MainAxisSize.max,
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: [
|
|
Container(
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.all(Radius.circular($styles.corners.sm)),
|
|
),
|
|
child: Checkbox(
|
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular($styles.corners.sm))),
|
|
value: active,
|
|
visualDensity: VisualDensity(horizontal: 0.5, vertical: 0.5),
|
|
checkColor: $styles.colors.black.withOpacity(0.75),
|
|
activeColor: $styles.colors.white.withOpacity(0.75),
|
|
onChanged: (bool? active) {
|
|
AppHaptics.mediumImpact();
|
|
onToggled.call(active);
|
|
}),
|
|
),
|
|
Gap($styles.insets.xs),
|
|
Text(label, style: $styles.text.body.copyWith(color: $styles.colors.offWhite)),
|
|
],
|
|
);
|
|
}
|
|
}
|