Files
elcaribe/news-app/lib/ui/screens/HomePage/Widgets/CommonSectionTitle.dart

47 lines
2.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:news/data/models/FeatureSectionModel.dart';
import 'package:news/ui/widgets/customTextLabel.dart';
import 'package:news/app/routes.dart';
import 'package:news/utils/uiUtils.dart';
Widget commonSectionTitle(FeatureSectionModel model, BuildContext context) {
return ListTile(
minVerticalPadding: 5,
contentPadding: EdgeInsets.zero,
title: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Flexible(
child: CustomTextLabel(
text: model.title!,
textStyle: Theme.of(context).textTheme.titleMedium!.copyWith(color: UiUtils.getColorScheme(context).primaryContainer, fontWeight: FontWeight.bold),
softWrap: true,
maxLines: 1,
overflow: TextOverflow.ellipsis)),
GestureDetector(
onTap: () {
UiUtils.showInterstitialAds(context: context);
if ((model.newsType == 'news' || model.newsType == "user_choice") || model.videosType == 'news' && model.newsType != 'breaking_news') {
Navigator.of(context).pushNamed(Routes.sectionNews, arguments: {"sectionId": model.id!, "title": model.title!});
} else {
Navigator.of(context).pushNamed(Routes.sectionBreakNews, arguments: {"sectionId": model.id!, "title": model.title!});
}
},
child: CustomTextLabel(
text: 'viewMore',
textStyle: Theme.of(context).textTheme.titleSmall!.copyWith(decoration: TextDecoration.underline, fontWeight: FontWeight.bold, color: UiUtils.getColorScheme(context).outline)),
)
],
),
subtitle: (model.shortDescription != null)
? CustomTextLabel(
text: model.shortDescription!,
textStyle: Theme.of(context).textTheme.titleSmall!.copyWith(color: UiUtils.getColorScheme(context).primaryContainer.withOpacity(0.6)),
softWrap: true,
maxLines: 3,
overflow: TextOverflow.ellipsis)
: SizedBox.shrink(),
);
}