Add haptic feedback on post reaction

This commit is contained in:
LittleSheep 2025-01-21 15:07:44 +08:00
parent 38201b547a
commit 36bcff7a7c

View File

@ -1,5 +1,6 @@
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:gap/gap.dart'; import 'package:gap/gap.dart';
import 'package:material_symbols_icons/symbols.dart'; import 'package:material_symbols_icons/symbols.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -12,6 +13,7 @@ import 'package:surface/widgets/dialog.dart';
class PostReactionPopup extends StatefulWidget { class PostReactionPopup extends StatefulWidget {
final SnPost data; final SnPost data;
final Function(Map<String, int> value, int attr, int delta)? onChanged; final Function(Map<String, int> value, int attr, int delta)? onChanged;
const PostReactionPopup({super.key, required this.data, this.onChanged}); const PostReactionPopup({super.key, required this.data, this.onChanged});
@override @override
@ -59,6 +61,7 @@ class _PostReactionPopupState extends State<PostReactionPopup> {
); );
} }
} }
HapticFeedback.mediumImpact();
} catch (err) { } catch (err) {
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously
if (context.mounted) context.showErrorDialog(err); if (context.mounted) context.showErrorDialog(err);
@ -84,9 +87,7 @@ class _PostReactionPopupState extends State<PostReactionPopup> {
children: [ children: [
const Icon(Symbols.mood, size: 24), const Icon(Symbols.mood, size: 24),
const Gap(16), const Gap(16),
Text('postReactions') Text('postReactions').tr().textStyle(Theme.of(context).textTheme.titleLarge!),
.tr()
.textStyle(Theme.of(context).textTheme.titleLarge!),
], ],
).padding(horizontal: 20, top: 16, bottom: 12), ).padding(horizontal: 20, top: 16, bottom: 12),
Container( Container(
@ -102,9 +103,7 @@ class _PostReactionPopupState extends State<PostReactionPopup> {
Text('postReactionDownvote').plural(widget.data.totalDownvote), Text('postReactionDownvote').plural(widget.data.totalDownvote),
const Gap(24), const Gap(24),
Icon( Icon(
widget.data.totalUpvote >= widget.data.totalDownvote widget.data.totalUpvote >= widget.data.totalDownvote ? Symbols.trending_up : Symbols.trending_down,
? Symbols.trending_up
: Symbols.trending_down,
size: 16, size: 16,
), ),
const Gap(8), const Gap(8),