feat(feed): add recipes screen

This commit is contained in:
mso7nueh
2024-08-02 11:52:10 +03:00
parent c78f8dacdf
commit 904adbba2f
111 changed files with 1511 additions and 1784 deletions

View File

@@ -20,10 +20,11 @@ class _BlogPostWidgetState extends State<BlogPostWidget> {
Widget build(BuildContext context) {
return InkWell(
borderRadius: BorderRadius.circular(12),
onTap: () => GoRouter.of(context).pushNamed(
'blogPostScreen',
extra: widget.feedBlogPostModel.id.toString(),
),
onTap: () =>
GoRouter.of(context).pushNamed(
'blogPostScreen',
extra: widget.feedBlogPostModel.id.toString(),
),
child: Ink(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),

View File

@@ -4,6 +4,7 @@ import 'package:eatvio_app/core/app_export.dart';
import 'package:eatvio_app/features/chat/presentation/pages/photo_view_screen.dart';
import 'package:eatvio_app/features/feed/models/recipes_model.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
class RecipesWidget extends StatefulWidget {
final Recipes recipes;
@@ -19,7 +20,7 @@ class _RecipesWidgetState extends State<RecipesWidget> {
Widget build(BuildContext context) {
return InkWell(
borderRadius: BorderRadius.circular(12),
onTap: () {},
onTap: () => GoRouter.of(context).pushNamed('aboutRecipesScreen', extra: widget.recipes),
child: Ink(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
@@ -30,7 +31,6 @@ class _RecipesWidgetState extends State<RecipesWidget> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Stack(
alignment: Alignment.bottomLeft,
children: [
ClipRRect(
borderRadius: BorderRadius.vertical(top: Radius.circular(12)),
@@ -52,64 +52,78 @@ class _RecipesWidgetState extends State<RecipesWidget> {
),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
Positioned(
left: 8,
bottom: 8,
child: Wrap(
runSpacing: 8,
children: [
Container(
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: Colors.white54,
borderRadius: BorderRadius.circular(16),
),
child: Row(
children: [
Icon(
Icons.visibility_rounded,
size: 20,
color: Colors.black,
),
SizedBox(width: 4),
Text(
'0',
style: TextStyle(
fontSize: 14,
color: Colors.black,
fontWeight: FontWeight.w400,
),
),
],
),
),
_iconButton(Icons.fastfood, '139.9 ккал'),
SizedBox(width: 8),
Container(
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: Colors.white54,
borderRadius: BorderRadius.circular(16),
),
child: Row(
children: [
Icon(
Icons.favorite_border_rounded,
size: 20,
color: Colors.black,
),
SizedBox(width: 4),
Text(
'0',
style: TextStyle(
fontSize: 14,
color: Colors.black,
fontWeight: FontWeight.w400,
),
),
],
),
),
_iconButton(Icons.timer_rounded, widget.recipes.cookingTime.toString() + ' минут'),
SizedBox(width: 8),
_iconButton(Icons.fast_forward_rounded, widget.recipes.steps.length.toString() + ' этапов'),
],
),
),
Positioned(
left: 8,
top: 8,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.8),
borderRadius: BorderRadius.circular(16),
),
child: Row(
children: [
Icon(
Icons.favorite_rounded,
size: 16,
color: Colors.black,
),
SizedBox(width: 4),
Text(
'0',
style: TextStyle(
fontSize: 12,
color: Colors.black,
fontWeight: FontWeight.w400,
),
),
],
),
),
),
Positioned(
right: 8,
top: 8,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.8),
borderRadius: BorderRadius.circular(16),
),
child: Row(
children: [
Icon(
Icons.visibility_rounded,
size: 16,
color: Colors.black,
),
SizedBox(width: 4),
Text(
'0',
style: TextStyle(
fontSize: 12,
color: Colors.black,
fontWeight: FontWeight.w400,
),
),
],
),
),
),
],
),
SizedBox(height: 12),
@@ -134,20 +148,6 @@ class _RecipesWidgetState extends State<RecipesWidget> {
),
),
SizedBox(height: 12),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 12),
child: Wrap(
runSpacing: 8,
children: [
_iconButton(Icons.fastfood, '139.9 ккал'),
SizedBox(width: 8),
_iconButton(Icons.timer_rounded, widget.recipes.cookingTime.toString() + ' минут'),
SizedBox(width: 8),
_iconButton(Icons.fast_forward_rounded, widget.recipes.steps.length.toString() + ' этапов'),
],
),
),
SizedBox(height: 8),
],
),
),
@@ -155,10 +155,10 @@ class _RecipesWidgetState extends State<RecipesWidget> {
}
_iconButton(IconData icon, [String? text]) {
return Ink(
return Container(
padding: EdgeInsets.symmetric(horizontal: 12, vertical: 4),
decoration: BoxDecoration(
color: appTheme.gray100,
color: Colors.white.withOpacity(0.8),
borderRadius: BorderRadius.circular(16),
),
height: 32,
@@ -167,16 +167,16 @@ class _RecipesWidgetState extends State<RecipesWidget> {
children: [
Icon(
icon,
size: 20,
color: appTheme.gray600,
size: 16,
color: Colors.black,
),
if (text != null) SizedBox(width: 8),
if (text != null)
Text(
text,
style: TextStyle(
fontSize: 14,
color: appTheme.gray600,
fontSize: 12,
color: Colors.black,
fontWeight: FontWeight.w500,
),
),