526 lines
16 KiB
Dart
526 lines
16 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:flutter_svg/svg.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:glassmorphism/glassmorphism.dart';
|
|
import 'package:traderscircuit/Utils/Common/CommonBottomNavigation.dart';
|
|
import 'package:traderscircuit/Utils/Common/MainController.dart';
|
|
import 'package:traderscircuit/Utils/Common/comonGlassmorphicContainer.dart';
|
|
import 'package:traderscircuit/Utils/Common/sized_box.dart';
|
|
import 'package:traderscircuit/Utils/Common/text.dart';
|
|
import 'package:traderscircuit/resources/routes/route_name.dart';
|
|
import 'package:traderscircuit/view/MainScreen/MainScreen.dart';
|
|
import 'package:traderscircuit/view/Sidemenu/Sidemenu.dart';
|
|
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
|
|
|
|
class HomeScreen extends StatefulWidget {
|
|
const HomeScreen({super.key});
|
|
|
|
@override
|
|
State<HomeScreen> createState() => _HomeScreenState();
|
|
}
|
|
|
|
class _HomeScreenState extends State<HomeScreen> {
|
|
GlobalKey<ScaffoldState> _scaffoldKey1 = GlobalKey<ScaffoldState>();
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
key: _scaffoldKey1,
|
|
backgroundColor: Colors.black,
|
|
drawer: Container(width: 320.w, child: SideMenu()),
|
|
extendBody: true,
|
|
appBar: AppBar(
|
|
scrolledUnderElevation: 0.0,
|
|
backgroundColor: Colors.black,
|
|
elevation: 0,
|
|
automaticallyImplyLeading: false,
|
|
titleSpacing: 0,
|
|
leading: InkWell(
|
|
onTap: () {
|
|
_scaffoldKey1.currentState?.openDrawer();
|
|
},
|
|
child: Center(
|
|
child: Image.asset(
|
|
'assets/images/png/menu.png',
|
|
height: 15.h,
|
|
width: 20.w,
|
|
),
|
|
),
|
|
),
|
|
actions: [
|
|
InkWell(
|
|
onTap: () {},
|
|
child: Padding(
|
|
padding: EdgeInsets.only(right: 14.w),
|
|
child: SvgPicture.asset('assets/images/svg/Group 1897.svg')),
|
|
),
|
|
],
|
|
),
|
|
body: Stack(
|
|
children: [
|
|
CommonBlurLeft(),
|
|
CommonBlurRight(),
|
|
Stack(children: [
|
|
Padding(
|
|
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
|
|
child: ListView(
|
|
physics: BouncingScrollPhysics(),
|
|
children: [
|
|
sizedBoxHeight(20.h),
|
|
Text(
|
|
"Welcome Afrid",
|
|
style: TextStyle(
|
|
color: Colors.white,
|
|
fontSize: 24.sp,
|
|
fontFamily: 'Manrope',
|
|
fontWeight: FontWeight.w500),
|
|
),
|
|
sizedBoxHeight(25.h),
|
|
SingleChildScrollView(
|
|
scrollDirection: Axis.horizontal,
|
|
child: Row(
|
|
children: [
|
|
commoncontainer(
|
|
width: 180.w,
|
|
text: 'NIFTY',
|
|
amount: '22,286.95',
|
|
rate: '+304.15 (+1.38%)'),
|
|
sizedBoxWidth(10.w),
|
|
commoncontainer(
|
|
width: 220.w,
|
|
text: 'BANKNIFTY',
|
|
amount: '22,286.95',
|
|
rate: '+896.10 (+1.94%)'),
|
|
],
|
|
),
|
|
),
|
|
sizedBoxHeight(30.h),
|
|
Container(
|
|
width: double.infinity,
|
|
height: 1.h,
|
|
color: Color(0xFF3A3A3A),
|
|
),
|
|
sizedBoxHeight(30.h),
|
|
text22W500('View our products'),
|
|
sizedBoxHeight(30.h),
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
ProductWidget(text: 'Options', subtext: 'Recommendation'),
|
|
ProductWidget(
|
|
text: 'Multibagger', subtext: 'Recommendation')
|
|
],
|
|
),
|
|
sizedBoxHeight(15.h),
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
ProductWidget(
|
|
text: 'Swing Trade', subtext: 'Recommendation'),
|
|
ProductWidget(
|
|
text: 'OP + MB + ST', subtext: 'Recommendation'),
|
|
],
|
|
),
|
|
sizedBoxHeight(25.h),
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
SvgPicture.asset('assets/images/svg/Vector (2).svg'),
|
|
sizedBoxWidth(10.w),
|
|
text18W500('UNLOCK NOW!'),
|
|
],
|
|
),
|
|
sizedBoxHeight(25.h),
|
|
Container(
|
|
width: double.infinity,
|
|
height: 1.h,
|
|
color: Color(0xFF3A3A3A),
|
|
),
|
|
sizedBoxHeight(25.h),
|
|
text22W600('Explore The Unseen'),
|
|
sizedBoxHeight(35.h),
|
|
DefaultTabController(
|
|
length: 2,
|
|
child: Column(
|
|
children: [
|
|
MyTabBar(),
|
|
SizedBox(
|
|
height: 700.h,
|
|
child: TabBarView(
|
|
children: [
|
|
ActiveCallsTab(),
|
|
ExitedCallsTab(),
|
|
],
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
],
|
|
),
|
|
)
|
|
])
|
|
],
|
|
),
|
|
bottomNavigationBar:
|
|
bottomnavigationbar(Color(0xFF3A3A3A), mainController),
|
|
);
|
|
}
|
|
}
|
|
|
|
Widget ActiveCallsTab() {
|
|
return Column(
|
|
children: [
|
|
sizedBoxHeight(30.h),
|
|
cardcallWidget(
|
|
text: 'Trident Ltd', amount: '₹ 453 - ₹234', pdfname: 'Download Pdf'),
|
|
sizedBoxHeight(30.h),
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
text22W600('Content Bytes'),
|
|
sizedBoxHeight(8.w),
|
|
SingleChildScrollView(
|
|
scrollDirection: Axis.horizontal,
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.end,
|
|
children: [
|
|
text16W400_DADADA('The Beauty and Power of Video'),
|
|
sizedBoxWidth(10.w),
|
|
Container(
|
|
height: 35.h,
|
|
width: 105.w,
|
|
decoration: BoxDecoration(
|
|
color: Color(0xFF3A3A3A).withOpacity(0.6),
|
|
borderRadius: BorderRadius.circular(5.r),
|
|
border: Border.all(
|
|
color: Color(0xFF3A3A3A),
|
|
)),
|
|
child: Center(child: text16W500('View More')),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
sizedBoxHeight(20.h),
|
|
commonGlassContainer(
|
|
borderradius: 8,
|
|
width: double.infinity,
|
|
height: 300.h,
|
|
customWidget: Padding(
|
|
padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 10.w),
|
|
child: Column(
|
|
children: [
|
|
Container(
|
|
height: 200.h,
|
|
width: double.infinity,
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(8.r),
|
|
image: DecorationImage(
|
|
image: AssetImage(
|
|
'assets/images/png/Rectangle 17934.png'))),
|
|
child: Center(
|
|
child: SvgPicture.asset(
|
|
'assets/images/svg/gridicons_play.svg',
|
|
height: 56.h,
|
|
width: 56.w,
|
|
),
|
|
),
|
|
),
|
|
sizedBoxHeight(20.h),
|
|
Row(
|
|
children: [
|
|
CircleAvatar(
|
|
radius: 23.r,
|
|
backgroundImage:
|
|
AssetImage('assets/images/png/Ellipse 1494.png'),
|
|
),
|
|
sizedBoxWidth(10.w),
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
text18W500('Week of 21st February 2024'),
|
|
// sizedBoxHeight(10.h),
|
|
text12W400_979797('20k views . 2 days ago'),
|
|
],
|
|
)
|
|
],
|
|
)
|
|
],
|
|
),
|
|
))
|
|
],
|
|
),
|
|
],
|
|
);
|
|
}
|
|
|
|
Widget ExitedCallsTab() {
|
|
return Column(
|
|
children: [
|
|
sizedBoxHeight(30.h),
|
|
cardcallWidget(
|
|
text: 'Trident Ltd', amount: '₹ 453 - ₹234', pdfname: 'Download Pdf'),
|
|
sizedBoxHeight(30.h),
|
|
cardcallWidget(
|
|
text: 'Trident Ltd', amount: '₹ 453 - ₹234', pdfname: 'Download Pdf'),
|
|
sizedBoxHeight(30.h),
|
|
cardcallWidget(
|
|
text: 'Trident Ltd', amount: '₹ 453 - ₹234', pdfname: 'Download Pdf'),
|
|
],
|
|
);
|
|
}
|
|
|
|
Widget cardcallWidget(
|
|
{required String text, required String amount, required String pdfname}) {
|
|
return GlassmorphicContainer(
|
|
width: double.infinity,
|
|
height: 176.h,
|
|
borderRadius: 8,
|
|
blur: 10,
|
|
alignment: Alignment.center,
|
|
border: 0.8,
|
|
linearGradient: LinearGradient(
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
colors: [
|
|
Colors.white.withOpacity(0.1),
|
|
Color(0xFFFFFFFF).withOpacity(0.05),
|
|
],
|
|
stops: [
|
|
0.1,
|
|
1,
|
|
]),
|
|
borderGradient: LinearGradient(
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
colors: [
|
|
Color(0xff3A3A3A),
|
|
Color(0xFF3A3A3A),
|
|
],
|
|
),
|
|
child: Column(
|
|
children: [
|
|
Padding(
|
|
padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w),
|
|
child: Row(
|
|
children: [
|
|
GlassmorphicContainer(
|
|
width: 47.w,
|
|
height: 47.h,
|
|
borderRadius: 100,
|
|
blur: 10,
|
|
alignment: Alignment.center,
|
|
border: 0.9,
|
|
linearGradient: LinearGradient(
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
colors: [
|
|
Color(0xff3A3A3A),
|
|
Color(0xFF3A3A3A),
|
|
],
|
|
),
|
|
borderGradient: LinearGradient(
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
colors: [
|
|
Color.fromRGBO(70, 5, 1, 0.8),
|
|
Color.fromRGBO(102, 102, 102, 0.8),
|
|
],
|
|
),
|
|
child: Center(
|
|
child:
|
|
Image.asset('assets/images/png/square_TRIDENT_com 1.png'),
|
|
),
|
|
),
|
|
sizedBoxWidth(15.w),
|
|
text18W600(text),
|
|
Spacer(),
|
|
Container(
|
|
width: 62.w,
|
|
height: 25.h,
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.circular(4.r),
|
|
color: Color(0xFFFFAD31),
|
|
),
|
|
child: Center(child: text16W400_1B1B1B('Hold')),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
Container(
|
|
width: double.infinity,
|
|
height: 1.h,
|
|
color: Color(0xFF3A3A3A),
|
|
),
|
|
Padding(
|
|
padding: const EdgeInsets.all(20),
|
|
child: Row(
|
|
children: [
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
text14W400_979797('Initial Entry Price'),
|
|
sizedBoxHeight(5.h),
|
|
text15W600(amount)
|
|
],
|
|
),
|
|
sizedBoxWidth(50.w),
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
text14W400_979797('Report'),
|
|
sizedBoxHeight(5.h),
|
|
Row(
|
|
children: [
|
|
// SvgPicture.asset('assets/images/svg/pdfsvg.svg'),
|
|
Image.asset('assets/images/png/pdf (1) 1.png'),
|
|
text15W600(pdfname),
|
|
],
|
|
)
|
|
],
|
|
)
|
|
],
|
|
),
|
|
)
|
|
],
|
|
),
|
|
);
|
|
}
|
|
|
|
class MyTabBar extends StatelessWidget {
|
|
// Set the desired height
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Container(
|
|
decoration: BoxDecoration(
|
|
border: Border.all(color: Color(0Xff3A3A3A)),
|
|
borderRadius: BorderRadius.circular(8.r),
|
|
),
|
|
padding: const EdgeInsets.all(10.0), // Set the desired padding
|
|
child: TabBar(
|
|
indicator: BoxDecoration(
|
|
color: const Color(0xff6C0000),
|
|
borderRadius: BorderRadius.circular(5),
|
|
),
|
|
dividerColor: Colors.transparent,
|
|
labelStyle: TextStyle(
|
|
fontSize: 18.sp,
|
|
color: Colors.white,
|
|
fontWeight: FontWeight.w500,
|
|
fontFamily: 'manrope'),
|
|
indicatorSize: TabBarIndicatorSize.tab,
|
|
indicatorColor: const Color(0xFFFFFFFF),
|
|
labelColor: Colors.white,
|
|
unselectedLabelColor: const Color(0xffFFFFFF),
|
|
overlayColor: MaterialStateProperty.all(const Color(0xFFFFFFFF)),
|
|
tabs: const [
|
|
Tab(
|
|
text: 'Active Calls',
|
|
),
|
|
Tab(
|
|
text: 'Exited Calls',
|
|
),
|
|
]),
|
|
);
|
|
}
|
|
}
|
|
|
|
Widget ProductWidget({required String text, required String subtext}) {
|
|
return GlassmorphicContainer(
|
|
width: 175.w,
|
|
height: 83.h,
|
|
borderRadius: 8,
|
|
blur: 10,
|
|
alignment: Alignment.center,
|
|
border: 0.8,
|
|
linearGradient: LinearGradient(
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
colors: [
|
|
Colors.white.withOpacity(0.1),
|
|
Color(0xFFFFFFFF).withOpacity(0.05),
|
|
],
|
|
stops: [
|
|
0.1,
|
|
1,
|
|
]),
|
|
borderGradient: LinearGradient(
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
colors: [
|
|
Color(0xff3A3A3A),
|
|
Color(0xFF3A3A3A),
|
|
],
|
|
),
|
|
child: Padding(
|
|
padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 10.w),
|
|
child: Column(
|
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
text18W600(text),
|
|
sizedBoxWidth(8.w),
|
|
text14W400_979797(subtext),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
Widget commoncontainer(
|
|
{required String text,
|
|
required String amount,
|
|
required String rate,
|
|
required double width}) {
|
|
return GlassmorphicContainer(
|
|
width: width,
|
|
height: 83.h,
|
|
borderRadius: 8,
|
|
blur: 10,
|
|
alignment: Alignment.center,
|
|
border: 0.8,
|
|
linearGradient: LinearGradient(
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
colors: [
|
|
Colors.white.withOpacity(0.1),
|
|
Color(0xFFFFFFFF).withOpacity(0.05),
|
|
],
|
|
stops: [
|
|
0.1,
|
|
1,
|
|
]),
|
|
borderGradient: LinearGradient(
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
colors: [
|
|
Color(0xff3A3A3A),
|
|
Color(0xFF3A3A3A),
|
|
],
|
|
),
|
|
child: Padding(
|
|
padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 10.w),
|
|
child: Column(
|
|
children: [
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
text14W400_979797(text),
|
|
sizedBoxWidth(8.w),
|
|
text16W600(amount),
|
|
sizedBoxWidth(8.w),
|
|
SvgPicture.asset(
|
|
'assets/images/svg/Line 587.svg',
|
|
height: 15.h,
|
|
width: 15.w,
|
|
),
|
|
],
|
|
),
|
|
sizedBoxHeight(8.w),
|
|
text14W400_00FF19(rate)
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|