added 'label' and 'message' to toggle switch

This commit is contained in:
ashilkn 2022-10-03 16:21:23 +05:30
parent 417b29c721
commit 386ad8d601

View file

@ -4,7 +4,14 @@ import 'package:photos/ente_theme_data.dart';
class ToggleSwitch extends StatefulWidget {
final bool value;
final Function onChanged;
const ToggleSwitch({required this.value, required this.onChanged, Key? key})
final String? label;
final String? message;
const ToggleSwitch(
{required this.value,
required this.onChanged,
this.label,
this.message,
Key? key})
: super(key: key);
@override
@ -14,13 +21,22 @@ class ToggleSwitch extends StatefulWidget {
class _ToggleSwitchState extends State<ToggleSwitch> {
@override
Widget build(BuildContext context) {
return SizedBox(
final enteTheme = Theme.of(context).colorScheme.enteTheme;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
widget.label == null
? const SizedBox.shrink()
: Text(widget.label!, style: enteTheme.textTheme.body),
Padding(
padding: const EdgeInsets.symmetric(vertical: 4),
child: SizedBox(
height: 30,
child: FittedBox(
fit: BoxFit.contain,
child: Switch.adaptive(
activeColor:
Theme.of(context).colorScheme.enteTheme.colorScheme.primary400,
activeColor: enteTheme.colorScheme.primary400,
inactiveTrackColor: enteTheme.colorScheme.fillMuted,
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
value: widget.value,
onChanged: (value) async {
@ -29,6 +45,16 @@ class _ToggleSwitchState extends State<ToggleSwitch> {
},
),
),
),
),
widget.message == null
? const SizedBox.shrink()
: Text(
widget.message!,
style: enteTheme.textTheme.small
.copyWith(color: enteTheme.colorScheme.textMuted),
),
],
);
}
}