some fixes
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
<svg width="7" height="12" viewBox="0 0 7 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.68161 10.7102L0.988281 6.00354L5.68161 1.29688" stroke="#888888" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 246 B |
@@ -0,0 +1,3 @@
|
||||
<svg width="7" height="12" viewBox="0 0 7 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.32031 10.7102L6.01365 6.00354L1.32031 1.29688" stroke="#888888" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 245 B |
@@ -20,6 +20,15 @@ class AssetsManager {
|
||||
static const location = 'assets/icons/location.svg';
|
||||
static const arrowCircleLeft = 'assets/icons/arrow-circle-left.svg';
|
||||
static const arrowCircleRight = 'assets/icons/arrow-circle-right.svg';
|
||||
static const arrowLeftSmall = 'assets/icons/arrow-left-small.svg';
|
||||
static const arrowRightSmall = 'assets/icons/arrow-right-small.svg';
|
||||
|
||||
//home page
|
||||
static const arrows = 'assets/icons/arrows.svg';
|
||||
static const thumb = 'assets/icons/thumb.svg';
|
||||
static const shield = 'assets/icons/shield.svg';
|
||||
static const edit = 'assets/icons/edit.svg';
|
||||
static const arrowRight = 'assets/icons/arrow-right.svg';
|
||||
|
||||
//your tenders page
|
||||
static const tickCircle = 'assets/icons/tick-circle.svg';
|
||||
|
||||
@@ -27,7 +27,7 @@ class AppStrings {
|
||||
static const String partnership = 'Partnership';
|
||||
static const String selfApply = 'Self-apply';
|
||||
static const String contracting = 'Contracting';
|
||||
static const String tenderSubmitting = 'Tender submitting';
|
||||
static const String tenderSubmitted = 'Tenders submitted';
|
||||
static const String approvedTenders = 'Approved tenders';
|
||||
static const String tenderValue = 'Tender Value';
|
||||
static const String thunderStatus = 'Thunder status';
|
||||
@@ -35,6 +35,7 @@ class AppStrings {
|
||||
|
||||
//Tenders
|
||||
static const String tendersTitle = 'Tenders';
|
||||
static const String tenderSeeMore = 'See More';
|
||||
|
||||
//profile
|
||||
static const String profile = 'Profile';
|
||||
@@ -62,17 +63,18 @@ class AppStrings {
|
||||
static const String tenderSubmitButton = 'Submit';
|
||||
static const String tenderRejectButton = 'Reject';
|
||||
static const String tenderDateExample = '2025-05-21';
|
||||
static const String tenderTitleExample =
|
||||
static const String tenderTitleExample =
|
||||
'Operation, support and further development of open e-platform Operation, support and further development of open e-platform';
|
||||
static const String tenderIdExample = 'JNDFKMDV-100-JF';
|
||||
static const String tenderApprovalDateExample = '2025-05-21';
|
||||
static const String tenderSubmissionDateExample = '2025-05-21';
|
||||
static const String tenderClientExample =
|
||||
static const String tenderIdExample = 'JNDFKMDV-100-JF';
|
||||
static const String tenderApprovalDateExample = '2025-05-21';
|
||||
static const String tenderSubmissionDateExample = '2025-05-21';
|
||||
static const String tenderClientExample =
|
||||
'Procurement Notice Procurement Notice';
|
||||
static const String tenderDeliveryLocationExample = 'Norrbotten County';
|
||||
static const String tenderReferenceNumberExample = 'KLF 2025/120';
|
||||
static const String tenderDescriptionExample =
|
||||
static const String tenderDeliveryLocationExample = 'Norrbotten County';
|
||||
static const String tenderReferenceNumberExample = 'KLF 2025/120';
|
||||
static const String tenderDescriptionExample =
|
||||
'Luleå Municipality is procuring on behalf of Norrbotten’s e-board (all municipalities in Norrbotten)...';
|
||||
static const String tenderMatchPercentageExample = '75%';
|
||||
static const String locationDescription = 'Luleå Municipality is procuring on behalf of Norrbotten’s e-board (all municipalities in Norrbotten).
The procurement includes operation, support, and further development of the existing open e-platform.
No additional information, amendments, or answers to questions will be provided after June 16.o additional information, amendments, or answers to questions will be provided after June 16.o additional information, amendments, or answers to questions will be provided after June 16.website: www.tenders.com Lorem ipsum is amet Luleå Municipality is procuring on behalf of Norrbotten’s e-board (all municipalities in Norrbotten).
The procurement includes operation, support, and further development of the existing open e-platform.
No additional information, amendments, or answers to questions will be provided after June 16. o additional information, amendments, or answers to questions will be provided after June 16. o additional information, amendments, or answers to questions will be provided after June 16.website: www.tenders.com';
|
||||
static const String tenderMatchPercentageExample = '75%';
|
||||
static const String locationDescription =
|
||||
'Luleå Municipality is procuring on behalf of Norrbotten’s e-board (all municipalities in Norrbotten).
The procurement includes operation, support, and further development of the existing open e-platform.
No additional information, amendments, or answers to questions will be provided after June 16.o additional information, amendments, or answers to questions will be provided after June 16.o additional information, amendments, or answers to questions will be provided after June 16.website: www.tenders.com Lorem ipsum is amet Luleå Municipality is procuring on behalf of Norrbotten’s e-board (all municipalities in Norrbotten).
The procurement includes operation, support, and further development of the existing open e-platform.
No additional information, amendments, or answers to questions will be provided after June 16. o additional information, amendments, or answers to questions will be provided after June 16. o additional information, amendments, or answers to questions will be provided after June 16.website: www.tenders.com';
|
||||
}
|
||||
|
||||
@@ -91,6 +91,9 @@ class AppColors {
|
||||
static Color get textBlue =>
|
||||
_isDarkMode ? const Color(0xFF3A87FF) : const Color(0xFF0164FF);
|
||||
|
||||
static Color get iconColor =>
|
||||
_isDarkMode ? const Color(0xFF999999) : const Color(0xFF888888);
|
||||
|
||||
static Color get primary10 =>
|
||||
_isDarkMode
|
||||
? const Color.fromRGBO(104, 151, 151, 0.2)
|
||||
|
||||
@@ -69,7 +69,7 @@ class DesktopHomePage extends StatelessWidget {
|
||||
TenderCard(
|
||||
backgroundColor: AppColors.primary20,
|
||||
iconPath: 'assets/icons/arrows.svg',
|
||||
title: AppStrings.tenderSubmitting,
|
||||
title: AppStrings.tenderSubmitted,
|
||||
amount: '12',
|
||||
textColor: Color(0xFF0164FF),
|
||||
enableTap: true,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tm_app/core/constants/assets.dart';
|
||||
import 'package:tm_app/core/constants/strings.dart';
|
||||
import 'package:tm_app/core/routes/app_routes.dart';
|
||||
import 'package:tm_app/core/theme/colors.dart';
|
||||
@@ -68,8 +69,8 @@ class MobileHomePage extends StatelessWidget {
|
||||
children: [
|
||||
TenderCard(
|
||||
backgroundColor: AppColors.primary20,
|
||||
iconPath: 'assets/icons/arrows.svg',
|
||||
title: AppStrings.tenderSubmitting,
|
||||
iconPath: AssetsManager.arrows,
|
||||
title: AppStrings.tenderSubmitted,
|
||||
amount: '12',
|
||||
textColor: Color(0xFF0164FF),
|
||||
enableTap: true,
|
||||
@@ -79,7 +80,7 @@ class MobileHomePage extends StatelessWidget {
|
||||
),
|
||||
TenderCard(
|
||||
backgroundColor: AppColors.primary10,
|
||||
iconPath: 'assets/icons/thumb.svg',
|
||||
iconPath: AssetsManager.thumb,
|
||||
title: AppStrings.approvedTenders,
|
||||
amount: '03',
|
||||
textColor: Color(0xFF24848E),
|
||||
@@ -101,7 +102,7 @@ class MobileHomePage extends StatelessWidget {
|
||||
children: [
|
||||
TenderCard(
|
||||
backgroundColor: AppColors.orange10,
|
||||
iconPath: 'assets/icons/shield.svg',
|
||||
iconPath: AssetsManager.shield,
|
||||
title: AppStrings.tenderValue,
|
||||
amount: '\$250,000',
|
||||
textColor: Color(0xFFE5821E),
|
||||
@@ -110,7 +111,7 @@ class MobileHomePage extends StatelessWidget {
|
||||
),
|
||||
TenderCard(
|
||||
backgroundColor: AppColors.grey10,
|
||||
iconPath: 'assets/icons/edit.svg',
|
||||
iconPath: AssetsManager.edit,
|
||||
title: AppStrings.thunderStatus,
|
||||
amount: '23',
|
||||
textColor: Color(0xFF9E9E9E),
|
||||
|
||||
@@ -79,7 +79,7 @@ class TabletHomePage extends StatelessWidget {
|
||||
child: TenderCard(
|
||||
backgroundColor: AppColors.primary20,
|
||||
iconPath: 'assets/icons/arrows.svg',
|
||||
title: AppStrings.tenderSubmitting,
|
||||
title: AppStrings.tenderSubmitted,
|
||||
amount: '12',
|
||||
textColor: Color(0xFF0164FF),
|
||||
enableTap: true,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
import '../../core/constants/assets.dart';
|
||||
import '../../core/utils/size_config.dart';
|
||||
|
||||
class TenderCard extends StatelessWidget {
|
||||
@@ -65,7 +66,7 @@ class TenderCard extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
enableTap
|
||||
? SvgPicture.asset('assets/icons/arrow-right.svg')
|
||||
? SvgPicture.asset(AssetsManager.arrowRight)
|
||||
: SizedBox(),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
|
||||
import '../../core/constants/assets.dart';
|
||||
import '../../core/theme/colors.dart';
|
||||
import '../../core/utils/size_config.dart';
|
||||
|
||||
@@ -72,7 +73,7 @@ class TendersListItem extends StatelessWidget {
|
||||
SizedBox(height: 24.0.h()),
|
||||
Row(
|
||||
children: [
|
||||
SvgPicture.asset('assets/icons/location.svg'),
|
||||
SvgPicture.asset(AssetsManager.location),
|
||||
SizedBox(width: 1.0.w()),
|
||||
Text(
|
||||
'Location',
|
||||
@@ -86,7 +87,7 @@ class TendersListItem extends StatelessWidget {
|
||||
SizedBox(
|
||||
width: 32.0.w(),
|
||||
height: 21.0.h(),
|
||||
child: Image.asset('assets/icons/SE.png', fit: BoxFit.cover),
|
||||
child: Image.asset(AssetsManager.seFlag, fit: BoxFit.cover),
|
||||
),
|
||||
Spacer(),
|
||||
Container(
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class LastTendersTab extends StatelessWidget {
|
||||
const LastTendersTab({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(color: Colors.blue);
|
||||
}
|
||||
}
|
||||
@@ -126,7 +126,22 @@ class _MainTendersSliderState extends State<MainTendersSlider> {
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: _goToPreviousPage,
|
||||
child: SvgPicture.asset(AssetsManager.arrowCircleLeft),
|
||||
child: Container(
|
||||
width: 32.0.w(),
|
||||
height: 32.0.w(),
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(color: AppColors.iconColor, width: 1.5),
|
||||
),
|
||||
alignment: Alignment.center,
|
||||
child: SvgPicture.asset(
|
||||
AssetsManager.arrowLeftSmall,
|
||||
colorFilter: ColorFilter.mode(
|
||||
AppColors.iconColor,
|
||||
BlendMode.srcATop,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'$currentPage/${sampleTenders.length}',
|
||||
@@ -138,7 +153,22 @@ class _MainTendersSliderState extends State<MainTendersSlider> {
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: _goToNextPage,
|
||||
child: SvgPicture.asset(AssetsManager.arrowCircleRight),
|
||||
child: Container(
|
||||
width: 32.0.w(),
|
||||
height: 32.0.w(),
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(color: AppColors.iconColor, width: 1.5),
|
||||
),
|
||||
alignment: Alignment.center,
|
||||
child: SvgPicture.asset(
|
||||
AssetsManager.arrowRightSmall,
|
||||
colorFilter: ColorFilter.mode(
|
||||
AppColors.iconColor,
|
||||
BlendMode.srcATop,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:tm_app/core/constants/strings.dart';
|
||||
|
||||
import '../../../core/constants/assets.dart';
|
||||
import '../../../core/theme/colors.dart';
|
||||
@@ -84,7 +85,7 @@ class TenderCard extends StatelessWidget {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Deadline:',
|
||||
AppStrings.tenderDeadlineLabel,
|
||||
style: TextStyle(
|
||||
color: AppColors.textBlue,
|
||||
fontSize: 14.0.sp(),
|
||||
@@ -150,7 +151,7 @@ class TenderCard extends StatelessWidget {
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'Match with your profile',
|
||||
AppStrings.tenderMatchProfile,
|
||||
style: TextStyle(
|
||||
color: AppColors.grey80,
|
||||
fontSize: 14.0.sp(),
|
||||
@@ -230,7 +231,7 @@ class TenderCard extends StatelessWidget {
|
||||
borderRadius: BorderRadius.circular(100),
|
||||
),
|
||||
child: Text(
|
||||
'See More',
|
||||
AppStrings.tenderSeeMore,
|
||||
style: TextStyle(
|
||||
color: AppColors.mainBlue,
|
||||
fontSize: 14.0.sp(),
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
export 'last_tenders_tab.dart';
|
||||
export '../../shared/main_tab_bar.dart';
|
||||
export 'tender_app_bar.dart';
|
||||
export 'tender_card.dart';
|
||||
|
||||
@@ -40,7 +40,7 @@ class _YourTendersScreenState extends State<YourTendersScreen>
|
||||
children: [
|
||||
MainTabBar(
|
||||
controller: controller,
|
||||
titles: ['Approved tenders', 'Tenders submitted'],
|
||||
titles: [AppStrings.approvedTenders, AppStrings.tenderSubmitted],
|
||||
),
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
|
||||
Reference in New Issue
Block a user