💄 Optimize post actions

This commit is contained in:
2025-09-07 13:11:18 +08:00
parent afe1e12a3b
commit 2617a64acf

View File

@@ -59,12 +59,14 @@ class PostState extends StateNotifier<AsyncValue<SnPost?>> {
class PostActionButtons extends HookConsumerWidget { class PostActionButtons extends HookConsumerWidget {
final SnPost post; final SnPost post;
final EdgeInsets renderingPadding;
final VoidCallback? onRefresh; final VoidCallback? onRefresh;
final Function(SnPost)? onUpdate; final Function(SnPost)? onUpdate;
const PostActionButtons({ const PostActionButtons({
super.key, super.key,
required this.post, required this.post,
this.renderingPadding = EdgeInsets.zero,
this.onRefresh, this.onRefresh,
this.onUpdate, this.onUpdate,
}); });
@@ -151,7 +153,9 @@ class PostActionButtons extends HookConsumerWidget {
children: children:
editButtons editButtons
.map((e) => SizedBox(height: kButtonHeight, child: e)) .map((e) => SizedBox(height: kButtonHeight, child: e))
.toList(), .expand((widget) => [widget, const VerticalDivider(width: 1)])
.toList()
..removeLast(),
), ),
); );
@@ -316,7 +320,9 @@ class PostActionButtons extends HookConsumerWidget {
children: children:
shareButtons shareButtons
.map((e) => SizedBox(height: kButtonHeight, child: e)) .map((e) => SizedBox(height: kButtonHeight, child: e))
.toList(), .expand((widget) => [widget, const VerticalDivider(width: 1)])
.toList()
..removeLast(),
), ),
); );
@@ -359,7 +365,9 @@ class PostActionButtons extends HookConsumerWidget {
margin: const EdgeInsets.only(bottom: 12), margin: const EdgeInsets.only(bottom: 12),
child: ListView( child: ListView(
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
padding: const EdgeInsets.symmetric(horizontal: 8), padding: EdgeInsets.symmetric(
horizontal: renderingPadding.horizontal + 4,
),
children: children, children: children,
), ),
); );
@@ -418,6 +426,9 @@ class PostDetailScreen extends HookConsumerWidget {
constraints: BoxConstraints(maxWidth: 600), constraints: BoxConstraints(maxWidth: 600),
child: PostActionButtons( child: PostActionButtons(
post: post, post: post,
renderingPadding: const EdgeInsets.symmetric(
horizontal: 8,
),
onRefresh: () { onRefresh: () {
ref.invalidate(postProvider(id)); ref.invalidate(postProvider(id));
ref.invalidate(postRepliesNotifierProvider(id)); ref.invalidate(postRepliesNotifierProvider(id));