notification and short trade screen done

This commit is contained in:
priyanka
2024-03-21 00:11:02 -07:00
parent 4b277f9bcd
commit e2f0f6bfbe
17 changed files with 1437 additions and 177 deletions

View File

@@ -7,7 +7,7 @@ import 'package:glassmorphism/glassmorphism.dart';
import 'package:traderscircuit/Utils/Common/MainController.dart';
GlassmorphicContainer bottomnavigationbar(
Color secondaryColor, MainController _mainController) {
MainController _mainController) {
return GlassmorphicContainer(
width: double.infinity,
height: 83.h,

View File

@@ -0,0 +1,41 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
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',
),
]),
);
}
}

View File

@@ -12,7 +12,7 @@ Widget commonGlassContainer(
height: height,
borderRadius: borderradius,
blur: 10,
alignment: Alignment.center,
alignment: Alignment.topCenter,
border: 0.9,
linearGradient: LinearGradient(
begin: Alignment.topLeft,

View File

@@ -78,6 +78,28 @@ Widget text16W400_1B1B1B(String text) {
);
}
Widget text12W500_B4B4B4(String text) {
return Text(
text,
style: TextStyle(
fontSize: 12.sp,
color: Color(0XffB4B4B4),
fontWeight: FontWeight.w500,
fontFamily: 'manrope'),
);
}
Widget text14W600_1B1B1B(String text) {
return Text(
text,
style: TextStyle(
fontSize: 14.sp,
color: Color(0Xff1B1B1B),
fontWeight: FontWeight.w600,
fontFamily: 'manrope'),
);
}
Widget text16W600(String text) {
return Text(
text,
@@ -111,6 +133,17 @@ Widget text15W600(String text) {
);
}
Widget text15W600_00FF19(String text) {
return Text(
text,
style: TextStyle(
fontSize: 15.sp,
color: Color(0xFF00FF19),
fontWeight: FontWeight.w600,
fontFamily: 'manrope'),
);
}
Widget text12W400(String text) {
return Text(
text,
@@ -121,6 +154,16 @@ Widget text12W400(String text) {
fontFamily: 'manrope'),
);
}
Widget text12W500(String text) {
return Text(
text,
style: TextStyle(
fontSize: 12.sp,
color: Colors.white,
fontWeight: FontWeight.w500,
fontFamily: 'manrope'),
);
}
Widget text8W400(String text) {
return Text(
@@ -144,6 +187,17 @@ Widget text22W600(String text) {
);
}
Widget text25W600(String text) {
return Text(
text,
style: TextStyle(
fontSize: 25.sp,
color: Colors.white,
fontWeight: FontWeight.w600,
fontFamily: 'manrope'),
);
}
Widget text22W500(String text) {
return Text(
text,
@@ -177,6 +231,17 @@ Widget text14W300(String text) {
);
}
Widget text14W400(String text) {
return Text(
text,
style: TextStyle(
fontSize: 14.sp,
color: Colors.white,
fontWeight: FontWeight.w400,
fontFamily: 'manrope'),
);
}
Widget text14W500(String text) {
return Text(
text,

View File

@@ -13,6 +13,10 @@ class RouteName {
static const String sidemenu = '/sidemenu';
static const String mainscreen = '/mainscreen';
static const String shortTrade = '/shortTrade';
static const String notification = '/notification';
static const String exploreUnseen = '/exploreUnseen';

View File

@@ -1,8 +1,10 @@
import 'package:get/get.dart';
import 'package:traderscircuit/Utils/Common/noInternet.dart';
import 'package:traderscircuit/resources/routes/route_name.dart';
import 'package:traderscircuit/view/MainScreen/ExploreUnseen.dart';
import 'package:traderscircuit/view/MainScreen/HomeScreen.dart';
import 'package:traderscircuit/view/MainScreen/MainScreen.dart';
import 'package:traderscircuit/view/MainScreen/Notification.dart';
import 'package:traderscircuit/view/MainScreen/ShortTrade.dart';
import 'package:traderscircuit/view/Sidemenu/Sidemenu.dart';
import 'package:traderscircuit/view/login/LoginScreen.dart';
@@ -46,22 +48,22 @@ class AppRoutes {
name: RouteName.loginscreen,
page: () => const LoginScreen(),
),
GetPage(
GetPage(
name: RouteName.homescreen,
page: () => const HomeScreen(),
),
GetPage(
GetPage(
name: RouteName.sidemenu,
page: () => const SideMenu(),
),
GetPage(
GetPage(
name: RouteName.mainscreen,
page: () => const MainScreen(),
),
GetPage(
GetPage(
name: RouteName.shortTrade,
page: () => const ShortTrade(),
),
),
GetPage(
name: RouteName.verifyotp,
page: () => const VerifyOTP(),
@@ -84,5 +86,13 @@ class AppRoutes {
name: RouteName.pin,
page: () => const Pin(),
),
GetPage(
name: RouteName.notification,
page: () => const NotificationScreen(),
),
GetPage(
name: RouteName.exploreUnseen,
page: () => const ExploreUnseen(),
),
];
}

View File

@@ -0,0 +1,319 @@
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/CommonAppbar.dart';
import 'package:traderscircuit/Utils/Common/CommonBottomNavigation.dart';
import 'package:traderscircuit/Utils/Common/CommonTabBar.dart';
import 'package:traderscircuit/Utils/Common/comonGlassmorphicContainer.dart';
import 'package:traderscircuit/Utils/Common/sized_box.dart';
import 'package:traderscircuit/Utils/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 ExploreUnseen extends StatefulWidget {
const ExploreUnseen({super.key});
@override
State<ExploreUnseen> createState() => _ExploreUnseenState();
}
class _ExploreUnseenState extends State<ExploreUnseen> {
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: CommonAppbar(titleTxt: ''),
// 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,
// ),
// ),
// ),
// ),
body: Stack(children: [
CommonBlurLeft(),
CommonBlurRight(),
Stack(children: [
Padding(
padding: EdgeInsets.symmetric(
horizontal: 16,
),
child: ListView(physics: BouncingScrollPhysics(), children: [
text22W600('Explore The Unseen'),
sizedBoxHeight(35.h),
DefaultTabController(
length: 2,
initialIndex: 1,
child: Column(
children: [
MyTabBar(),
SizedBox(
height: 700.h,
child: TabBarView(
children: [
ActiveCallsTab(),
ExitedCallsTab(),
],
),
),
],
),
),
]))
])
]),
// bottomNavigationBar: bottomnavigationbar(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() {
List<Map<String, String>> cardcall = [
{
'text': 'Trident Ltd',
'amount': '₹ 453 - ₹234',
'pdfname': 'Download Pdf',
},
{
'text': 'Trident Ltd',
'amount': '₹ 453 - ₹234',
'pdfname': 'Download Pdf',
},
{
'text': 'Trident Ltd',
'amount': '₹ 453 - ₹234',
'pdfname': 'Download Pdf',
},
];
return SingleChildScrollView(
child: Column(
children: [
sizedBoxHeight(25.h),
Column(
children: List.generate(cardcall.length, (index) {
return Column(
children: [
cardcallWidget(
text: cardcall[index]['text']!,
amount: cardcall[index]['amount']!,
pdfname: cardcall[index]['pdfname']!),
sizedBoxHeight(20.h)
],
);
}),
),
],
),
);
}
Widget cardcallWidget(
{required String text, required String amount, required String pdfname}) {
return commonGlassContainer(
width: double.infinity,
height: 176.h,
borderradius: 8,
customWidget: 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.png',
height: 20.h,
width: 20.w,
),
text15W600(pdfname),
],
)
],
)
],
),
)
],
),
);
}
}

