advanced_settings.dart 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import 'package:easy_localization/easy_localization.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_hooks/flutter_hooks.dart';
  4. import 'package:hooks_riverpod/hooks_riverpod.dart';
  5. import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
  6. import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
  7. import 'package:immich_mobile/modules/settings/ui/settings_switch_list_tile.dart';
  8. class AdvancedSettings extends HookConsumerWidget {
  9. const AdvancedSettings({super.key});
  10. @override
  11. Widget build(BuildContext context, WidgetRef ref) {
  12. final appSettingService = ref.watch(appSettingsServiceProvider);
  13. final isEnabled =
  14. useState(AppSettingsEnum.advancedTroubleshooting.defaultValue);
  15. useEffect(
  16. () {
  17. isEnabled.value = appSettingService.getSetting<bool>(
  18. AppSettingsEnum.advancedTroubleshooting,
  19. );
  20. return null;
  21. },
  22. [],
  23. );
  24. return ExpansionTile(
  25. textColor: Theme.of(context).primaryColor,
  26. title: const Text(
  27. "advanced_settings_tile_title",
  28. style: TextStyle(
  29. fontWeight: FontWeight.bold,
  30. ),
  31. ).tr(),
  32. subtitle: const Text(
  33. "advanced_settings_tile_subtitle",
  34. style: TextStyle(
  35. fontSize: 13,
  36. ),
  37. ).tr(),
  38. children: [
  39. SettingsSwitchListTile(
  40. enabled: true,
  41. appSettingService: appSettingService,
  42. valueNotifier: isEnabled,
  43. settingsEnum: AppSettingsEnum.advancedTroubleshooting,
  44. title: "advanced_settings_troubleshooting_title".tr(),
  45. subtitle: "advanced_settings_troubleshooting_subtitle".tr(),
  46. ),
  47. ],
  48. );
  49. }
  50. }