mirror of
https://github.com/immich-app/immich.git
synced 2024-12-30 11:28:22 +02:00
81 lines
2.3 KiB
Dart
81 lines
2.3 KiB
Dart
|
import 'package:easy_localization/easy_localization.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||
|
import 'package:fluttertoast/fluttertoast.dart';
|
||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||
|
import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
|
||
|
import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
|
||
|
import 'package:immich_mobile/shared/ui/immich_toast.dart';
|
||
|
|
||
|
class ExperimentalSettings extends HookConsumerWidget {
|
||
|
const ExperimentalSettings({
|
||
|
Key? key,
|
||
|
}) : super(key: key);
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context, WidgetRef ref) {
|
||
|
final appSettingService = ref.watch(appSettingsServiceProvider);
|
||
|
|
||
|
final useExperimentalAssetGrid = useState(false);
|
||
|
|
||
|
useEffect(
|
||
|
() {
|
||
|
useExperimentalAssetGrid.value = appSettingService
|
||
|
.getSetting(AppSettingsEnum.useExperimentalAssetGrid);
|
||
|
return null;
|
||
|
},
|
||
|
[],
|
||
|
);
|
||
|
|
||
|
void changeUseExperimentalAssetGrid(bool status) {
|
||
|
useExperimentalAssetGrid.value = status;
|
||
|
appSettingService.setSetting(
|
||
|
AppSettingsEnum.useExperimentalAssetGrid,
|
||
|
status,
|
||
|
);
|
||
|
|
||
|
ImmichToast.show(
|
||
|
context: context,
|
||
|
msg: "settings_require_restart".tr(),
|
||
|
gravity: ToastGravity.BOTTOM,
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return ExpansionTile(
|
||
|
textColor: Theme.of(context).primaryColor,
|
||
|
title: const Text(
|
||
|
'experimental_settings_title',
|
||
|
style: TextStyle(
|
||
|
fontWeight: FontWeight.bold,
|
||
|
),
|
||
|
).tr(),
|
||
|
subtitle: const Text(
|
||
|
'experimental_settings_subtitle',
|
||
|
style: TextStyle(
|
||
|
fontSize: 13,
|
||
|
),
|
||
|
).tr(),
|
||
|
children: [
|
||
|
SwitchListTile.adaptive(
|
||
|
activeColor: Theme.of(context).primaryColor,
|
||
|
title: const Text(
|
||
|
"experimental_settings_new_asset_list_title",
|
||
|
style: TextStyle(
|
||
|
fontSize: 12,
|
||
|
fontWeight: FontWeight.bold,
|
||
|
),
|
||
|
).tr(),
|
||
|
subtitle: const Text(
|
||
|
"experimental_settings_new_asset_list_subtitle",
|
||
|
style: TextStyle(
|
||
|
fontSize: 12,
|
||
|
),
|
||
|
).tr(),
|
||
|
value: useExperimentalAssetGrid.value,
|
||
|
onChanged: changeUseExperimentalAssetGrid,
|
||
|
),
|
||
|
],
|
||
|
);
|
||
|
}
|
||
|
}
|