toggle_switch_widget.dart 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import 'package:flutter/material.dart';
  2. import 'package:photos/ente_theme_data.dart';
  3. typedef OnChangedCallBack = void Function(bool);
  4. class ToggleSwitchWidget extends StatefulWidget {
  5. final bool value;
  6. final OnChangedCallBack onChanged;
  7. const ToggleSwitchWidget({
  8. required this.value,
  9. required this.onChanged,
  10. Key? key,
  11. }) : super(key: key);
  12. @override
  13. State<ToggleSwitchWidget> createState() => _ToggleSwitchWidgetState();
  14. }
  15. class _ToggleSwitchWidgetState extends State<ToggleSwitchWidget> {
  16. @override
  17. Widget build(BuildContext context) {
  18. final enteColorScheme = Theme.of(context).colorScheme.enteTheme.colorScheme;
  19. return Padding(
  20. padding: const EdgeInsets.symmetric(vertical: 4),
  21. child: SizedBox(
  22. height: 30,
  23. child: FittedBox(
  24. fit: BoxFit.contain,
  25. child: Switch.adaptive(
  26. activeColor: enteColorScheme.primary400,
  27. inactiveTrackColor: enteColorScheme.fillMuted,
  28. materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
  29. value: widget.value,
  30. onChanged: widget.onChanged,
  31. ),
  32. ),
  33. ),
  34. );
  35. }
  36. }