From 96c676ac4c601d3e5f9a9a81d952bddbf427ad37 Mon Sep 17 00:00:00 2001 From: Prajna Prayoga Date: Tue, 6 Feb 2024 18:28:11 +0700 Subject: [PATCH] feat: state time machine product view --- assets/images/img-product.png | Bin 0 -> 4657 bytes lib/application/assets/path_assets.dart | 1 + lib/core/utils/number_formatter.dart | 2 +- .../view/invest_type/invest_type_view.dart | 29 ++++++++------ .../view/product/product_view.dart | 36 ++++++++++++------ 5 files changed, 45 insertions(+), 23 deletions(-) create mode 100644 assets/images/img-product.png diff --git a/assets/images/img-product.png b/assets/images/img-product.png new file mode 100644 index 0000000000000000000000000000000000000000..c058b1cc0a9fef79782ad61d9ca73777bd28f4c7 GIT binary patch literal 4657 zcmV-163*?3P)@~0drDELIAGL9O(c600d`2O+f$vv5yPJXtl;CKu{BmnikL(l}iamqYtzuB{fLeO7umG zZG-@#2<1hg+WJ7DeVLMADat3;WvX4L8a^-9u7rd|pKATJ>pQ9)L`$VoebPWu(g2h+ ztJLMIs@)|Ng*2Bw)%L2kQ^~YfLMAkUlr)Gc53BZwR3i)_aidSQ4XXV!tjH8tAc{jY z1gYK*)wTr{DUd))9*DC+C=St+KGilTiFS%ld$szW&87dGwpzUPW?@ zM0EvH@;olpGPNtVJb#AbkXW<+-g&ZKiR6K;N}~0%{pG9z)v9e<#RbPzzvjD7{8#mD zhJ}#0gDCXJO$)t5qxDLn8C{rBpxQVO`aO;Vq%Zw_KsIha$*4oLqO(0MPd$8%d}T$4 zo7*vSVfjqsM6(I>p}3d?ij-~33#Ww;UGb38?NtJ;p8mzl22zzg>xA-Y;1o8(->lx(%t^A{B}H?JrD^Kqwsa)cXl2 z7(BY|e?o{!pdXLdwgadMOo>7h5y)-fVCDBdaPx}@(GCo}{&nkhPPa{oLX#uVDshkp zxgzBurh;LZEzdjl>!(Da$q}e-`Ve9=C~xok?e*5R4*e*bjp*~zKL&)5B(VLpb8aREVAGrlfo`vN=UbdjO%jC5 zD1;rSBwee%_0+o)v#SY75^ueG$?29JxPu5(cb(7i+5$L2k_6VUxk%$yISRz|jU*MU zqIO^z1iHE29fv+(^dZT_MdoFta6R?z_!rYRl2BYs8n_Mu6$AbdLX5;k@F+S)APPj1 z3U-cipvQ4z#dOa1)WUM!yR3@!H$HQF{$AQXtNxe~(q&zmR+F12-iWNIN2?X#$$j#}niVNd|LySf; zNfsqYCZDseskG;VFQ)!X{5;86Z(25x2r`vMMl7*N^YJW@O{S$_NmLpcRw6l0yfX^O zkyfH0vZM?7z_Pghy-KPKT5F4y>RB>fx+LXs$8sxa5WWQhh(_oeWeP1ur*)PvN|baK z5uxBJ1#2{T>@%5y^+pDn@c5TU$CwdBOdx@5?6eLt;aySp)DEJgRCKMTW4TxeQxE&` z2Y3@>Y8@S+2xK$)UC~M})RS2r8I5)4cS`>S=~yNkdtvH<#~zI$MMJ0pO$PlVYZk*C z`BxmJ0e_=f@|7>JbboMV;1nfCf47AYKQE_PbS zIgZ}p+YYg?2V=4Ri_yqEe5A+}5Q*|v6uF4fB@~EU28IQ&h?0FHXV?cKv%5Oo9Rt&rB2;n9@-o;tv!U zn9@-o5&&x|P{PNIC=dyRJ!X{DjW;O}2?c9*cLGy73PeH!>$>vAu0%;hfk>z%tzSfe zNa!S~UqpdO!$7~t^zkAJL>h|e<3$vRG#sm6WN2}L0+C3VC@vVbi3tTFkzo}VI_DTw zT%bTCa!_0_MIs7Bnt~-!N4w|_mvjeYPFqSk+oCPg4h&V~!jS&QJz|kwCYO`Z{`1-% zUrB)ivTjYQJa}iDGy_O<=-9X%R_(xhW3pd0-Ndq{|EMyzC6R{vbyFaXLG)X(IA=A8 z40iX9%8uQaETMG4E_3TB5&J-fv1WN*p8Zjmy!v=i=FijT>9r+FXZ3ndr$C0XWMNkJ zY`&st>7^g69e|3R6K6^300lA}2=tpDbXw`24q&VZ+Y4g~kPc9w1YoCix<~}9z34O; zE22ON0Vy3M(g_{LiYQQmfJ8sNSFgcKj1|RssW=5n7$|q&vRJR9H0`D0ajei$pah~* zWzNPbbIc91rePRUqM$Hh30vQ4X+V8PX zvqH0KTs_b?LZvS184MK2AiPGQB?~iR6833&Nb8~!i2@nK0gvl}P|?%5A2b_LibR17 zWB+@jp6>57P#~KqM4~{3G2n4U>YP^dUjkD^YHJC#*uZfh!?0KHOnMUJxpKJ*9@;**1^$SxtL%=@Scm4dF z?A(1xyz<~3`W<%?7buWHV2Spo7Y02`gvy+W8!Scv1u_swgh``bh{G ic#m0*Sn! z+p&*vfdUx{HVpAn7|{K^pk_gV3}*L1Z<~h9?>6hShA5yw26OnRxACT>h8=ej1r*3& zjwf{6-YB6!gam*B8BCH+UT78+$Y7Q%wbLxBv&>)6imGn^0S6$)f1n5pgc6z-%S zb>asKWGG%wYJfcdJ{Ih>wj@G<3}o$^7SH=-AErFMpg@M<`=kb*732$+X$%4L*d9`8 z+ghKqs^91x72+KVq%n{Ng#uLDzP8f;njTC#W&g(?6ewc;@K{m8pi9XT*6itD?eezt zfqV=FikJm4+e!-22g|{UKUhRaIE+5Qpg;)*$2>Cn1cL%46r^sOUS#wM3I$3akmuXK z?B`iQAwYo=2F?nCJlsez90FJ23b~YYw5BARseas&tA5;)Pf4b>LKt70iQ%#8JK)G@ z^*TIS{n~h`B7?)YighL7fGvEvjc>Sk5(t76J5thKs7lk`0$KczMc885*RJ-N?}J3c zO0xdJvi0%cB_$W%KwX2V^TZ1mFx|BOAsI`T6gEi8RvN= z(?uoHnG0q0F{9LU(7*ZfzG2zjJIZ-(4a8BP8|KGzthK8>ZAB~`(*YpV$#Z2ZN{uAw z^#W1Ot9Id1Sq>i^w`Nr%(omXcNL3W|Zg^m;e#fFGRVETX@BeOI-M=?-Do-^!Rnt9N zrjz~bG?DNzelDCX)3sMsvmc@Cw{u3E%ax5V;L4h3jX{ z0(k&^BZ$Pl5wW2_9ziO1(;}vHqzVP{ft}LvRBJ+k0`RG8GVB*6910W=^owqoPl=KW z1quPoV7O^fmg7YUgaU;GrU0S1zzSWmpgja42la`^)`0oqmp$ZAJGd&pcr6p zT*7{leo&y8U>6rS{YNh-P>kU2Kl;HwPz+(eNFNx1Vha03dO(3<49AP&kK;4bR$!;L znb_k+*rS`o4+zv(?}oO5kQjiJjweP$%lvM~_|k_v`s>}X@Jhb(#RWU1<08Fim_N_) zaqf4FK$t;H;sa7TEYibXbc{xgWywNEfsUYzeWczU*Ir41;)s2k-qBMfIoV$p5;eN9>V?mW#g4E2UI?_e-W{mIEndK9C(hVoMqTZ!n1%(? zHy3@Nchad;s!tsHL5mk~!b04!=hCrn6b@_Gv^w3=2Y2ia&a3tA{POZV$AdJXx=(kG zgRcQ`k-qK4ANHgCO1(QF&l)8W(F410giTBsjl6Tu%7UBpZ72S)1X7`BuQ-ecF$(Di zh9Gd#IA(WKB=iWU^aZoKnbtW|$facc-ED57&j$O0iI7sM zREp~Ip=!mt-}&4{Irb699du=Qw36ttBPmn1PNWL71)%6EG>Cys4SB~ z)WL)RmnoagMkUXN+5Xb;U#%qCp)PC1C3u&DNN*mBSprQO4#YyLhpP?5$YiSWL?Ovc z*y615KAUEzl4o7L8(jS~B@y~V%ftf^>AmCQ@<#6{2VO~2z%ra07i9g20}d*AmOI_# z`lou0M3b>)I;uoE_EAaB43yblBB22}u=x%4@4);&tfI!4PJp?aj*-X4({FGyQ-Ki8 znKIMB2~V>NYn`d};xKcY5Dmd=dc7BUfUg)=8z;hGYmX43KYLZXZ>Dh`Cw$Fs$1kdl z%HAgq%fShWF?Q5h?MEIExUN`>MhJT-FgVU!AS4Dr9ISuas>BJ@9SN;4UlVDSRErEf zLP-1wO&ptsjBF{HR;kN6)ovHcM4C&VR5#6e#a@OTCJi4Nu0^J0wRW>qg(?cgBH_{} n)d+(tcH6~ { children: [ Row( children: [ - Text( - product.name, - style: TextStyle( - fontWeight: FontWeight.bold, - fontSize: 18 + ImageView(image: PathAssets.imgProduct, width: SizeConfig.width * .12,), + SizedBox( + width: 8, + ), + Expanded( + child: Text( + product.name, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 18 + ), ), ) ], @@ -190,16 +197,16 @@ class _InvestTypeViewState extends State { Text('Price/unit', style: TextStyle(color: ColorPalette.slate400, fontWeight: FontWeight.w600),), Row( children: [ + Icon(Icons.trending_up_outlined, size: 18, color: ColorPalette.green400,), + SizedBox( + width: 2, + ), Text( - 'Rp${product.priceUnit.toString()}', + NumberFormatter.numberCurrency(product.priceUnit, 'Rp', 'id_ID'), style: TextStyle( fontWeight: FontWeight.w600 ), ), - SizedBox( - width: 2, - ), - Icon(Icons.trending_up_outlined, size: 18, color: ColorPalette.green400,) ], ) ], @@ -210,7 +217,7 @@ class _InvestTypeViewState extends State { Row( children: [ Text( - product.funds.toString(), + NumberFormatter.compactCurrency(product.funds, 'Rp ', 'id_ID'), style: TextStyle( fontWeight: FontWeight.w600 ), diff --git a/lib/features/dashboard/dashboard_account/view/product/product_view.dart b/lib/features/dashboard/dashboard_account/view/product/product_view.dart index 0b003c2..c1042d8 100644 --- a/lib/features/dashboard/dashboard_account/view/product/product_view.dart +++ b/lib/features/dashboard/dashboard_account/view/product/product_view.dart @@ -71,7 +71,7 @@ class _ProductViewState extends State { double parseValue = double.parse(machineController.text.replaceAll('Rp ', '').replaceAll('.', '')); int machineType = selectedMachineType == 0 ? 12 : 1; setState(() { - estimatedValue = (machineType * (listMachineTime[selectedMachineTime].value) * (parseValue * 10/100)) + parseValue; + estimatedValue = (machineType * (listMachineTime[selectedMachineTime].value) * ((parseValue * machineType) * 10/100)) + parseValue; }); } @@ -87,6 +87,14 @@ class _ProductViewState extends State { super.initState(); } + @override + void dispose() { + machineController.dispose(); + machineGroupButtonController.dispose(); + // TODO: implement dispose + super.dispose(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -133,6 +141,17 @@ class _ProductViewState extends State { ], ), ), + bottomNavigationBar: Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: ButtonView( + name: 'Buy', + onPressed: () { + + }, + height: SizeConfig.height * 0.06, + marginVertical: 16, + ), + ), ); } @@ -142,12 +161,16 @@ class _ProductViewState extends State { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - const Expanded( + Expanded( child: Row( children: [ + ImageView(image: PathAssets.imgProduct, width: SizeConfig.width * .12,), + SizedBox(width: 8), Expanded( child: Text( 'Gemilang Dana Kas Maxima', + maxLines: 2, + overflow: TextOverflow.ellipsis, style: TextStyle( color: Colors.white, fontWeight: FontWeight.w700, @@ -255,15 +278,6 @@ class _ProductViewState extends State { height: 24, ), cardInformation('Document', documentProduct()), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: ButtonView( - name: 'Buy', - onPressed: () { - - }, - ), - ) ], ), ),