added TenderDetailCard to design

This commit is contained in:
llsajjad
2025-08-10 15:17:43 +03:30
parent 4d4fbd2da1
commit 31768fe71d
5 changed files with 22 additions and 11 deletions
@@ -1,7 +1,7 @@
const String homeMockData = ''' const String homeMockData = '''
{ {
"data": { "data": {
"partnership": "75", "partnership": "0.75",
"self_apply": "12", "self_apply": "12",
"contracting": "36", "contracting": "36",
"tender_submitted": "12", "tender_submitted": "12",
@@ -7,6 +7,7 @@ import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/view_models/tender_detail_view_model.dart'; import 'package:tm_app/view_models/tender_detail_view_model.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_action.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_action.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
class TenderDetailDesktopPage extends StatefulWidget { class TenderDetailDesktopPage extends StatefulWidget {
@@ -62,6 +63,8 @@ class _TenderDetailDesktopPageState extends State<TenderDetailDesktopPage> {
children: [ children: [
TenderDetailHeader(isScreenBig: true, detail: detail), TenderDetailHeader(isScreenBig: true, detail: detail),
SizedBox(height: 32.0.h()), SizedBox(height: 32.0.h()),
TenderDetailCard(detail: detail),
SizedBox(height: 24.0.h()),
TenderDetailActions(isScreenBig: true), TenderDetailActions(isScreenBig: true),
], ],
), ),
+11 -9
View File
@@ -7,6 +7,7 @@ import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/view_models/tender_detail_view_model.dart'; import 'package:tm_app/view_models/tender_detail_view_model.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_action.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_action.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
class TenderDetailMobilePage extends StatefulWidget { class TenderDetailMobilePage extends StatefulWidget {
@@ -15,19 +16,18 @@ class TenderDetailMobilePage extends StatefulWidget {
@override @override
State<TenderDetailMobilePage> createState() => _TenderDetailMobilePageState(); State<TenderDetailMobilePage> createState() => _TenderDetailMobilePageState();
} }
class _TenderDetailMobilePageState extends State<TenderDetailMobilePage> { class _TenderDetailMobilePageState extends State<TenderDetailMobilePage> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
Future.microtask(() { Future.microtask(() {
context.read<TenderDetailViewModel>().getTenderDetail(id: widget.tenderId); context.read<TenderDetailViewModel>().getTenderDetail(
}); id: widget.tenderId,
} );
});
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@@ -59,6 +59,8 @@ void initState() {
children: [ children: [
TenderDetailHeader(isScreenBig: false, detail: detail), TenderDetailHeader(isScreenBig: false, detail: detail),
SizedBox(height: 24.0.h()), SizedBox(height: 24.0.h()),
TenderDetailCard(detail: detail),
SizedBox(height: 24.0.h()),
TenderDetailActions(isScreenBig: false), TenderDetailActions(isScreenBig: false),
], ],
), ),
@@ -7,6 +7,7 @@ import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/view_models/tender_detail_view_model.dart'; import 'package:tm_app/view_models/tender_detail_view_model.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_action.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_action.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_card.dart';
import 'package:tm_app/views/detail/widgets/tender_detail_header.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_header.dart';
class TenderDetailTabletPage extends StatefulWidget { class TenderDetailTabletPage extends StatefulWidget {
@@ -61,6 +62,8 @@ class _TenderDetailTabletPageState extends State<TenderDetailTabletPage> {
children: [ children: [
TenderDetailHeader(isScreenBig: true, detail: detail), TenderDetailHeader(isScreenBig: true, detail: detail),
SizedBox(height: 28.0.h()), SizedBox(height: 28.0.h()),
TenderDetailCard(detail: detail),
SizedBox(height: 24.0.h()),
TenderDetailActions(isScreenBig: true), TenderDetailActions(isScreenBig: true),
], ],
), ),
@@ -2,9 +2,12 @@ import 'package:flutter/material.dart';
import 'package:tm_app/core/constants/strings.dart'; import 'package:tm_app/core/constants/strings.dart';
import 'package:tm_app/core/theme/colors.dart'; import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/data/services/model/tender_detail_response/tender_detail_response_model.dart';
class TenderDetailCard extends StatelessWidget { class TenderDetailCard extends StatelessWidget {
const TenderDetailCard({super.key}); final TenderDetailResponseModel detail;
const TenderDetailCard({required this.detail, super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {