diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index b61b240..429bd5e 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -6,7 +6,6 @@
-
@@ -62,7 +61,7 @@
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index ecb91ba..23972ed 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -3,7 +3,7 @@
NSFaceIDUsageDescription
- Why is my app authenticating using face id?
+ for authentication
CFBundleDevelopmentRegion
$(DEVELOPMENT_LANGUAGE)
CFBundleDisplayName
@@ -11,7 +11,7 @@
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
+ com.app.traderscircuit
CFBundleInfoDictionaryVersion
6.0
CFBundleName
diff --git a/lib/Utils/Common/commonBotton.dart b/lib/Utils/Common/commonBotton.dart
index f1d3e18..d456589 100644
--- a/lib/Utils/Common/commonBotton.dart
+++ b/lib/Utils/Common/commonBotton.dart
@@ -58,7 +58,7 @@ Widget CommonYesNoBtn({
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
- Color.fromRGBO(70, 5, 1, 0.8),
+ Color(0xFF2D7AEE).withOpacity(0.14),
Color.fromRGBO(102, 102, 102, 0.8),
],
),
@@ -74,9 +74,10 @@ Widget CommonYesNoBtn({
height: 50.h,
width: 170.w,
decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(8.r),
- border: Border.all(color: Color(0xFF9A0000), width: 1.w),
- color: Color(0xFF6C0000)),
+ borderRadius: BorderRadius.circular(8.r),
+ // border: Border.all(color: Color(0xFF9A0000), width: 1.w),
+ color: Color(0xFF2D7AEE),
+ ),
child: Center(child: text18W500('No')),
),
)
diff --git a/lib/Utils/api_urls.dart b/lib/Utils/api_urls.dart
index 7e0f3dc..1b87fc9 100644
--- a/lib/Utils/api_urls.dart
+++ b/lib/Utils/api_urls.dart
@@ -1,8 +1,6 @@
class ApiUrls {
// PIE BASE URL FOR SMALL CASE --> NEED TO BE UPDATED
- static const String pieBase = "https://app.piadvisors.in/";
-
//Base URL
static const base = "https://tradercircuit.betadelivery.com/api/";
@@ -86,7 +84,6 @@ class ApiUrls {
//Stock Details
static String stockDetailsApi = "${base}get-details-of-stock";
-//Stock Details
static String subscriptionApi = "${base}my-subscription-page";
//setting
@@ -94,4 +91,7 @@ class ApiUrls {
//search
static String searchData = "${base}search-stock";
+
+ //logout
+ static String logout = "${base}Logout";
}
diff --git a/lib/data/network/network_api_services.dart b/lib/data/network/network_api_services.dart
index 6f9fc9d..4de2ee2 100644
--- a/lib/data/network/network_api_services.dart
+++ b/lib/data/network/network_api_services.dart
@@ -38,6 +38,14 @@ class NetworkApiServices {
data: response.data,
ResponseStatus.SUCCESS,
);
+ } else if (response.statusCode == 203) {
+ print(response.data);
+ return ResponseData("validation", ResponseStatus.PRIVATE,
+ data: response.data);
+ } else if (response.statusCode == 202) {
+ print(response.data);
+ return ResponseData("success", ResponseStatus.PRIVATE,
+ data: response.data);
} else {
try {
return ResponseData(
@@ -72,7 +80,7 @@ class NetworkApiServices {
SharedPreferences prefs = await SharedPreferences.getInstance();
String? token = prefs.getString('accessToken');
try {
- response = await dio.post(url,
+ response = await dio.post(url,
data: data,
options: (token == null || token == "")
? Options(
@@ -99,9 +107,9 @@ class NetworkApiServices {
return ResponseData("success", ResponseStatus.SUCCESS,
data: response.data);
} else if (response.statusCode == 203) {
- print(response.data);
+ print(response.data['message'].toString());
return ResponseData("validation", ResponseStatus.PRIVATE,
- data: response.data);
+ data: response.data['message'].toString());
} else if (response.statusCode == 202) {
print(response.data);
return ResponseData("success", ResponseStatus.PRIVATE,
diff --git a/lib/main.dart b/lib/main.dart
index 59e492c..c91f1f5 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -3,6 +3,7 @@ import 'dart:developer';
import 'dart:ui';
import 'package:connectivity_plus/connectivity_plus.dart';
+import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -10,14 +11,13 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_branch_sdk/flutter_branch_sdk.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
+import 'package:onesignal_flutter/onesignal_flutter.dart';
+import 'package:scgateway_flutter_plugin/scgateway_flutter_plugin.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:traderscircuit/Utils/utils.dart';
import 'package:traderscircuit/firebase_options.dart';
-import 'package:scgateway_flutter_plugin/scgateway_flutter_plugin.dart';
import 'package:traderscircuit/resources/routes/route_name.dart';
-import 'package:firebase_core/firebase_core.dart';
import 'package:traderscircuit/resources/routes/routes.dart';
-import 'package:onesignal_flutter/onesignal_flutter.dart';
import 'view_model/LoginPage/Loginbloc.dart';
import 'view_model/SendOtp/sendOtpbloc.dart';
@@ -53,7 +53,7 @@ Future main() async {
//smallcase
ScgatewayFlutterPlugin.setConfigEnvironment(
GatewayEnvironment.PRODUCTION,
- 'pi-advisors',
+ 'traderscircuit',
false,
[],
);
@@ -89,6 +89,7 @@ class _MyAppState extends State with WidgetsBindingObserver {
super.initState();
Utils.getStoragePermission();
WidgetsBinding.instance.addObserver(this);
+ FlutterBranchSdk.init().then((value) => listenDynamicLinks());
connectivity = Connectivity();
checkInternet();
@@ -109,11 +110,10 @@ class _MyAppState extends State with WidgetsBindingObserver {
});
}
});
- // print(_connectionStatus);
}
void listenDynamicLinks() async {
- streamSubscription = FlutterBranchSdk.initSession().listen((data) {
+ streamSubscription = FlutterBranchSdk.listSession().listen((data) {
print('listenDynamicLinks - DeepLink Data: $data');
controllerData.sink.add((data.toString()));
if (data.containsKey('+clicked_branch_link') &&
diff --git a/lib/model/HomeModel/home_model.dart b/lib/model/HomeModel/home_model.dart
index 222baf0..d508d84 100644
--- a/lib/model/HomeModel/home_model.dart
+++ b/lib/model/HomeModel/home_model.dart
@@ -10,14 +10,14 @@ class HomeModel {
status = json['status'];
statusCode = json['status_code'];
message = json['message'];
- data = json['data'] != null ? new Data.fromJson(json['data']) : null;
+ data = json['data'] != null ? Data.fromJson(json['data']) : null;
}
Map toJson() {
- final Map data = new Map();
- data['status'] = this.status;
- data['status_code'] = this.statusCode;
- data['message'] = this.message;
+ final Map data = {};
+ data['status'] = status;
+ data['status_code'] = statusCode;
+ data['message'] = message;
if (this.data != null) {
data['data'] = this.data!.toJson();
}
@@ -54,30 +54,29 @@ class Data {
exploreTheUnseenActiveCalls = [];
json['explore_the_unseen_active_calls'].forEach((v) {
exploreTheUnseenActiveCalls!
- .add(new ExploreTheUnseenActiveCalls.fromJson(v));
+ .add(ExploreTheUnseenActiveCalls.fromJson(v));
});
}
if (json['explore_the_unseen_exited_calls'] != null) {
exploreTheUnseenExitedCalls = [];
json['explore_the_unseen_exited_calls'].forEach((v) {
exploreTheUnseenExitedCalls!
- .add(new ExploreTheUnseenExitedCalls.fromJson(v));
+ .add(ExploreTheUnseenExitedCalls.fromJson(v));
});
}
indexLiveData = json['index_live_data'] != null
- ? new IndexLiveData.fromJson(json['index_live_data'])
- : null;
- userData = json['user_data'] != null
- ? new UserData.fromJson(json['user_data'])
+ ? IndexLiveData.fromJson(json['index_live_data'])
: null;
+ userData =
+ json['user_data'] != null ? UserData.fromJson(json['user_data']) : null;
if (json['products'] != null) {
products = [];
json['products'].forEach((v) {
- products!.add(new Products.fromJson(v));
+ products!.add(Products.fromJson(v));
});
}
contentByteVideo = json['content_byte_video'] != null
- ? new ContentByteVideo.fromJson(json['content_byte_video'])
+ ? ContentByteVideo.fromJson(json['content_byte_video'])
: null;
isUpstoxTokenRefreshed = json['isUpstoxTokenRefreshed'];
upstoxAccessToken = json['upstoxAccessToken'];
@@ -86,31 +85,31 @@ class Data {
}
Map toJson() {
- final Map data = new Map();
- if (this.exploreTheUnseenActiveCalls != null) {
+ final Map data = {};
+ if (exploreTheUnseenActiveCalls != null) {
data['explore_the_unseen_active_calls'] =
- this.exploreTheUnseenActiveCalls!.map((v) => v.toJson()).toList();
+ exploreTheUnseenActiveCalls!.map((v) => v.toJson()).toList();
}
- if (this.exploreTheUnseenExitedCalls != null) {
+ if (exploreTheUnseenExitedCalls != null) {
data['explore_the_unseen_exited_calls'] =
- this.exploreTheUnseenExitedCalls!.map((v) => v.toJson()).toList();
+ exploreTheUnseenExitedCalls!.map((v) => v.toJson()).toList();
}
- if (this.indexLiveData != null) {
- data['index_live_data'] = this.indexLiveData!.toJson();
+ if (indexLiveData != null) {
+ data['index_live_data'] = indexLiveData!.toJson();
}
- if (this.userData != null) {
- data['user_data'] = this.userData!.toJson();
+ if (userData != null) {
+ data['user_data'] = userData!.toJson();
}
- if (this.products != null) {
- data['products'] = this.products!.map((v) => v.toJson()).toList();
+ if (products != null) {
+ data['products'] = products!.map((v) => v.toJson()).toList();
}
- if (this.contentByteVideo != null) {
- data['content_byte_video'] = this.contentByteVideo!.toJson();
+ if (contentByteVideo != null) {
+ data['content_byte_video'] = contentByteVideo!.toJson();
}
- data['isUpstoxTokenRefreshed'] = this.isUpstoxTokenRefreshed;
- data['upstoxAccessToken'] = this.upstoxAccessToken;
- data['upstox_client_id'] = this.upstoxClientId;
- data['upstox_secret_key'] = this.upstoxSecretKey;
+ data['isUpstoxTokenRefreshed'] = isUpstoxTokenRefreshed;
+ data['upstoxAccessToken'] = upstoxAccessToken;
+ data['upstox_client_id'] = upstoxClientId;
+ data['upstox_secret_key'] = upstoxSecretKey;
return data;
}
}
@@ -170,35 +169,35 @@ class ExploreTheUnseenActiveCalls {
createdAt = json['created_at'];
docs = json['docs'];
productTypeData = json['product_type_data'] != null
- ? new ProductTypeData.fromJson(json['product_type_data'])
+ ? ProductTypeData.fromJson(json['product_type_data'])
: null;
actionData = json['action_data'] != null
- ? new ActionData.fromJson(json['action_data'])
+ ? ActionData.fromJson(json['action_data'])
: null;
}
Map toJson() {
- final Map data = new Map();
- data['id'] = this.id;
- data['product_type_xid'] = this.productTypeXid;
- data['recommendation_actions_xid'] = this.recommendationActionsXid;
- data['stock_name'] = this.stockName;
- data['instrument_key'] = this.instrumentKey;
- data['stock_image'] = this.stockImage;
- data['duration'] = this.duration;
- data['current_price'] = this.currentPrice;
- data['buy_price'] = this.buyPrice;
- data['target_price'] = this.targetPrice;
- data['stop_loss'] = this.stopLoss;
- data['is_send_recommendation_now'] = this.isSendRecommendationNow;
- data['schedule_date_time'] = this.scheduleDateTime;
- data['created_at'] = this.createdAt;
- data['docs'] = this.docs;
- if (this.productTypeData != null) {
- data['product_type_data'] = this.productTypeData!.toJson();
+ final Map data = {};
+ data['id'] = id;
+ data['product_type_xid'] = productTypeXid;
+ data['recommendation_actions_xid'] = recommendationActionsXid;
+ data['stock_name'] = stockName;
+ data['instrument_key'] = instrumentKey;
+ data['stock_image'] = stockImage;
+ data['duration'] = duration;
+ data['current_price'] = currentPrice;
+ data['buy_price'] = buyPrice;
+ data['target_price'] = targetPrice;
+ data['stop_loss'] = stopLoss;
+ data['is_send_recommendation_now'] = isSendRecommendationNow;
+ data['schedule_date_time'] = scheduleDateTime;
+ data['created_at'] = createdAt;
+ data['docs'] = docs;
+ if (productTypeData != null) {
+ data['product_type_data'] = productTypeData!.toJson();
}
- if (this.actionData != null) {
- data['action_data'] = this.actionData!.toJson();
+ if (actionData != null) {
+ data['action_data'] = actionData!.toJson();
}
return data;
}
@@ -259,35 +258,35 @@ class ExploreTheUnseenExitedCalls {
createdAt = json['created_at'];
docs = json['docs'];
productTypeData = json['product_type_data'] != null
- ? new ProductTypeData.fromJson(json['product_type_data'])
+ ? ProductTypeData.fromJson(json['product_type_data'])
: null;
actionData = json['action_data'] != null
- ? new ActionData.fromJson(json['action_data'])
+ ? ActionData.fromJson(json['action_data'])
: null;
}
Map toJson() {
- final Map data = new Map();
- data['id'] = this.id;
- data['product_type_xid'] = this.productTypeXid;
- data['recommendation_actions_xid'] = this.recommendationActionsXid;
- data['stock_name'] = this.stockName;
- data['instrument_key'] = this.instrumentKey;
- data['stock_image'] = this.stockImage;
- data['duration'] = this.duration;
- data['current_price'] = this.currentPrice;
- data['buy_price'] = this.buyPrice;
- data['target_price'] = this.targetPrice;
- data['stop_loss'] = this.stopLoss;
- data['is_send_recommendation_now'] = this.isSendRecommendationNow;
- data['schedule_date_time'] = this.scheduleDateTime;
- data['created_at'] = this.createdAt;
- data['docs'] = this.docs;
- if (this.productTypeData != null) {
- data['product_type_data'] = this.productTypeData!.toJson();
+ final Map data = {};
+ data['id'] = id;
+ data['product_type_xid'] = productTypeXid;
+ data['recommendation_actions_xid'] = recommendationActionsXid;
+ data['stock_name'] = stockName;
+ data['instrument_key'] = instrumentKey;
+ data['stock_image'] = stockImage;
+ data['duration'] = duration;
+ data['current_price'] = currentPrice;
+ data['buy_price'] = buyPrice;
+ data['target_price'] = targetPrice;
+ data['stop_loss'] = stopLoss;
+ data['is_send_recommendation_now'] = isSendRecommendationNow;
+ data['schedule_date_time'] = scheduleDateTime;
+ data['created_at'] = createdAt;
+ data['docs'] = docs;
+ if (productTypeData != null) {
+ data['product_type_data'] = productTypeData!.toJson();
}
- if (this.actionData != null) {
- data['action_data'] = this.actionData!.toJson();
+ if (actionData != null) {
+ data['action_data'] = actionData!.toJson();
}
return data;
}
@@ -309,11 +308,11 @@ class ProductTypeData {
}
Map toJson() {
- final Map data = new Map();
- data['id'] = this.id;
- data['title'] = this.title;
- data['is_active'] = this.isActive;
- data['created_at'] = this.createdAt;
+ final Map data = {};
+ data['id'] = id;
+ data['title'] = title;
+ data['is_active'] = isActive;
+ data['created_at'] = createdAt;
return data;
}
}
@@ -334,11 +333,11 @@ class ActionData {
}
Map toJson() {
- final Map data = new Map();
- data['id'] = this.id;
- data['name'] = this.name;
- data['is_active'] = this.isActive;
- data['created_at'] = this.createdAt;
+ final Map data = {};
+ data['id'] = id;
+ data['name'] = name;
+ data['is_active'] = isActive;
+ data['created_at'] = createdAt;
return data;
}
}
@@ -351,12 +350,12 @@ class IndexLiveData {
IndexLiveData.fromJson(Map json) {
status = json['status'];
- data = json['data'] != null ? new Data1.fromJson(json['data']) : null;
+ data = json['data'] != null ? Data1.fromJson(json['data']) : null;
}
Map toJson() {
- final Map data = new Map();
- data['status'] = this.status;
+ final Map data = {};
+ data['status'] = status;
if (this.data != null) {
data['data'] = this.data!.toJson();
}
@@ -372,20 +371,20 @@ class Data1 {
Data1.fromJson(Map json) {
nSEINDEXNiftyBank = json['NSE_INDEX:Nifty Bank'] != null
- ? new NSEINDEXNiftyBank.fromJson(json['NSE_INDEX:Nifty Bank'])
+ ? NSEINDEXNiftyBank.fromJson(json['NSE_INDEX:Nifty Bank'])
: null;
nSEINDEXNifty50 = json['NSE_INDEX:Nifty 50'] != null
- ? new NSEINDEXNifty50.fromJson(json['NSE_INDEX:Nifty 50'])
+ ? NSEINDEXNifty50.fromJson(json['NSE_INDEX:Nifty 50'])
: null;
}
Map toJson() {
- final Map data = new Map();
- if (this.nSEINDEXNiftyBank != null) {
- data['NSE_INDEX:Nifty Bank'] = this.nSEINDEXNiftyBank!.toJson();
+ final Map data = {};
+ if (nSEINDEXNiftyBank != null) {
+ data['NSE_INDEX:Nifty Bank'] = nSEINDEXNiftyBank!.toJson();
}
- if (this.nSEINDEXNifty50 != null) {
- data['NSE_INDEX:Nifty 50'] = this.nSEINDEXNifty50!.toJson();
+ if (nSEINDEXNifty50 != null) {
+ data['NSE_INDEX:Nifty 50'] = nSEINDEXNifty50!.toJson();
}
return data;
}
@@ -400,8 +399,8 @@ class NSEINDEXNiftyBank {
double? lastPrice;
String? volume;
String? averagePrice;
- Null? oi;
- dynamic? netChange;
+ void oi;
+ dynamic netChange;
String? totalBuyQuantity;
String? totalSellQuantity;
String? lowerCircuitLimit;
@@ -429,12 +428,12 @@ class NSEINDEXNiftyBank {
this.oiDayLow});
NSEINDEXNiftyBank.fromJson(Map json) {
- ohlc = json['ohlc'] != null ? new Ohlc.fromJson(json['ohlc']) : null;
+ ohlc = json['ohlc'] != null ? Ohlc.fromJson(json['ohlc']) : null;
timestamp = json['timestamp'];
instrumentToken = json['instrument_token'];
symbol = json['symbol'];
- lastPrice = json['last_price'];
+ lastPrice = _parseJsonToDouble(json['last_price']);
volume = json['volume'];
averagePrice = json['average_price'];
oi = json['oi'];
@@ -449,26 +448,25 @@ class NSEINDEXNiftyBank {
}
Map toJson() {
- final Map data = new Map();
- if (this.ohlc != null) {
- data['ohlc'] = this.ohlc!.toJson();
+ final Map data = {};
+ if (ohlc != null) {
+ data['ohlc'] = ohlc!.toJson();
}
- data['timestamp'] = this.timestamp;
- data['instrument_token'] = this.instrumentToken;
- data['symbol'] = this.symbol;
- data['last_price'] = this.lastPrice;
- data['volume'] = this.volume;
- data['average_price'] = this.averagePrice;
- data['oi'] = this.oi;
- data['net_change'] = this.netChange;
- data['total_buy_quantity'] = this.totalBuyQuantity;
- data['total_sell_quantity'] = this.totalSellQuantity;
- data['lower_circuit_limit'] = this.lowerCircuitLimit;
- data['upper_circuit_limit'] = this.upperCircuitLimit;
- data['last_trade_time'] = this.lastTradeTime;
- data['oi_day_high'] = this.oiDayHigh;
- data['oi_day_low'] = this.oiDayLow;
+ data['timestamp'] = timestamp;
+ data['instrument_token'] = instrumentToken;
+ data['symbol'] = symbol;
+ data['last_price'] = lastPrice;
+ data['volume'] = volume;
+ data['average_price'] = averagePrice;
+ data['net_change'] = netChange;
+ data['total_buy_quantity'] = totalBuyQuantity;
+ data['total_sell_quantity'] = totalSellQuantity;
+ data['lower_circuit_limit'] = lowerCircuitLimit;
+ data['upper_circuit_limit'] = upperCircuitLimit;
+ data['last_trade_time'] = lastTradeTime;
+ data['oi_day_high'] = oiDayHigh;
+ data['oi_day_low'] = oiDayLow;
return data;
}
}
@@ -482,18 +480,18 @@ class Ohlc {
Ohlc({this.open, this.high, this.low, this.close});
Ohlc.fromJson(Map json) {
- open = json['open'];
- high = json['high'];
- low = json['low'];
- close = json['close'];
+ open = _parseJsonToDouble(json['open']);
+ high = _parseJsonToDouble(json['high']);
+ low = _parseJsonToDouble(json['low']);
+ close = _parseJsonToDouble(json['close']);
}
Map toJson() {
- final Map data = new Map();
- data['open'] = this.open;
- data['high'] = this.high;
- data['low'] = this.low;
- data['close'] = this.close;
+ final Map data = {};
+ data['open'] = open;
+ data['high'] = high;
+ data['low'] = low;
+ data['close'] = close;
return data;
}
}
@@ -505,9 +503,8 @@ class NSEINDEXNifty50 {
String? instrumentToken;
String? symbol;
double? lastPrice;
- Null? volume;
- Null? averagePrice;
- Null? oi;
+ double? volume;
+ double? averagePrice;
double? netChange;
String? totalBuyQuantity;
String? totalSellQuantity;
@@ -525,7 +522,6 @@ class NSEINDEXNifty50 {
this.lastPrice,
this.volume,
this.averagePrice,
- this.oi,
this.netChange,
this.totalBuyQuantity,
this.totalSellQuantity,
@@ -536,15 +532,14 @@ class NSEINDEXNifty50 {
this.oiDayLow});
NSEINDEXNifty50.fromJson(Map json) {
- ohlc = json['ohlc'] != null ? new Ohlc.fromJson(json['ohlc']) : null;
+ ohlc = json['ohlc'] != null ? Ohlc.fromJson(json['ohlc']) : null;
timestamp = json['timestamp'];
instrumentToken = json['instrument_token'];
symbol = json['symbol'];
- lastPrice = json['last_price'];
+ lastPrice = json['last_price'].toDouble();
volume = json['volume'];
averagePrice = json['average_price'];
- oi = json['oi'];
netChange = json['net_change'];
totalBuyQuantity = json['total_buy_quantity'];
totalSellQuantity = json['total_sell_quantity'];
@@ -556,26 +551,26 @@ class NSEINDEXNifty50 {
}
Map toJson() {
- final Map data = new Map();
- if (this.ohlc != null) {
- data['ohlc'] = this.ohlc!.toJson();
+ final Map data = {};
+ if (ohlc != null) {
+ data['ohlc'] = ohlc!.toJson();
}
- data['timestamp'] = this.timestamp;
- data['instrument_token'] = this.instrumentToken;
- data['symbol'] = this.symbol;
- data['last_price'] = this.lastPrice;
- data['volume'] = this.volume;
- data['average_price'] = this.averagePrice;
- data['oi'] = this.oi;
- data['net_change'] = this.netChange;
- data['total_buy_quantity'] = this.totalBuyQuantity;
- data['total_sell_quantity'] = this.totalSellQuantity;
- data['lower_circuit_limit'] = this.lowerCircuitLimit;
- data['upper_circuit_limit'] = this.upperCircuitLimit;
- data['last_trade_time'] = this.lastTradeTime;
- data['oi_day_high'] = this.oiDayHigh;
- data['oi_day_low'] = this.oiDayLow;
+ data['timestamp'] = timestamp;
+ data['instrument_token'] = instrumentToken;
+ data['symbol'] = symbol;
+ data['last_price'] = lastPrice;
+ data['volume'] = volume;
+ data['average_price'] = averagePrice;
+
+ data['net_change'] = netChange;
+ data['total_buy_quantity'] = totalBuyQuantity;
+ data['total_sell_quantity'] = totalSellQuantity;
+ data['lower_circuit_limit'] = lowerCircuitLimit;
+ data['upper_circuit_limit'] = upperCircuitLimit;
+ data['last_trade_time'] = lastTradeTime;
+ data['oi_day_high'] = oiDayHigh;
+ data['oi_day_low'] = oiDayLow;
return data;
}
}
@@ -609,14 +604,14 @@ class UserData {
}
Map toJson() {
- final Map data = new Map();
- data['id'] = this.id;
- data['first_name'] = this.firstName;
- data['last_name'] = this.lastName;
- data['user_name'] = this.userName;
- data['profile_photo'] = this.profilePhoto;
- data['is_active'] = this.isActive;
- data['created_at'] = this.createdAt;
+ final Map data = {};
+ data['id'] = id;
+ data['first_name'] = firstName;
+ data['last_name'] = lastName;
+ data['user_name'] = userName;
+ data['profile_photo'] = profilePhoto;
+ data['is_active'] = isActive;
+ data['created_at'] = createdAt;
return data;
}
}
@@ -635,10 +630,10 @@ class Products {
}
Map toJson() {
- final Map data = new Map();
- data['id'] = this.id;
- data['title'] = this.title;
- data['created_at'] = this.createdAt;
+ final Map data = {};
+ data['id'] = id;
+ data['title'] = title;
+ data['created_at'] = createdAt;
return data;
}
}
@@ -684,18 +679,28 @@ class ContentByteVideo {
}
Map toJson() {
- final Map data = new Map();
- data['id'] = this.id;
- data['content_type'] = this.contentType;
- data['title'] = this.title;
- data['description'] = this.description;
- data['tags'] = this.tags;
- data['file'] = this.file;
- data['category_id'] = this.categoryId;
- data['image'] = this.image;
- data['is_active'] = this.isActive;
- data['created_at'] = this.createdAt;
- data['link'] = this.link;
+ final Map data = {};
+ data['id'] = id;
+ data['content_type'] = contentType;
+ data['title'] = title;
+ data['description'] = description;
+ data['tags'] = tags;
+ data['file'] = file;
+ data['category_id'] = categoryId;
+ data['image'] = image;
+ data['is_active'] = isActive;
+ data['created_at'] = createdAt;
+ data['link'] = link;
return data;
}
}
+
+double? _parseJsonToDouble(dynamic value) {
+ if (value is int) {
+ return value.toDouble();
+ } else if (value is double) {
+ return value;
+ } else {
+ return null; // Or handle it in another appropriate way
+ }
+}
diff --git a/lib/model/SmallCaseModel/broker_account_model.dart b/lib/model/SmallCaseModel/broker_account_model.dart
index 16b1a4e..7f2810f 100644
--- a/lib/model/SmallCaseModel/broker_account_model.dart
+++ b/lib/model/SmallCaseModel/broker_account_model.dart
@@ -1,34 +1,76 @@
class BrokerAccountModel {
- final String? id;
- final String? userId;
- final String? brokerName;
- final String? authToken;
- final String? txnId;
+ String? status;
+ int? statusCode;
+ String? message;
+ List? data;
- const BrokerAccountModel({
- required this.id,
- required this.userId,
- required this.brokerName,
- required this.authToken,
- required this.txnId,
- });
+ BrokerAccountModel({this.status, this.statusCode, this.message, this.data});
- factory BrokerAccountModel.fromJson(Map json) {
- return BrokerAccountModel(
- id: json['id'].toString(),
- userId: json['user_id'].toString(),
- brokerName: json['broker_name'] as String?,
- authToken: json['auth_token'] as String?,
- txnId: json['transaction_id'] as String?,
- );
+ BrokerAccountModel.fromJson(Map json) {
+ status = json['status'];
+ statusCode = json['status_code'];
+ message = json['message'];
+ if (json['data'] != null) {
+ data = [];
+ json['data'].forEach((v) {
+ data!.add(Data.fromJson(v));
+ });
+ }
}
Map toJson() {
final Map data = {};
- data['user_id'] = userId;
- data['broker_name'] = brokerName;
- data['auth_token'] = authToken;
- data['transaction_id'] = txnId;
+ data['status'] = status;
+ data['status_code'] = statusCode;
+ data['message'] = message;
+ if (this.data != null) {
+ data['data'] = this.data!.map((v) => v.toJson()).toList();
+ }
+ return data;
+ }
+}
+
+class Data {
+ int? id;
+ int? iamPrincipalXid;
+ String? brokerName;
+ String? authToken;
+ String? transactionId;
+ int? isActive;
+ String? createdAt;
+ String? updatedAt;
+
+ Data(
+ {this.id,
+ this.iamPrincipalXid,
+ this.brokerName,
+ this.authToken,
+ this.transactionId,
+ this.isActive,
+ this.createdAt,
+ this.updatedAt});
+
+ Data.fromJson(Map json) {
+ id = json['id'];
+ iamPrincipalXid = json['iam_principal_xid'];
+ brokerName = json['broker_name'];
+ authToken = json['auth_token'];
+ transactionId = json['transaction_id'];
+ isActive = json['is_active'];
+ createdAt = json['created_at'];
+ updatedAt = json['updated_at'];
+ }
+
+ Map toJson() {
+ final Map data = {};
+ data['id'] = id;
+ data['iam_principal_xid'] = iamPrincipalXid;
+ data['broker_name'] = brokerName;
+ data['auth_token'] = authToken;
+ data['transaction_id'] = transactionId;
+ data['is_active'] = isActive;
+ data['created_at'] = createdAt;
+ data['updated_at'] = updatedAt;
return data;
}
}
diff --git a/lib/resources/routes/routes.dart b/lib/resources/routes/routes.dart
index 7fc6ce7..3af7fc1 100644
--- a/lib/resources/routes/routes.dart
+++ b/lib/resources/routes/routes.dart
@@ -1,32 +1,28 @@
import 'package:get/get.dart';
import 'package:traderscircuit/Utils/Common/noInternet.dart';
-import 'package:traderscircuit/model/StockDetailsModel/stock_details_model.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/MainScreen/stockDetails/Search.dart';
import 'package:traderscircuit/view/MainScreen/stockDetails/option_chain_screen.dart';
import 'package:traderscircuit/view/MainScreen/stockDetails/stock_details_screen.dart';
import 'package:traderscircuit/view/Sidemenu/AboutUs.dart';
-import 'package:traderscircuit/view/Sidemenu/ContentByte/ContentBytes.dart';
import 'package:traderscircuit/view/Sidemenu/ContentByte/AudioMore.dart';
+import 'package:traderscircuit/view/Sidemenu/ContentByte/ContentBytes.dart';
import 'package:traderscircuit/view/Sidemenu/ContentByte/ReadMore.dart';
import 'package:traderscircuit/view/Sidemenu/ContentByte/VideosMore.dart';
import 'package:traderscircuit/view/Sidemenu/FaqScreen.dart';
import 'package:traderscircuit/view/Sidemenu/PrivacyPolicy.dart';
import 'package:traderscircuit/view/Sidemenu/Settings.dart';
+import 'package:traderscircuit/view/Sidemenu/Sidemenu.dart';
import 'package:traderscircuit/view/Sidemenu/TermsAndCondition.dart';
import 'package:traderscircuit/view/Sidemenu/contactUs/contact_us_main.dart';
import 'package:traderscircuit/view/Sidemenu/myProfile/my_profile_screen.dart';
-
import 'package:traderscircuit/view/login/AddDetails.dart';
import 'package:traderscircuit/view/login/Kyc.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';
import 'package:traderscircuit/view/login/UpdateRiskProfile.dart';
import 'package:traderscircuit/view/login/VerifyOtp.dart';
@@ -207,7 +203,7 @@ class AppRoutes {
),
//search
- GetPage(
+ GetPage(
name: RouteName.search,
page: () => const Search(),
),
diff --git a/lib/view/MainScreen/HomeScreen.dart b/lib/view/MainScreen/HomeScreen.dart
index 7bb4de5..9a86a88 100644
--- a/lib/view/MainScreen/HomeScreen.dart
+++ b/lib/view/MainScreen/HomeScreen.dart
@@ -1,10 +1,6 @@
// import 'package:flutter/material.dart';
-import 'dart:developer';
-
-import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
-import 'package:flutter_html/flutter_html.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/svg.dart';
import 'package:gap/gap.dart';
@@ -15,11 +11,8 @@ import 'package:traderscircuit/Utils/Common/comonGlassmorphicContainer.dart';
import 'package:traderscircuit/Utils/Common/sized_box.dart';
import 'package:traderscircuit/Utils/text.dart';
import 'package:traderscircuit/controller/contact_us_controller.dart';
-
-import 'package:traderscircuit/model/HomeModel/home_model.dart';
-
import 'package:traderscircuit/controller/products_controller.dart';
-
+import 'package:traderscircuit/model/HomeModel/home_model.dart';
import 'package:traderscircuit/resources/routes/route_name.dart';
import 'package:traderscircuit/view/MainScreen/ExploreUnseen.dart';
import 'package:traderscircuit/view/MainScreen/MainScreen.dart';
@@ -39,7 +32,7 @@ class HomeScreen extends StatefulWidget {
}
class _HomeScreenState extends State {
- GlobalKey _scaffoldKey1 = GlobalKey();
+ final GlobalKey _scaffoldKey1 = GlobalKey();
RxString userName = "User".obs;
HomeModel homeModel = HomeModel();
@@ -69,9 +62,13 @@ class _HomeScreenState extends State {
}
String calculatePercentageChange(double openPrice, double currentPrice) {
- final percentageChange = ((currentPrice - openPrice) / openPrice) * 100;
-
- log(percentageChange.toStringAsFixed(2));
+ double closePrice = 0;
+ if (currentPrice.toString().contains("-")) {
+ closePrice = openPrice - currentPrice;
+ } else {
+ closePrice = openPrice + currentPrice;
+ }
+ final percentageChange = ((closePrice - openPrice) / openPrice) * 100;
return percentageChange.toStringAsFixed(2);
}
@@ -87,7 +84,10 @@ class _HomeScreenState extends State {
drawerEnableOpenDragGesture: false,
key: _scaffoldKey1,
backgroundColor: Colors.black,
- drawer: Container(child: const SideMenu()),
+ drawer: Container(
+ width: 300,
+ child: const SideMenu(),
+ ),
extendBody: true,
appBar: AppBar(
toolbarHeight: 70.h,
@@ -112,7 +112,7 @@ class _HomeScreenState extends State {
SizedBox(
width: 10.w,
),
- Icon(
+ const Icon(
Icons.search,
color: Colors.white,
),
@@ -175,7 +175,7 @@ class _HomeScreenState extends State {
fontFamily: 'hiragino',
fontWeight: FontWeight.w500),
),
- SizedBox(
+ const SizedBox(
height: 10,
),
!homeModel.data!.isUpstoxTokenRefreshed!
@@ -186,6 +186,8 @@ class _HomeScreenState extends State {
: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceAround,
children: [
commoncontainer(
width: 250.w,
@@ -207,10 +209,10 @@ class _HomeScreenState extends State {
homeModel.data!.indexLiveData!.data!
.nSEINDEXNifty50!.ohlc!.open!,
homeModel.data!.indexLiveData!.data!
- .nSEINDEXNifty50!.lastPrice!,
+ .nSEINDEXNifty50!.netChange!,
),
),
- sizedBoxWidth(8.w),
+ sizedBoxWidth(10.w),
commoncontainer(
width: 250.w,
text: homeModel
@@ -239,7 +241,7 @@ class _HomeScreenState extends State {
homeModel.data!.indexLiveData!.data!
.nSEINDEXNiftyBank!.ohlc!.open!,
homeModel.data!.indexLiveData!.data!
- .nSEINDEXNiftyBank!.lastPrice!,
+ .nSEINDEXNiftyBank!.netChange!,
),
),
],
@@ -283,7 +285,7 @@ class _HomeScreenState extends State {
'assets/images/svg/Vector (2).svg'),
sizedBoxWidth(10.w),
ProfileObj!.data!.isSubscriptionTaken == true
- ? SizedBox()
+ ? const SizedBox()
: InkWell(
child: text18W500('UNLOCK NOW!'),
onTap: () async {
@@ -417,7 +419,7 @@ class _HomeScreenState extends State {
child: text16W400_DADADA(
'The Beauty and Power of Video')),
// sizedBoxWidth(10.w),
- const Spacer(),
+ const SizedBox(width: 4),
InkWell(
onTap: () {
Get.toNamed(RouteName.contentbytes);
@@ -718,7 +720,6 @@ Widget cardcallWidget(
),
GestureDetector(
onTap: () {
- log("RUNNING");
Get.to(const ExploreUnseen());
},
child: Container(
@@ -807,7 +808,7 @@ Widget commoncontainer({
),
),
child: Padding(
- padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 5.w),
+ padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 4.w),
child: Column(
children: [
Row(
@@ -817,7 +818,7 @@ Widget commoncontainer({
sizedBoxWidth(5.w),
text16W600(amount),
sizedBoxWidth(5.w),
- rate.contains("-")
+ rate.contains("-") || percentageChange.contains("-")
? SvgPicture.asset(
'assets/images/svg/Line 587.svg',
height: 15.h,
@@ -832,12 +833,12 @@ Widget commoncontainer({
),
],
),
- sizedBoxHeight(8.w),
+ sizedBoxHeight(6.w),
text14W400(
rate.contains("-")
? "$rate ($percentageChange%)"
: "+$rate ($percentageChange%)",
- clr: rate.contains("-")
+ clr: rate.contains("-") || percentageChange.contains("-")
? const Color(0xFFFF0000)
: rate == "0.0"
? Colors.grey
diff --git a/lib/view/MainScreen/Portfolio/Holdings.dart b/lib/view/MainScreen/Portfolio/Holdings.dart
deleted file mode 100644
index c30aff5..0000000
--- a/lib/view/MainScreen/Portfolio/Holdings.dart
+++ /dev/null
@@ -1,711 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:flutter/services.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/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';
-
-class Holdings extends StatefulWidget {
- const Holdings({super.key});
-
- @override
- State createState() => _HoldingsState();
-}
-
-class _HoldingsState extends State {
- GlobalKey _scaffoldKey1 = GlobalKey();
- List containerTexts = [
- "Portfolio 1",
- "Portfolio 1",
- "Portfolio 1",
- "Portfolio 1",
- "Portfolio 1"
- ];
- final selectedIndex = 0.obs;
- @override
- Widget build(BuildContext context) {
- return WillPopScope(
- onWillPop: () async {
- _onBackButtonPressed(context);
- return true; // Return true to allow the pop action
- },
- child: Scaffold(
- key: _scaffoldKey1,
- backgroundColor: Colors.black,
- drawerEnableOpenDragGesture: false,
- drawer: Container(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,
- ),
- ),
- ),
- ),
- body: Stack(
- children: [
- CommonBlurLeft(),
- CommonBlurRight(),
- Stack(
- children: [
- Padding(
- padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
- child: ListView(
- physics: NeverScrollableScrollPhysics(),
- children: [
- text25W600("My Portfolio"),
- SizedBox(
- height: 10,
- ),
- DefaultTabController(
- length: 5,
- // initialIndex: selectedIndex.value,
- child: Column(
- children: [
- PortfolioTabBar(),
- SizedBox(
- height: 30.h,
- ),
- SizedBox(
- height: 570.h,
- child: TabBarView(
- children: [
- DefaultTabController(
- length: 2,
- // initialIndex: selectedIndex.value,
- child: Column(
- children: [
- HoldingsTabBar(),
- Expanded(
- child: TabBarView(
- children: [
- Holdings(),
- PortfolioReview(),
- ],
- ),
- ),
- ],
- ),
- ),
- DefaultTabController(
- length: 2,
- // initialIndex: selectedIndex.value,
- child: Column(
- children: [
- HoldingsTabBar(),
- Expanded(
- child: TabBarView(
- children: [
- Holdings(),
- PortfolioReview(),
- ],
- ),
- ),
- ],
- ),
- ),
- DefaultTabController(
- length: 2,
- // initialIndex: selectedIndex.value,
- child: Column(
- children: [
- HoldingsTabBar(),
- Expanded(
- child: TabBarView(
- children: [
- Holdings(),
- PortfolioReview(),
- ],
- ),
- ),
- ],
- ),
- ),
- DefaultTabController(
- length: 2,
- // initialIndex: selectedIndex.value,
- child: Column(
- children: [
- HoldingsTabBar(),
- Expanded(
- child: TabBarView(
- children: [
- Holdings(),
- PortfolioReview(),
- ],
- ),
- ),
- ],
- ),
- ),
- DefaultTabController(
- length: 2,
- // initialIndex: selectedIndex.value,
- child: Column(
- children: [
- HoldingsTabBar(),
- Expanded(
- child: TabBarView(
- children: [
- Holdings(),
- PortfolioReview(),
- ],
- ),
- ),
- ],
- ),
- ),
- ],
- ),
- ),
- ],
- ),
- ),
- sizedBoxHeight(40.h),
- ],
- ),
- ),
- ],
- ),
- ],
- ),
- bottomNavigationBar: bottomnavigationbar(mainController),
- ),
- );
- }
-
- Future _onBackButtonPressed(BuildContext context) async {
- bool? exitApp = await showDialog(
- context: context,
- builder: (context) {
- return AlertDialog(
- backgroundColor: const Color(0xFFFFF3E4),
- title: const Text('Exit App'),
- content: const Text('Do you really want to close the app?'),
- actions: [
- TextButton(
- onPressed: () {
- Navigator.of(context).pop(false);
- },
- child: const Text(
- 'No',
- style: TextStyle(
- color: Color(0xff1B243D),
- ),
- ),
- ),
- TextButton(
- onPressed: () {
- SystemNavigator.pop();
- Navigator.pop(context);
- },
- child: const Text(
- 'Yes',
- style: TextStyle(
- color: Color(0xff1B243D),
- ),
- ),
- )
- ],
- );
- });
- return exitApp ?? false;
- }
-
- Widget Holdings() {
- return Obx(() {
- WidgetsBinding.instance.addPostFrameCallback((_) {
- if (selectedIndex == 1) _unlockbottomsheet();
- });
- return selectedIndex == 0
- ? Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- sizedBoxHeight(20.h),
- HoldingCard(
- text: 'TATA MOTORS',
- content: 'Text',
- ),
- sizedBoxHeight(25.h),
- Table(
- children: [
- TableRow(
- children: [
- TableCell(
- child: Text(
- "Stock Name",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500,
- fontFamily: 'hiragino'),
- ),
- ),
- TableCell(
- child: Text(
- "AVG Price",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500,
- fontFamily: 'hiragino'),
- ),
- ),
- TableCell(
- child: Text(
- "Quantity",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500,
- fontFamily: 'hiragino'),
- ),
- ),
- TableCell(
- child: Text(
- "Exchange",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500,
- fontFamily: 'hiragino'),
- ),
- ),
- ],
- ),
- ],
- ),
- Divider(
- color: Color(0xFF3A3A3A),
- ),
- Expanded(
- child: ListView.separated(
- physics: BouncingScrollPhysics(),
- shrinkWrap: true,
- itemCount: 16,
- itemBuilder: ((context, index) {
- return Table(
- children: [
- TableRow(
- children: [
- TableCell(
- child: Text(
- "TATA MOTORS",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500,
- fontFamily: 'hiragino'),
- ),
- ),
- TableCell(
- child: Text(
- "416.66",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500,
- fontFamily: 'hiragino'),
- ),
- ),
- TableCell(
- child: Text(
- "3",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500,
- fontFamily: 'hiragino'),
- ),
- ),
- TableCell(
- child: Text(
- "BSE",
- textAlign: TextAlign.center,
- style: TextStyle(
- fontSize: 16.sp,
- color: Colors.white,
- fontWeight: FontWeight.w500,
- fontFamily: 'hiragino'),
- ),
- ),
- ],
- ),
- ],
- );
- }),
- separatorBuilder: (BuildContext context, int index) {
- return Divider();
- },
- ),
- ),
- SizedBox(
- height: 30.h,
- )
- ],
- )
- : selectedIndex == 1
- ? Column(
- children: [],
- )
- : Column(
- children: [],
- );
- });
- }
-
- void _unlockbottomsheet() {
- Get.bottomSheet(
- SizedBox(
- height: 200,
- child: commonGlassContainer(
- width: double.infinity,
- height: 200,
- borderradius: 2,
- customWidget: 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'),
- ],
- ),
- ),
- ),
- backgroundColor: Colors.black.withOpacity(0.3),
- );
- }
-
- Widget PortfolioReview() {
- List