From 2494081efcf8f102800248fe2ef839bd3132a3f7 Mon Sep 17 00:00:00 2001 From: Rajshinde046 Date: Fri, 22 Mar 2024 16:55:59 +0530 Subject: [PATCH] portfolio and holdings --- assets/images/empty.json | 1 + lib/Utils/Common/CommonBottomNavigation.dart | 3 +- lib/Utils/Common/MainController.dart | 4 +- lib/Utils/text.dart | 2 + lib/resources/routes/route_name.dart | 3 + lib/view/MainScreen/ExploreUnseen.dart | 3 +- lib/view/MainScreen/Portfolio/Holdings.dart | 665 ++++++++++++++++++ .../MainScreen/Portfolio/PortfolioEmpty.dart | 95 +++ lib/view/MainScreen/ShortTrade.dart | 38 +- pubspec.lock | 40 ++ pubspec.yaml | 1 + 11 files changed, 829 insertions(+), 26 deletions(-) create mode 100644 assets/images/empty.json create mode 100644 lib/view/MainScreen/Portfolio/Holdings.dart create mode 100644 lib/view/MainScreen/Portfolio/PortfolioEmpty.dart diff --git a/assets/images/empty.json b/assets/images/empty.json new file mode 100644 index 0000000..55a25f6 --- /dev/null +++ b/assets/images/empty.json @@ -0,0 +1 @@ +{"nm":"search_empty","ddd":0,"h":290,"w":426,"meta":{"g":"@lottiefiles/toolkit-js 0.33.2"},"layers":[{"ty":4,"nm":"shadow","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[70,100,100],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[50,100,100],"t":30},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[70,100,100],"t":60},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[50,100,100],"t":90},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[70,100,100],"t":120},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[50,100,100],"t":150},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[70,100,100],"t":180},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[50,100,100],"t":210},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[70,100,100],"t":240},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[50,100,100],"t":270},{"s":[70,100,100],"t":295}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[191,145,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":3,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[56.697,6.631],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.6392,0.6392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[-9.651,124.815],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":0,"nm":"main","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[213,145,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[213,145,0],"t":0,"ti":[0,0,0],"to":[0,0.833,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[213,150,0],"t":30,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[213,145,0],"t":60,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[213,150,0],"t":90,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[213,145,0],"t":120,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[213,150,0],"t":150,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[213,145,0],"t":180,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[213,150,0],"t":210,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[213,145,0],"t":240,"ti":[0,-0.833,0],"to":[0,0,0]},{"s":[213,150,0],"t":270}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"w":426,"h":290,"refId":"comp_0","ind":2},{"ty":0,"nm":"decoration1","sr":1,"st":0,"op":569,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[213,289,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.37,"y":-0.029},"i":{"x":0.833,"y":0.866},"s":[0,0,100],"t":0},{"o":{"x":0.333,"y":0},"i":{"x":0.833,"y":1},"s":[100,100,100],"t":40},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[80,80,100],"t":72},{"s":[90,90,100],"t":133}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[213,289,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.39,"y":0.019},"i":{"x":0.981,"y":1.128},"s":[0],"t":8},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[100],"t":40},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[80],"t":72},{"s":[100],"t":73}],"ix":11}},"ef":[],"w":426,"h":290,"refId":"comp_2","ind":3},{"ty":0,"nm":"decoratio2","sr":1,"st":0,"op":569,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[211,291,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,0,100],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[99.442,99.442,100],"t":43},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[84.442,84.442,100],"t":72},{"s":[90,90,100],"t":133}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[211,291,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":41},{"s":[100],"t":72}],"ix":11}},"ef":[],"w":426,"h":290,"refId":"comp_3","ind":4}],"v":"5.5.9","fr":60,"op":180,"ip":0,"assets":[{"nm":"","id":"comp_0","layers":[{"ty":4,"nm":"mouth","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100,100],"t":44},{"s":[105,105,100],"t":68}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[211,145,0],"t":44,"ti":[0,-0.667,0],"to":[0,0.667,0]},{"s":[211,149,0],"t":69}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0.5,0.25],[-1.715,0.372]],"o":[[-13.025,-6.512],[7.5,-1.625]],"v":[[-10,12.25],[-31.75,12.625]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.6039,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"汗","sr":1,"st":0,"op":569,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,-19.333,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[40,40,100],"t":51},{"s":[100,100,100],"t":95}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[248,95.252,0],"t":51,"ti":[0,-1.5,0],"to":[0,1.5,0]},{"s":[248,104.252,0],"t":94}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":51},{"s":[100],"t":95}],"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"汗","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-9.94,0],[0,7.27],[0,0],[0,-7.27]],"o":[[9.94,0],[0,-7.27],[0,0],[0,7.27]],"v":[[0,19],[18,5.84],[0,-19],[-18,5.84]]},"ix":2}},{"ty":"gf","bm":0,"hd":false,"mn":"ADBE Vector Graphic - G-Fill","nm":"Gradient Fill 1","e":{"a":0,"k":[10.208,19],"ix":6},"g":{"p":3,"k":{"a":0,"k":[0,0.6039215686274509,0,0,0.5,0.6862745098039216,0.16862745098039217,0.16862745098039217,1,0.6862745098039216,0.16862745098039217,0.16862745098039217],"ix":9}},"t":1,"a":{"a":0,"k":0},"h":{"a":0,"k":0},"s":{"a":0,"k":[0.019,-9.236],"ix":5},"r":1,"o":{"a":0,"k":100,"ix":10}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"eye","sr":1,"st":0,"op":569,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100,100],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,20,100],"t":3},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100,100],"t":6},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,20,100],"t":9},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100,100],"t":12},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100,100],"t":50},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,20,100],"t":53},{"s":[100,100,100],"t":56}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[-7.064,-11.347,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":92,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"eye","ix":1,"cix":2,"np":2,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[8.466,16.135],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.6039,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3,"parent":1},{"ty":4,"nm":"eye","sr":1,"st":0,"op":569,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100,100],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,20,100],"t":3},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100,100],"t":6},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,20,100],"t":9},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100,100],"t":12},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,100,100],"t":50},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100,20,100],"t":53},{"s":[100,100,100],"t":56}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[-33.767,-11.347,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":92,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"eye","ix":1,"cix":2,"np":2,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[8.466,16.135],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.6039,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4,"parent":1},{"ty":0,"nm":"magnifier","sr":1,"st":0,"op":569,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[213,145,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[213,145,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"w":426,"h":290,"refId":"comp_1","ind":5}]},{"nm":"","id":"comp_1","layers":[{"ty":4,"nm":"Shape Layer 1","sr":1,"st":0,"op":3600,"ip":0,"hd":true,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[213,145,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":2,"it":[{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0.6039,0,0],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"橢圓形","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[190.106,142.222,0],"ix":2},"r":{"a":0,"k":-5,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"橢圓形","ix":1,"cix":2,"np":2,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[99.994,100.091],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.8157,0.8157],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":-40,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"橢圓形","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[192.013,142.223,0],"ix":2},"r":{"a":0,"k":-5,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"橢圓形","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[-26.81,22.62],[22.49,26.96],[26.8,-22.62],[-22.5,-26.95]],"o":[[26.81,-22.62],[-22.49,-26.96],[-26.81,22.62],[22.49,26.96]],"v":[[40.727,48.812],[48.537,-40.958],[-40.723,-48.808],[-48.533,40.952]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.5765,0.1176,0.1176],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"矩形","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[268.024,226.941,0],"ix":2},"r":{"a":0,"k":-5,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"矩形","ix":1,"cix":2,"np":2,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"s":{"a":0,"k":[42.094,74.507],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.6039,0,0],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":-40,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":4,"nm":"矩形","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[238.933,197.25,0],"ix":2},"r":{"a":0,"k":-5,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"矩形","ix":1,"cix":2,"np":2,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"s":{"a":0,"k":[24.446,44.702],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.6392,0.6392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":-40,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":5}]},{"nm":"","id":"comp_2","layers":[{"ty":4,"nm":"合併形狀","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[208,27,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":60},{"s":[360],"t":265}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"合併形狀","ix":1,"cix":2,"np":4,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"s":{"a":0,"k":[16,2],"ix":2}},{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 2","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"s":{"a":0,"k":[2,18],"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":2},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.6392,0.6392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"合併形狀","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[418,107,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":5},{"s":[360],"t":358}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"合併形狀","ix":1,"cix":2,"np":4,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"s":{"a":0,"k":[16,2],"ix":2}},{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 2","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"s":{"a":0,"k":[2,18],"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":2},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.6392,0.6392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"合併形狀","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[31,196,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":5},{"s":[360],"t":281}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"合併形狀","ix":1,"cix":2,"np":4,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"s":{"a":0,"k":[16,2],"ix":2}},{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 2","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"s":{"a":0,"k":[2,18],"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":2},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.6392,0.6392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"橢圓形","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[70,33,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"s":[360],"t":281}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"橢圓形","ix":1,"cix":2,"np":2,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[24,24],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[1,0.6392,0.6392],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4}]},{"nm":"","id":"comp_3","layers":[{"ty":4,"nm":"橢圓形","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[306,9,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"橢圓形","ix":1,"cix":2,"np":2,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[16,16],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[1,0.6392,0.6392],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"橢圓形","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[376,179,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"橢圓形","ix":1,"cix":2,"np":2,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[16,16],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.6392,0.6392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"橢圓形","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[8,115,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"橢圓形","ix":1,"cix":2,"np":2,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[16,16],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.6392,0.6392],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3}]}]} \ No newline at end of file diff --git a/lib/Utils/Common/CommonBottomNavigation.dart b/lib/Utils/Common/CommonBottomNavigation.dart index bedce78..f0cb756 100644 --- a/lib/Utils/Common/CommonBottomNavigation.dart +++ b/lib/Utils/Common/CommonBottomNavigation.dart @@ -6,8 +6,7 @@ import 'package:flutter_svg/svg.dart'; import 'package:glassmorphism/glassmorphism.dart'; import 'package:traderscircuit/Utils/Common/MainController.dart'; -GlassmorphicContainer bottomnavigationbar( - MainController _mainController) { +GlassmorphicContainer bottomnavigationbar(MainController _mainController) { return GlassmorphicContainer( width: double.infinity, height: 83.h, diff --git a/lib/Utils/Common/MainController.dart b/lib/Utils/Common/MainController.dart index 751e2d3..8dfdb71 100644 --- a/lib/Utils/Common/MainController.dart +++ b/lib/Utils/Common/MainController.dart @@ -1,5 +1,7 @@ import 'package:get/get.dart'; import 'package:traderscircuit/view/MainScreen/HomeScreen.dart'; +import 'package:traderscircuit/view/MainScreen/Portfolio/Holdings.dart'; +import 'package:traderscircuit/view/MainScreen/Portfolio/PortfolioEmpty.dart'; import 'package:traderscircuit/view/MainScreen/ShortTrade.dart'; class MainController extends GetxController { @@ -8,7 +10,7 @@ class MainController extends GetxController { var currentTab = [ const HomeScreen(), const ShortTrade(), - const HomeScreen(), + const Holdings(), ].obs; void updateTab(int index) { diff --git a/lib/Utils/text.dart b/lib/Utils/text.dart index 413446d..3b9a021 100644 --- a/lib/Utils/text.dart +++ b/lib/Utils/text.dart @@ -279,6 +279,8 @@ Widget text14W400_979797(String text) { ); } + + Widget text12W400_979797(String text) { return Text( text, diff --git a/lib/resources/routes/route_name.dart b/lib/resources/routes/route_name.dart index 341676a..762b008 100644 --- a/lib/resources/routes/route_name.dart +++ b/lib/resources/routes/route_name.dart @@ -39,4 +39,7 @@ class RouteName { static const String termsandcondition = '/termsandcondition'; static const String privacypolicy = '/privacypolicy'; static const String aboutus = '/aboutus'; + + + } diff --git a/lib/view/MainScreen/ExploreUnseen.dart b/lib/view/MainScreen/ExploreUnseen.dart index 5b73578..7a8bcb3 100644 --- a/lib/view/MainScreen/ExploreUnseen.dart +++ b/lib/view/MainScreen/ExploreUnseen.dart @@ -27,9 +27,10 @@ class _ExploreUnseenState extends State { @override Widget build(BuildContext context) { return Scaffold( + drawerEnableOpenDragGesture: false, key: _scaffoldKey1, backgroundColor: Colors.black, - drawer: Container(width: 320.w, child: SideMenu()), + drawer: Container(child: SideMenu()), extendBody: true, appBar: CommonAppbar(titleTxt: ''), diff --git a/lib/view/MainScreen/Portfolio/Holdings.dart b/lib/view/MainScreen/Portfolio/Holdings.dart new file mode 100644 index 0000000..f42d4f7 --- /dev/null +++ b/lib/view/MainScreen/Portfolio/Holdings.dart @@ -0,0 +1,665 @@ +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/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 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, + ), + ), + ), + ), + 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), + ); + } + + 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: 'manrope'), + ), + ), + TableCell( + child: Text( + "AVG Price", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16.sp, + color: Colors.white, + fontWeight: FontWeight.w500, + fontFamily: 'manrope'), + ), + ), + TableCell( + child: Text( + "Quantity", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16.sp, + color: Colors.white, + fontWeight: FontWeight.w500, + fontFamily: 'manrope'), + ), + ), + TableCell( + child: Text( + "Exchange", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16.sp, + color: Colors.white, + fontWeight: FontWeight.w500, + fontFamily: 'manrope'), + ), + ), + ], + ), + ], + ), + 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: 'manrope'), + ), + ), + TableCell( + child: Text( + "416.66", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16.sp, + color: Colors.white, + fontWeight: FontWeight.w500, + fontFamily: 'manrope'), + ), + ), + TableCell( + child: Text( + "3", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16.sp, + color: Colors.white, + fontWeight: FontWeight.w500, + fontFamily: 'manrope'), + ), + ), + TableCell( + child: Text( + "BSE", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16.sp, + color: Colors.white, + fontWeight: FontWeight.w500, + fontFamily: 'manrope'), + ), + ), + ], + ), + ], + ); + }), + 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> cardSwing = [ + { + 'text': 'Performance Overview:', + 'content': + 'Your portfolio has generated a total return of 15% over the past six months, outperforming the S&P 500 index by 5%.', + }, + { + 'text': 'Asset Allocation:', + 'content': + 'Your portfolio is well-diversified, with 60% allocated to equities, 30% to bonds, and 10% to cash equivalents.', + }, + { + 'text': 'Individual Holdings Analysis:', + 'content': + 'Your investment in Company XYZ has performed exceptionally well, with a 25% increase in share price since purchase, driven by strong quarterly earnings.', + }, + ]; + + return SingleChildScrollView( + child: Column( + children: [ + sizedBoxHeight(20.h), + Obx(() { + return selectedIndex == 0 + ? Column( + children: List.generate(cardSwing.length, (index) { + return Column( + children: [ + PortfolioCard( + text: cardSwing[index]['text']!, + content: cardSwing[index]['content']!, + ), + sizedBoxHeight(20.h) + ], + ); + }), + ) + : selectedIndex == 1 + ? Column( + children: List.generate(cardSwing.length, (index) { + return Column( + children: [ + PortfolioCard( + text: cardSwing[index]['text']!, + content: cardSwing[index]['content']!, + ), + sizedBoxHeight(20.h) + ], + ); + }), + ) + : Column( + children: List.generate(cardSwing.length, (index) { + return Column( + children: [ + PortfolioCard( + text: cardSwing[index]['text']!, + content: cardSwing[index]['content']!, + ), + sizedBoxHeight(20.h) + ], + ); + }), + ); + }), + sizedBoxHeight(200.h) + ], + ), + ); + } + + Widget PortfolioCard({ + required String text, + required String content, + }) { + return commonGlassContainer( + width: double.infinity, + height: 166.h, + borderradius: 8, + customWidget: Column( + children: [ + Padding( + padding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 16.w), + child: Row( + children: [ + Container( + decoration: BoxDecoration( + color: Color(0xFF6C0000), + borderRadius: BorderRadius.circular(2), + ), + height: 25.h, + width: 4.w, + ), + sizedBoxWidth(15.w), + text18W600(text), + Spacer(), + ], + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 18), + child: text16W400(content), + ) + ], + ), + ); + } + + Widget HoldingCard({ + required String text, + required String content, + }) { + return commonGlassContainer( + width: double.infinity, + height: 166.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), + text18W600(text), + Spacer(), + ], + ), + ), + 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('Portfolio Value'), + sizedBoxHeight(5.h), + SizedBox(width: 150.w, child: text15W600("₹ 40,000")) + ], + ), + sizedBoxWidth(30.w), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + text14W400_979797('%P/L'), + sizedBoxHeight(5.h), + text14W400_00FF19("-36.006%") + ], + ) + ], + ), + ], + ), + ) + ], + ), + ); + } + + Widget topContainer(String text, int index) { + return Obx(() { + return selectedIndex.value == index + ? Container( + height: 40.h, + width: 126.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(5), + color: Color(0Xff6C0000), + ), + child: Center(child: text16W500(text)), + ) + : commonGlassContainer( + width: 126.w, + height: 40.h, + borderradius: 5, + customWidget: Center(child: text16W400(text)), + ); + }); + } +} + +class HoldingsTabBar 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(8.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: 'Holdings', + ), + Tab( + text: 'Portfolio Reviews', + ), + ]), + ); + } +} + +class PortfolioTabBar extends StatelessWidget { + // Set the desired height + + @override + Widget build(BuildContext context) { + return TabBar( + tabAlignment: TabAlignment.start, + isScrollable: true, + dividerColor: Colors.transparent, + labelStyle: TextStyle( + fontSize: 18.sp, + color: Colors.white, + fontWeight: FontWeight.w500, + fontFamily: 'manrope'), + indicatorSize: TabBarIndicatorSize.tab, + indicatorWeight: 2, + indicatorColor: const Color(0xff6C0000), + labelColor: Colors.white, + unselectedLabelColor: const Color(0xFF464646), + overlayColor: MaterialStateProperty.all(const Color(0xFFFFFFFF)), + tabs: const [ + Tab( + text: 'Portfolio 1', + ), + Tab( + text: 'Portfolio 2', + ), + Tab( + text: 'Portfolio 3', + ), + Tab( + text: 'Portfolio 4', + ), + Tab( + text: 'Portfolio 5', + ), + ]); + } +} diff --git a/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart b/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart new file mode 100644 index 0000000..ac8465d --- /dev/null +++ b/lib/view/MainScreen/Portfolio/PortfolioEmpty.dart @@ -0,0 +1,95 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:lottie/lottie.dart'; +import 'package:traderscircuit/Utils/Common/CommonBottomNavigation.dart'; +import 'package:traderscircuit/Utils/Common/commonBotton.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 Portfolio extends StatefulWidget { + const Portfolio({super.key}); + + @override + State createState() => _PortfolioState(); +} + +class _PortfolioState extends State { + GlobalKey _scaffoldKey1 = GlobalKey(); + List containerTexts = ["Swing Trade", "Multibagger", "Options"]; + final selectedIndex = 0.obs; + @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, + ), + ), + ), + ), + body: Stack( + children: [ + CommonBlurLeft(), + CommonBlurRight(), + Stack( + children: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 16), + child: Column( + children: [ + Row( + children: [ + text25W600("My Portfolio"), + ], + ), + SizedBox( + height: 30.h, + ), + Text( + 'Please click the "Add" button below to add a portfolio.', + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 16.sp, + fontWeight: FontWeight.w400, + ), + ), + Spacer(), + LottieBuilder.asset( + "assets/images/empty.json", + width: 200.w, + height: 200.h, + ), + Spacer(), + CommonBtn(text: "Add"), + Spacer(), + ], + ), + ), + ], + ) + ], + ), + bottomNavigationBar: bottomnavigationbar(mainController), + ); + } +} diff --git a/lib/view/MainScreen/ShortTrade.dart b/lib/view/MainScreen/ShortTrade.dart index c6693d2..1fdc152 100644 --- a/lib/view/MainScreen/ShortTrade.dart +++ b/lib/view/MainScreen/ShortTrade.dart @@ -236,30 +236,24 @@ class _ShortTradeState extends State { void _unlockbottomsheet() { Get.bottomSheet( SizedBox( - height: 500, + height: 200, child: 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, - ) - ], - ), + 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'), + ], ), ), ), diff --git a/pubspec.lock b/pubspec.lock index 950f7f8..6c503b9 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,14 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + archive: + dependency: transitive + description: + name: archive + sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" + url: "https://pub.dev" + source: hosted + version: "3.4.10" args: dependency: transitive description: @@ -65,6 +73,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.4" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" cupertino_icons: dependency: "direct main" description: @@ -208,6 +232,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" + lottie: + dependency: "direct main" + description: + name: lottie + sha256: ce2bb2605753915080e4ee47f036a64228c88dc7f56f7bc1dbe912d75b55b1e2 + url: "https://pub.dev" + source: hosted + version: "3.1.0" matcher: dependency: transitive description: @@ -312,6 +344,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" + url: "https://pub.dev" + source: hosted + version: "3.7.4" shared_preferences: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index bc3d451..ecb4918 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -43,6 +43,7 @@ dependencies: pin_code_fields: ^8.0.1 fluttertoast: ^8.0.9 dropdown_button2: ^2.1.4 + lottie: ^3.1.0 dev_dependencies: flutter_test: