mirror of
https://github.com/immich-app/immich.git
synced 2026-07-02 19:10:19 -07:00
8132e8a38c
* feat: share with quality options * merge main * clean up * refactor * translation * translation * add settings and default behavior * fix: lint * cleanup * merge main --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
49 lines
1.9 KiB
Dart
49 lines
1.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/constants/enums.dart';
|
|
import 'package:immich_mobile/domain/models/settings_key.dart';
|
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
|
import 'package:immich_mobile/generated/translations.g.dart';
|
|
import 'package:immich_mobile/providers/infrastructure/settings.provider.dart';
|
|
import 'package:immich_mobile/widgets/settings/setting_group_title.dart';
|
|
import 'package:immich_mobile/widgets/settings/settings_radio_list_tile.dart';
|
|
|
|
class ShareSetting extends HookConsumerWidget {
|
|
const ShareSetting({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
|
final fileType = useValueNotifier(ref.watch(appConfigProvider.select((s) => s.share.fileType)));
|
|
|
|
void onChanged(ShareAssetType? value) {
|
|
if (value != null) {
|
|
fileType.value = value;
|
|
ref.read(settingsProvider).write(SettingsKey.shareFileType, value);
|
|
}
|
|
}
|
|
|
|
return Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
SettingGroupTitle(title: context.t.default_share_quality, icon: Icons.ios_share_outlined),
|
|
Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 20),
|
|
child: Text(
|
|
context.t.default_quality_subtitle,
|
|
style: context.textTheme.bodyMedium!.copyWith(color: context.textTheme.bodyMedium!.color!.withAlpha(215)),
|
|
),
|
|
),
|
|
SettingsRadioListTile(
|
|
groups: [
|
|
SettingsRadioGroup(title: context.t.share_original, value: ShareAssetType.original),
|
|
SettingsRadioGroup(title: context.t.share_preview, value: ShareAssetType.preview),
|
|
],
|
|
groupBy: fileType.value,
|
|
onRadioChanged: onChanged,
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|