From 38b1e0920e9b1942e62cbd0b297801ce51397f66 Mon Sep 17 00:00:00 2001 From: llsajjad Date: Mon, 11 Aug 2025 08:02:28 +0330 Subject: [PATCH] added design for desktop and tablet --- .../pages/your_tenders_desktop_page.dart | 63 +++++++++++++++++++ .../pages/your_tenders_mobile_page.dart | 55 ++++++++++++++++ .../pages/your_tenders_tablet_page.dart | 60 ++++++++++++++++++ .../your_tenders/your_tenders_screen.dart | 58 ++++------------- 4 files changed, 189 insertions(+), 47 deletions(-) create mode 100644 lib/views/your_tenders/pages/your_tenders_desktop_page.dart create mode 100644 lib/views/your_tenders/pages/your_tenders_mobile_page.dart create mode 100644 lib/views/your_tenders/pages/your_tenders_tablet_page.dart diff --git a/lib/views/your_tenders/pages/your_tenders_desktop_page.dart b/lib/views/your_tenders/pages/your_tenders_desktop_page.dart new file mode 100644 index 0000000..902c0f9 --- /dev/null +++ b/lib/views/your_tenders/pages/your_tenders_desktop_page.dart @@ -0,0 +1,63 @@ +import 'package:flutter/material.dart'; +import 'package:tm_app/core/constants/strings.dart'; +import 'package:tm_app/core/theme/colors.dart'; +import 'package:tm_app/views/shared/main_tab_bar.dart'; +import 'package:tm_app/views/shared/tender_app_bar.dart'; +import 'package:tm_app/views/your_tenders/widgets/approved_tenders.dart'; +import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart'; + +class YourTendersDesktopPage extends StatefulWidget { + const YourTendersDesktopPage({super.key}); + + @override + State createState() => _YourTendersDesktopPageState(); +} + +class _YourTendersDesktopPageState extends State + with SingleTickerProviderStateMixin { + late TabController controller; + + @override + void initState() { + super.initState(); + controller = TabController(length: 2, vsync: this); + } + + @override + void dispose() { + controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return SafeArea( + child: Scaffold( + backgroundColor: AppColors.backgroundColor, + appBar: tenderMobileAppBar(title: AppStrings.yourTenders), + body: Center( + child: SizedBox( + width: 740, + child: Column( + children: [ + MainTabBar( + controller: controller, + titles: [ + AppStrings.approvedTenders, + AppStrings.tenderSubmitted, + ], + ), + Expanded( + child: TabBarView( + controller: controller, + children: [ApprovedTenders(), TendersSubmitted()], + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/views/your_tenders/pages/your_tenders_mobile_page.dart b/lib/views/your_tenders/pages/your_tenders_mobile_page.dart new file mode 100644 index 0000000..b7b0b0e --- /dev/null +++ b/lib/views/your_tenders/pages/your_tenders_mobile_page.dart @@ -0,0 +1,55 @@ +import 'package:flutter/material.dart'; +import 'package:tm_app/core/constants/strings.dart'; +import 'package:tm_app/core/theme/colors.dart'; +import 'package:tm_app/views/shared/main_tab_bar.dart'; +import 'package:tm_app/views/shared/tender_app_bar.dart'; +import 'package:tm_app/views/your_tenders/widgets/approved_tenders.dart'; +import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart'; + +class YourTendersMobilePage extends StatefulWidget { + const YourTendersMobilePage({super.key}); + + @override + State createState() => _YourTendersMobilePageState(); +} + +class _YourTendersMobilePageState extends State + with SingleTickerProviderStateMixin { + late TabController controller; + + @override + void initState() { + super.initState(); + controller = TabController(length: 2, vsync: this); + } + + @override + void dispose() { + controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return SafeArea( + child: Scaffold( + backgroundColor: AppColors.backgroundColor, + appBar: tenderMobileAppBar(title: AppStrings.yourTenders), + body: Column( + children: [ + MainTabBar( + controller: controller, + titles: [AppStrings.approvedTenders, AppStrings.tenderSubmitted], + ), + Expanded( + child: TabBarView( + controller: controller, + children: [ApprovedTenders(), TendersSubmitted()], + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/views/your_tenders/pages/your_tenders_tablet_page.dart b/lib/views/your_tenders/pages/your_tenders_tablet_page.dart new file mode 100644 index 0000000..5a7c114 --- /dev/null +++ b/lib/views/your_tenders/pages/your_tenders_tablet_page.dart @@ -0,0 +1,60 @@ +import 'package:flutter/material.dart'; +import 'package:tm_app/core/constants/strings.dart'; +import 'package:tm_app/core/theme/colors.dart'; +import 'package:tm_app/views/shared/main_tab_bar.dart'; +import 'package:tm_app/views/shared/tender_app_bar.dart'; +import 'package:tm_app/views/your_tenders/widgets/approved_tenders.dart'; +import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart'; + +class YourTendersTabletPage extends StatefulWidget { + const YourTendersTabletPage({super.key}); + + @override + State createState() => _YourTendersTabletPageState(); +} + +class _YourTendersTabletPageState extends State + with SingleTickerProviderStateMixin { + late TabController controller; + + @override + void initState() { + super.initState(); + controller = TabController(length: 2, vsync: this); + } + + @override + void dispose() { + controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return SafeArea( + child: Scaffold( + backgroundColor: AppColors.backgroundColor, + appBar: tenderMobileAppBar(title: AppStrings.yourTenders), + body: Center( + child: SizedBox( + width: 720, + child: Column( + children: [ + MainTabBar( + controller: controller, + titles: [AppStrings.approvedTenders, AppStrings.tenderSubmitted], + ), + Expanded( + child: TabBarView( + controller: controller, + children: [ApprovedTenders(), TendersSubmitted()], + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/views/your_tenders/your_tenders_screen.dart b/lib/views/your_tenders/your_tenders_screen.dart index 8a4bc61..2554d3e 100644 --- a/lib/views/your_tenders/your_tenders_screen.dart +++ b/lib/views/your_tenders/your_tenders_screen.dart @@ -1,56 +1,20 @@ import 'package:flutter/material.dart'; -import 'package:tm_app/core/constants/strings.dart'; -import 'package:tm_app/core/theme/colors.dart'; -import 'package:tm_app/views/shared/tender_app_bar.dart'; -import 'package:tm_app/views/your_tenders/widgets/approved_tenders.dart'; -import 'package:tm_app/views/your_tenders/widgets/tenders_submitted.dart'; +import 'package:tm_app/core/utils/size_config.dart'; +import 'package:tm_app/views/shared/responsive_builder.dart'; +import 'package:tm_app/views/your_tenders/pages/your_tenders_desktop_page.dart'; +import 'package:tm_app/views/your_tenders/pages/your_tenders_mobile_page.dart'; +import 'package:tm_app/views/your_tenders/pages/your_tenders_tablet_page.dart'; -import '../shared/main_tab_bar.dart'; - -class YourTendersScreen extends StatefulWidget { +class YourTendersScreen extends StatelessWidget { const YourTendersScreen({super.key}); - @override - State createState() => _YourTendersScreenState(); -} - -class _YourTendersScreenState extends State - with SingleTickerProviderStateMixin { - late TabController controller; - - @override - void initState() { - super.initState(); - controller = TabController(length: 2, vsync: this); - } - - @override - void dispose() { - controller.dispose(); - super.dispose(); - } - @override Widget build(BuildContext context) { - return SafeArea( - child: Scaffold( - backgroundColor: AppColors.backgroundColor, - appBar: tenderMobileAppBar(title: AppStrings.yourTenders), - body: Column( - children: [ - MainTabBar( - controller: controller, - titles: [AppStrings.approvedTenders, AppStrings.tenderSubmitted], - ), - Expanded( - child: TabBarView( - controller: controller, - children: [ApprovedTenders(), TendersSubmitted()], - ), - ), - ], - ), - ), + SizeConfig.init(context); + return ResponsiveBuilder( + mobile: YourTendersMobilePage(), + tablet: YourTendersTabletPage(), + desktop: YourTendersDesktopPage(), ); } }