Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-02-24 16:54:58 +08:00
parent e88cd12dfa
commit 4a3d827f7a
10 changed files with 133 additions and 102 deletions

View File

@@ -32,32 +32,38 @@ class ActionPanel extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Expanded(
child: TextButton.icon(
onPressed: () => showModalBottomSheet(
context: context,
isScrollControlled: true,
useSafeArea: true,
builder: (_) => RepostPanel(
item: item,
onSuccess: () {
int count = forward.count ?? 0;
forward.count = count + 1;
if (context.mounted) {
(context as Element?)?.markNeedsBuild();
}
},
),
),
icon: Icon(
FontAwesomeIcons.shareFromSquare,
size: 16,
color: outline,
semanticLabel: "转发",
),
style: btnStyle,
label: Text(
forward.count != null ? NumUtils.numFormat(forward.count) : '转发',
),
child: Builder(
builder: (context) {
return TextButton.icon(
onPressed: () => showModalBottomSheet(
context: context,
isScrollControlled: true,
useSafeArea: true,
builder: (_) => RepostPanel(
item: item,
onSuccess: () {
int count = forward.count ?? 0;
forward.count = count + 1;
if (context.mounted) {
(context as Element?)?.markNeedsBuild();
}
},
),
),
icon: Icon(
FontAwesomeIcons.shareFromSquare,
size: 16,
color: outline,
semanticLabel: "转发",
),
style: btnStyle,
label: Text(
forward.count != null
? NumUtils.numFormat(forward.count)
: '转发',
),
);
},
),
),
Expanded(
@@ -76,32 +82,40 @@ class ActionPanel extends StatelessWidget {
),
),
Expanded(
child: TextButton.icon(
onPressed: () => RequestUtils.onLikeDynamic(item, () {
if (context.mounted) {
(context as Element?)?.markNeedsBuild();
}
}),
icon: Icon(
like.status!
? FontAwesomeIcons.solidThumbsUp
: FontAwesomeIcons.thumbsUp,
size: 16,
color: like.status! ? primary : outline,
semanticLabel: like.status! ? "已赞" : "点赞",
),
style: btnStyle,
label: AnimatedSwitcher(
duration: const Duration(milliseconds: 400),
transitionBuilder: (Widget child, Animation<double> animation) {
return ScaleTransition(scale: animation, child: child);
},
child: Text(
like.count != null ? NumUtils.numFormat(like.count) : '点赞',
key: ValueKey<int?>(like.count),
style: TextStyle(color: like.status! ? primary : outline),
),
),
child: Builder(
builder: (context) {
final likeIcon = Icon(
like.status!
? FontAwesomeIcons.solidThumbsUp
: FontAwesomeIcons.thumbsUp,
size: 16,
color: like.status! ? primary : outline,
semanticLabel: like.status! ? "已赞" : "点赞",
);
return TextButton.icon(
onPressed: () => RequestUtils.onLikeDynamic(
item,
likeIcon.color == primary,
() {
if (context.mounted) {
(context as Element?)?.markNeedsBuild();
}
},
),
icon: likeIcon,
style: btnStyle,
label: AnimatedSwitcher(
duration: const Duration(milliseconds: 400),
transitionBuilder: (child, animation) =>
ScaleTransition(scale: animation, child: child),
child: Text(
like.count != null ? NumUtils.numFormat(like.count) : '点赞',
key: ValueKey<int?>(like.count),
style: TextStyle(color: like.status! ? primary : outline),
),
),
);
},
),
),
],