import 'package:didvan/constants/app_icons.dart'; import 'package:didvan/models/news_overview.dart'; import 'package:didvan/pages/home/news/news_state.dart'; import 'package:didvan/routes/routes.dart'; import 'package:didvan/widgets/didvan/card.dart'; import 'package:didvan/widgets/didvan/divider.dart'; import 'package:didvan/widgets/didvan/icon_button.dart'; import 'package:didvan/widgets/didvan/text.dart'; import 'package:didvan/widgets/skeletun_image.dart'; import 'package:flutter/material.dart'; import 'package:persian_number_utility/persian_number_utility.dart'; import 'package:provider/provider.dart'; class NewsItem extends StatelessWidget { final NewsOverview news; const NewsItem({Key? key, required this.news}) : super(key: key); @override Widget build(BuildContext context) { final state = context.read(); return DidvanCard( onTap: () => Navigator.of(context).pushNamed( Routes.radarDetails, arguments: { 'state': state, 'id': news.id, }, ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ SkeletonImage( imageUrl: news.image, width: 64, height: 64, ), const SizedBox(width: 8), Expanded( child: SizedBox( height: 64, child: DidvanText( news.title, style: Theme.of(context).textTheme.bodyText1, ), ), ), ], ), const SizedBox(height: 8), DidvanText( news.description, maxLines: 3, ), const DidvanDivider(verticalPadding: 8), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ DidvanText( '${news.reference} | ${DateTime.parse(news.createdAt).toPersianDateStr()}', style: Theme.of(context).textTheme.overline, ), DidvanIconButton( icon: news.marked ? DidvanIcons.bookmark_solid : DidvanIcons.bookmark_regular, gestureSize: 32, onPressed: () => state.markNews(news.id), ), ], ), ], ), ); } }