Skip to content

Commit 481a6f4

Browse files
committed
feat(headline): replace date with actions sheet
- Remove optional trailing widget - Add more actions icon button - Implement HeadlineActionsBottomSheet on icon press - Adjust date text padding
1 parent 0dfd936 commit 481a6f4

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

lib/shared/widgets/feed_core/headline_source_row.dart

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
44
import 'package:flutter_news_app_mobile_client_full_source_code/ads/services/interstitial_ad_manager.dart';
55
import 'package:flutter_news_app_mobile_client_full_source_code/app/bloc/app_bloc.dart';
66
import 'package:flutter_news_app_mobile_client_full_source_code/router/routes.dart';
7+
import 'package:flutter_news_app_mobile_client_full_source_code/shared/widgets/headline_actions_bottom_sheet.dart';
78
import 'package:go_router/go_router.dart';
89
import 'package:timeago/timeago.dart' as timeago;
910
import 'package:ui_kit/ui_kit.dart';
@@ -13,14 +14,11 @@ import 'package:ui_kit/ui_kit.dart';
1314
/// {@endtemplate}
1415
class HeadlineSourceRow extends StatefulWidget {
1516
/// {@macro headline_source_row}
16-
const HeadlineSourceRow({required this.headline, this.trailing, super.key});
17+
const HeadlineSourceRow({required this.headline, super.key});
1718

1819
/// The headline data to display.
1920
final Headline headline;
2021

21-
/// An optional widget to display at the end of the row.
22-
final Widget? trailing;
23-
2422
Future<void> _handleEntityTap(BuildContext context) async {
2523
await context.read<InterstitialAdManager>().onPotentialAdTrigger();
2624
if (!context.mounted) return;
@@ -100,8 +98,20 @@ class _HeadlineSourceRowState extends State<HeadlineSourceRow> {
10098
mainAxisSize: MainAxisSize.min,
10199
children: [
102100
if (formattedDate.isNotEmpty)
103-
Text(formattedDate, style: dateTextStyle),
104-
if (widget.trailing != null) widget.trailing!,
101+
Padding(
102+
padding: const EdgeInsets.only(right: AppSpacing.xs),
103+
child: Text(formattedDate, style: dateTextStyle),
104+
),
105+
IconButton(
106+
padding: EdgeInsets.zero,
107+
constraints: const BoxConstraints(),
108+
icon: const Icon(Icons.more_horiz),
109+
onPressed: () => showModalBottomSheet<void>(
110+
context: context,
111+
builder: (_) =>
112+
HeadlineActionsBottomSheet(headline: widget.headline),
113+
),
114+
),
105115
],
106116
),
107117
],

0 commit comments

Comments
 (0)