View File

@@ -4,6 +4,7 @@ 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/CommonTabBar.dart';
import 'package:traderscircuit/Utils/Common/MainController.dart';
import 'package:traderscircuit/Utils/Common/comonGlassmorphicContainer.dart';
import 'package:traderscircuit/Utils/Common/sized_box.dart';
@@ -27,7 +28,7 @@ class _HomeScreenState extends State<HomeScreen> {
return Scaffold(
key: _scaffoldKey1,
backgroundColor: Colors.black,
drawer: Container(width: 320.w, child: SideMenu()),
drawer: Container(child: SideMenu()),
extendBody: true,
appBar: AppBar(
scrolledUnderElevation: 0.0,
@@ -49,7 +50,9 @@ class _HomeScreenState extends State<HomeScreen> {
),
actions: [
InkWell(
onTap: () {},
onTap: () {
Get.toNamed(RouteName.notification);
},
child: Padding(
padding: EdgeInsets.only(right: 14.w),
child: SvgPicture.asset('assets/images/svg/Group 1897.svg')),
@@ -137,7 +140,29 @@ class _HomeScreenState extends State<HomeScreen> {
color: Color(0xFF3A3A3A),
),
sizedBoxHeight(25.h),
text22W600('Explore The Unseen'),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
text22W600('Explore The Unseen'),
GestureDetector(
onTap: () {
Get.toNamed(RouteName.exploreUnseen);
},
child: 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(35.h),
DefaultTabController(
length: 2,
@@ -162,8 +187,7 @@ class _HomeScreenState extends State<HomeScreen> {
])
],
),
bottomNavigationBar:
bottomnavigationbar(Color(0xFF3A3A3A), mainController),
bottomNavigationBar: bottomnavigationbar(mainController),
);
}
}
@@ -255,50 +279,53 @@ Widget ActiveCallsTab() {
}
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'),
],
List<Map<String, String>> cardcall = [
{
'text': 'Trident Ltd',
'amount': '₹ 453 - ₹234',
'pdfname': 'Download Pdf',
},
{
'text': 'Trident Ltd',
'amount': '₹ 453 - ₹234',
'pdfname': 'Download Pdf',
},
{
'text': 'Trident Ltd',
'amount': '₹ 453 - ₹234',
'pdfname': 'Download Pdf',
},
];
return SingleChildScrollView(
child: Column(
children: [
sizedBoxHeight(30.h),
Column(
children: List.generate(cardcall.length, (index) {
return Column(
children: [
cardcallWidget(
text: cardcall[index]['text']!,
amount: cardcall[index]['amount']!,
pdfname: cardcall[index]['pdfname']!),
sizedBoxHeight(20.h)
],
);
}),
),
],
),
);
}
Widget cardcallWidget(
{required String text, required String amount, required String pdfname}) {
return GlassmorphicContainer(
return commonGlassContainer(
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(
borderradius: 8,
customWidget: Column(
children: [
Padding(
padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w),
@@ -373,7 +400,11 @@ Widget cardcallWidget(
Row(
children: [
// SvgPicture.asset('assets/images/svg/pdfsvg.svg'),
Image.asset('assets/images/png/pdf (1) 1.png'),
Image.asset(
'assets/images/png/pdf.png',
height: 20.h,
width: 20.w,
),
text15W600(pdfname),
],
)
@@ -387,45 +418,6 @@ Widget cardcallWidget(
);
}
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,

View File

@@ -0,0 +1,157 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:traderscircuit/Utils/Common/CommonAppbar.dart';
import 'package:traderscircuit/Utils/Common/sized_box.dart';
import 'package:traderscircuit/Utils/text.dart';
class NotificationScreen extends StatefulWidget {
const NotificationScreen({super.key});
@override
State<NotificationScreen> createState() => _NotificationScreenState();
}
class _NotificationScreenState extends State<NotificationScreen> {
List<Map<String, String>> CardList = [
{
'profileimg': 'assets/images/png/Ellipse 588.png',
'title': 'Mokshada Kesarkar',
'subtitle': 'Lorem ipsum dolor sit amet cons......',
'time': '1 day ago'
},
{
'profileimg': 'assets/images/png/Ellipse 591.png',
'title': 'Afrid Mulla',
'subtitle': 'Lorem ipsum dolor sit amet cons......',
'time': '1 day ago'
},
{
'profileimg': 'assets/images/png/Ellipse 588.png',
'title': 'Mokshada Kesarkar',
'subtitle': 'Lorem ipsum dolor sit amet cons......',
'time': '2 days ago'
},
{
'profileimg': 'assets/images/png/Ellipse 591.png',
'title': 'Afrid Mulla',
'subtitle': 'Lorem ipsum dolor sit amet cons......',
'time': '3 days ago'
},
];
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black,
appBar: CommonAppbar(titleTxt: ''),
body: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(left: 16.w),
child: text25W600('Notifications'),
),
sizedBoxHeight(40.h),
Padding(
padding: EdgeInsets.only(left: 16.w),
child: text16W400('Today'),
),
sizedBoxHeight(25.h),
notificationCard(
profileimg: 'assets/images/png/Ellipse 591.png',
title: 'Mokshada Kesarkar',
subtitle: 'Lorem ipsum dolor sit amet cons......',
time: '30 mins ago'),
Container(
height: 1,
margin: EdgeInsets.symmetric(vertical: 20.h),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: Color.fromRGBO(176, 176, 176, 0.5),
width: 1,
),
),
),
),
notificationCard(
profileimg: 'assets/images/png/Ellipse 588.png',
title: 'Mokshada Kesarkar',
subtitle: 'Lorem ipsum dolor sit amet cons......',
time: '1 Hour ago'),
sizedBoxHeight(30.h),
Padding(
padding: EdgeInsets.only(left: 16.w),
child: text16W400('Yesterday'),
),
sizedBoxHeight(30.h),
ListView.builder(
shrinkWrap: true,
itemCount: CardList.length,
itemBuilder: (context, index) {
return Column(
children: [
notificationCard(
profileimg: CardList[index]['profileimg']!,
title: CardList[index]['title']!,
subtitle: CardList[index]['subtitle']!,
time: CardList[index]['time']!),
if (index != CardList.length - 1)
Container(
height: 1,
margin: EdgeInsets.symmetric(vertical: 20.h),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: Color.fromRGBO(176, 176, 176, 0.5),
width: 1,
),
),
),
),
],
);
},
),
sizedBoxHeight(40.h),
],
),
),
);
}
// 'assets/images/png/Ellipse 1494.png'
Widget notificationCard({
required String profileimg,
required String title,
required String subtitle,
required String time,
}) {
return Padding(
padding: EdgeInsets.symmetric(horizontal: 12.w),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
CircleAvatar(
backgroundImage: AssetImage(profileimg),
radius: 26.5.r,
),
sizedBoxWidth(12.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400(title),
text12W500_B4B4B4(subtitle),
],
),
],
),
text12W500(time),
],
),
);
}
}

View File

@@ -4,9 +4,13 @@ import 'package:flutter_svg/svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:traderscircuit/Utils/Common/CommonAppBar.dart';
import 'package:traderscircuit/Utils/Common/CommonBottomNavigation.dart';
import 'package:traderscircuit/Utils/Common/CommonTabBar.dart';
import 'package:traderscircuit/Utils/Common/commonBotton.dart';
import 'package:traderscircuit/Utils/Common/comonGlassmorphicContainer.dart';
import 'package:traderscircuit/Utils/Common/sized_box.dart';
import 'package:traderscircuit/Utils/text.dart';
import 'package:traderscircuit/view/MainScreen/MainScreen.dart';
import 'package:traderscircuit/view/Sidemenu/Sidemenu.dart';
import 'package:traderscircuit/view/onBoarding/splashScreen1.dart';
@@ -19,88 +23,421 @@ class ShortTrade extends StatefulWidget {
class _ShortTradeState extends State<ShortTrade> {
GlobalKey<ScaffoldState> _scaffoldKey1 = GlobalKey<ScaffoldState>();
List<String> containerTexts = ["Container 1", "Container 2", "Container 3"];
var selectedIndex = 0.obs;
List<String> containerTexts = ["Swing Trade", "Multibagger", "Options"];
final selectedIndex = 0.obs;
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey1,
key: _scaffoldKey1,
backgroundColor: Colors.black,
drawer: Container(width: 320.w, child: SideMenu()),
extendBody: true,
appBar: AppBar(
scrolledUnderElevation: 0.0,
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,
),
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,
),
),
),
),
// CommonAppbar(
// titleTxt: '',
// // preferredSize: Size.fromHeight(60.h),
// showLeading: false,
// customleading: InkWell(
// onTap: () {
// _scaffoldKey1.currentState?.openDrawer();
// },
// child: Center(
// child: Image.asset(
// 'assets/images/png/menu.png',
// height: 15.h,
// width: 20.w,
// ),
// ),
// // Icon(
// // Icons.menu,
// // color: Colors.white,
// // size: 27.sp,
// // ),
// ),
// ),
body: Stack(children: [
// CommonAppbar(
// titleTxt: '',
// // preferredSize: Size.fromHeight(60.h),
// showLeading: false,
// customleading: InkWell(
// onTap: () {
// _scaffoldKey1.currentState?.openDrawer();
// },
// child: Center(
// child: Image.asset(
// 'assets/images/png/menu.png',
// height: 15.h,
// width: 20.w,
// ),
// ),
// // Icon(
// // Icons.menu,
// // color: Colors.white,
// // size: 27.sp,
// // ),
// ),
// ),
body: Stack(
children: [
CommonBlurLeft(),
CommonBlurRight(),
Stack(children: [
Padding(
padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
child: ListView(physics: BouncingScrollPhysics(), children: [
sizedBoxHeight(15.h),
SizedBox(
height: 60,
width: double.infinity,
// color: Colors.amber,
child: ListView.builder(
shrinkWrap: true,
scrollDirection: Axis.horizontal,
itemCount: containerTexts.length,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
selectedIndex.value = index;
},
child: Row(
children: [
topContainer(containerTexts[index], index),
sizedBoxWidth(10.w)
],
),
);
}),
),
sizedBoxHeight(20.h),
cardSwingWidget(
text: 'Indiabulls Housing Finance Ltd',
amount: '₹ 196.50 - ₹ 197',
pdfname: '₹ 204'),
DefaultTabController(
length: 2,
// initialIndex: selectedIndex.value,
child: Column(
children: [
MyTabBar(),
SizedBox(
height: 700.h,
child: TabBarView(
children: [
ActiveCallsTab(),
ExitedCallsTab(),
],
),
),
],
),
),
sizedBoxHeight(20.h),
// ListView.builder(
// shrinkWrap: true,
// scrollDirection: Axis.vertical,
// itemCount: containerTexts.length,
// itemBuilder: (context, index) {
// return topContainer(containerTexts[index], index);
// },
// )
]))
])
]));
],
),
bottomNavigationBar: bottomnavigationbar(mainController),
);
}
Widget cardSwingWidget(
{required String text, required String amount, required String pdfname}) {
Widget ActiveCallsTab() {
return Obx(() {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (selectedIndex == 1) _unlockbottomsheet();
});
return selectedIndex == 0
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(20.h),
cardSwingWidget(
text: 'Indiabulls Housing Finance Ltd',
amount: '₹ 196.50 - ₹ 197',
targetamount: '₹ 204',
stoploss: '₹ 190',
time: '4-5 Days'),
sizedBoxHeight(25.h),
text22W600('Content Bytes'),
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'),
],
)
],
)
],
),
),
),
],
)
: selectedIndex == 1
? Column(
children: [],
)
: Column(
children: [],
);
});
}
void _unlockbottomsheet() {
showModalBottomSheet(
// isDismissible: false,
// enableDrag: false,
backgroundColor: Colors.black.withOpacity(0.3),
context: context,
builder: (BuildContext context) {
return commonGlassContainer(
width: double.infinity,
height: 500,
borderradius: 0,
customWidget: SizedBox(
height: 100,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Image.asset(
// 'assets/images/png/Group 1000003722.png',
// height: 100.h,
// ),
// sizedBoxHeight(25.h),
text20W400('Please subscribed to unlock'),
sizedBoxHeight(30.h),
CommonBtn(text: 'Subscribe Now'),
SizedBox(
height: 100,
)
],
),
),
);
},
);
}
Widget ExitedCallsTab() {
List<Map<String, String>> cardSwing = [
{
'text': 'Indiabulls Housing Finance Ltd',
'amount': '₹ 196.50 - ₹ 197',
'targetamount': '₹ 204',
'stoploss': '₹ 190',
'time': '4-5 Days',
},
{
'text': 'Indiabulls Housing Finance Ltd',
'amount': '₹ 196.50 - ₹ 197',
'targetamount': '₹ 204',
'stoploss': '₹ 190',
'time': '4-5 Days',
},
{
'text': 'Indiabulls Housing Finance Ltd',
'amount': '₹ 196.50 - ₹ 197',
'targetamount': '₹ 204',
'stoploss': '₹ 190',
'time': '4-5 Days',
},
];
List<Map<String, String>> cardMultibagger = [
{
'text': 'TATA MOTORS',
'price': '₹ 453 - ₹234',
'date': '25 March 2024',
'returns': '103%',
'stoploss': '₹ 198',
'duration': '271 Days',
'pdfname': 'Download Pdf'
},
{
'text': 'TATA MOTORS',
'price': '₹ 453 - ₹234',
'date': '25 March 2024',
'returns': '103%',
'stoploss': '₹ 198',
'duration': '271 Days',
'pdfname': 'Download Pdf'
},
{
'text': 'TATA MOTORS',
'price': '₹ 453 - ₹234',
'date': '25 March 2024',
'returns': '103%',
'stoploss': '₹ 198',
'duration': '271 Days',
'pdfname': 'Download Pdf'
},
];
List<Map<String, String>> cardOptionsbagger = [
{
'text': 'NIFTY/ BANK NIFTY',
'optiontype': 'Call',
'price': '₹ 46500',
'date': '6th Mar',
'premium': 'Buy above₹ 690',
'price1': '₹ 740',
'price2': '₹ 780',
'stoploss': '₹ 645',
},
{
'text': 'NIFTY/ BANK NIFTY',
'optiontype': 'Call',
'price': '₹ 46500',
'date': '6th Mar',
'premium': 'Buy above₹ 690',
'price1': '₹ 740',
'price2': '₹ 780',
'stoploss': '₹ 645',
},
{
'text': 'NIFTY/ BANK NIFTY',
'optiontype': 'Call',
'price': '₹ 46500',
'date': '6th Mar',
'premium': 'Buy above₹ 690',
'price1': '₹ 740',
'price2': '₹ 780',
'stoploss': '₹ 645',
},
];
return SingleChildScrollView(
child: Column(
children: [
sizedBoxHeight(20.h),
Obx(() {
return selectedIndex == 0
? Column(
children: List.generate(cardSwing.length, (index) {
return Column(
children: [
cardSwingWidget(
text: cardSwing[index]['text']!,
amount: cardSwing[index]['amount']!,
targetamount: cardSwing[index]['targetamount']!,
stoploss: cardSwing[index]['stoploss']!,
time: cardSwing[index]['time']!),
sizedBoxHeight(20.h)
],
);
}),
)
: selectedIndex == 1
? Column(
children:
List.generate(cardMultibagger.length, (index) {
return Column(
children: [
cardMultibaggerWidget(
text: cardMultibagger[index]['text']!,
price: cardMultibagger[index]['price']!,
date: cardMultibagger[index]['date']!,
returns: cardMultibagger[index]['returns']!,
stoploss: cardMultibagger[index]['stoploss']!,
duration: cardMultibagger[index]['duration']!,
pdfname: cardMultibagger[index]['pdfname']!),
sizedBoxHeight(20.h)
],
);
}),
)
: Column(
children:
List.generate(cardMultibagger.length, (index) {
return Column(
children: [
cardOptionWidget(
text: cardOptionsbagger[index]['text']!,
optiontype: cardOptionsbagger[index]
['optiontype']!,
price: cardOptionsbagger[index]['price']!,
date: cardOptionsbagger[index]['date']!,
premium: cardOptionsbagger[index]['premium']!,
price1: cardOptionsbagger[index]['price1']!,
price2: cardOptionsbagger[index]['price2']!,
stoploss: cardOptionsbagger[index]
['stoploss']!),
sizedBoxHeight(20.h)
],
);
}),
);
}),
sizedBoxHeight(200.h)
],
),
);
}
Widget cardOptionWidget({
required String text,
required String optiontype,
required String price,
required String date,
required String premium,
required String price1,
required String price2,
required String stoploss,
}) {
return commonGlassContainer(
width: double.infinity,
height: 251.h,
height: 380.h,
borderradius: 8,
customWidget: Column(
children: [
@@ -133,11 +470,14 @@ class _ShortTradeState extends State<ShortTrade> {
),
child: Center(
child: Image.asset(
'assets/images/png/square_TRIDENT_com 1.png'),
'assets/images/png/Group 1000004495.png',
width: 26.w,
height: 23.h,
),
),
),
sizedBoxWidth(15.w),
text18W600(text),
SizedBox(width: 200.w, child: text18W600(text)),
Spacer(),
Container(
width: 62.w,
@@ -146,7 +486,319 @@ class _ShortTradeState extends State<ShortTrade> {
borderRadius: BorderRadius.circular(4.r),
color: Color(0xFFFFAD31),
),
child: Center(child: text16W400_1B1B1B('Hold')),
child: Center(child: text14W600_1B1B1B('Hold')),
)
],
),
),
Container(
width: double.infinity,
height: 1.h,
color: Color(0xFF3A3A3A),
),
Padding(
padding: const EdgeInsets.all(18),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Option Type'),
sizedBoxHeight(5.h),
SizedBox(width: 150.w, child: text15W600(optiontype))
],
),
sizedBoxWidth(30.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Strike Price'),
sizedBoxHeight(5.h),
text15W600(price)
],
)
],
),
sizedBoxHeight(15.h),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Expiry Date'),
sizedBoxHeight(5.h),
SizedBox(width: 150.w, child: text15W600(date))
],
),
sizedBoxWidth(30.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Premium'),
sizedBoxHeight(5.h),
text15W600(premium)
],
)
],
),
sizedBoxHeight(15.h),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Target Price 01'),
sizedBoxHeight(5.h),
SizedBox(width: 150.w, child: text15W600(price1))
],
),
sizedBoxWidth(30.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Target Price 01'),
sizedBoxHeight(5.h),
text15W600(price2)
],
)
],
),
sizedBoxHeight(15.h),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Stop Loss'),
sizedBoxHeight(5.h),
text15W600(stoploss)
],
)
],
),
)
],
),
);
}
Widget cardMultibaggerWidget({
required String text,
required String price,
required String date,
required String returns,
required String stoploss,
required String duration,
required String pdfname,
}) {
return commonGlassContainer(
width: double.infinity,
height: 330.h,
borderradius: 8,
customWidget: 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/TATAMOTORS.NS_BIG 1.png',
width: 26.w,
height: 23.h,
),
),
),
sizedBoxWidth(15.w),
SizedBox(width: 200.w, child: text18W600(text)),
Spacer(),
Container(
width: 62.w,
height: 25.h,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4.r),
color: Color(0xFFFFAD31),
),
child: Center(child: text14W600_1B1B1B('Hold')),
)
],
),
),
Container(
width: double.infinity,
height: 1.h,
color: Color(0xFF3A3A3A),
),
Padding(
padding: const EdgeInsets.all(18),
child: Column(
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Initial Entry Price'),
sizedBoxHeight(5.h),
SizedBox(width: 150.w, child: text15W600(price))
],
),
sizedBoxWidth(30.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
width: 130.w,
child: text14W400_979797('Date of recommendation')),
sizedBoxHeight(5.h),
text15W600(date)
],
)
],
),
sizedBoxHeight(15.h),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('% Return'),
sizedBoxHeight(5.h),
SizedBox(
width: 150.w, child: text15W600_00FF19(returns))
],
),
sizedBoxWidth(30.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Stop Loss'),
sizedBoxHeight(5.h),
text15W600(stoploss)
],
)
],
),
sizedBoxHeight(15.h),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Duration'),
sizedBoxHeight(5.h),
SizedBox(width: 150.w, child: text15W600(duration))
],
),
sizedBoxWidth(30.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Report'),
sizedBoxHeight(5.h),
Row(
children: [
Image.asset(
'assets/images/png/pdf.png',
height: 20.h,
width: 20.w,
),
text15W600(pdfname),
],
)
],
)
],
),
],
),
)
],
),
);
}
Widget cardSwingWidget({
required String text,
required String amount,
required String targetamount,
required String stoploss,
required String time,
}) {
return commonGlassContainer(
width: double.infinity,
height: 255.h,
borderradius: 8,
customWidget: 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/Teal.png'),
),
),
sizedBoxWidth(15.w),
SizedBox(width: 200.w, child: text18W600(text)),
Spacer(),
Container(
width: 62.w,
height: 25.h,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4.r),
color: Color(0xFFFFAD31),
),
child: Center(child: text14W600_1B1B1B('Hold')),
)
],
),
@@ -158,31 +810,51 @@ class _ShortTradeState extends State<ShortTrade> {
),
Padding(
padding: const EdgeInsets.all(20),
child: Row(
child: Column(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
Row(
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(
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// SvgPicture.asset('assets/images/svg/pdfsvg.svg'),
Image.asset('assets/images/png/pdf (1) 1.png'),
text15W600(pdfname),
text14W400_979797('Entry Price'),
sizedBoxHeight(5.h),
SizedBox(width: 150.w, child: text15W600(amount))
],
),
sizedBoxWidth(50.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Target Price'),
sizedBoxHeight(5.h),
text15W600(targetamount)
],
)
],
)
),
sizedBoxHeight(15.h),
Row(
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Stop Loss'),
sizedBoxHeight(5.h),
SizedBox(width: 150.w, child: text15W600(stoploss))
],
),
sizedBoxWidth(50.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
text14W400_979797('Time Horizon'),
sizedBoxHeight(5.h),
text15W600(time)
],
)
],
),
],
),
)
@@ -195,19 +867,19 @@ class _ShortTradeState extends State<ShortTrade> {
return Obx(() {
return selectedIndex.value == index
? Container(
height: 40,
width: 126,
height: 40.h,
width: 126.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(5),
color: Color(0Xff6C0000),
),
child: Center(child: Text(text)),
child: Center(child: text16W500(text)),
)
: commonGlassContainer(
width: 126,
height: 40,
width: 126.w,
height: 40.h,
borderradius: 5,
customWidget: Center(child: Text(text)),
customWidget: Center(child: text16W400(text)),
);
});
}