Feat: update progress slicing design home page done
This commit is contained in:
parent
ea005fba9c
commit
694f8b2a08
|
@ -332,7 +332,7 @@
|
||||||
"languageVersion": "3.4"
|
"languageVersion": "3.4"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"generated": "2025-02-28T02:58:44.585666Z",
|
"generated": "2025-03-03T07:35:04.273909Z",
|
||||||
"generator": "pub",
|
"generator": "pub",
|
||||||
"generatorVersion": "3.5.0",
|
"generatorVersion": "3.5.0",
|
||||||
"flutterRoot": "file:///D:/Flutter/flutter_sdk/flutter_3.24.0",
|
"flutterRoot": "file:///D:/Flutter/flutter_sdk/flutter_3.24.0",
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M8.37817 1.50146C7.70359 1.5147 7.11587 2.08186 7.12573 2.78759L7.17041 6.09082L5.15918 5.42211L4.66113 3.85254C4.5311 3.44358 4.20012 3.12621 3.78516 3.01464H3.78442C3.07533 2.82463 2.33754 3.29696 2.21265 4.02026L1.91235 5.76489C1.69899 7.00477 2.42924 8.22377 3.62329 8.61987L13.8149 12.0015C14.7294 12.305 15.7326 11.8021 16.0356 10.8874H16.0349C16.3384 9.97329 15.8363 8.97103 14.9224 8.66748L11.4749 7.52197L9.58813 2.33569C9.44027 1.92907 9.093 1.6248 8.67114 1.53076C8.57272 1.50882 8.47454 1.49957 8.37817 1.50146ZM8.35474 2.62719C8.37629 2.62319 8.40042 2.62358 8.42651 2.62939C8.47566 2.64035 8.51338 2.67308 8.53052 2.72021V2.72094L10.511 8.1621C10.5401 8.24183 10.5868 8.31394 10.6477 8.37305C10.7085 8.43215 10.782 8.47672 10.8625 8.50341L14.5679 9.73535C14.9049 9.84729 15.0798 10.1954 14.9678 10.533V10.5337C14.8561 10.8708 14.5068 11.0456 14.1694 10.9336L3.97778 7.552C3.30434 7.3286 2.90085 6.65494 3.02124 5.95532L3.32153 4.21142C3.33685 4.12272 3.4065 4.07835 3.49292 4.10156C3.53891 4.1139 3.57421 4.14702 3.58887 4.19311L4.17334 6.03515C4.20016 6.11986 4.24667 6.19701 4.30905 6.26028C4.37143 6.32355 4.44791 6.37114 4.53223 6.39917L7.56665 7.40771C7.65178 7.43597 7.74244 7.44347 7.83106 7.42957C7.91968 7.41567 8.00368 7.38078 8.07608 7.32781C8.14847 7.27484 8.20714 7.20533 8.24721 7.12507C8.28728 7.04482 8.30757 6.95614 8.3064 6.86645L8.25 2.77221C8.24888 2.69256 8.29006 2.6392 8.35474 2.62719ZM2.8125 14.25C2.73796 14.2489 2.66396 14.2627 2.59479 14.2905C2.52562 14.3183 2.46266 14.3596 2.40958 14.4119C2.3565 14.4642 2.31435 14.5266 2.28558 14.5954C2.2568 14.6641 2.24199 14.738 2.24199 14.8125C2.24199 14.887 2.2568 14.9608 2.28558 15.0296C2.31435 15.0984 2.3565 15.1607 2.40958 15.2131C2.46266 15.2654 2.52562 15.3067 2.59479 15.3345C2.66396 15.3623 2.73796 15.376 2.8125 15.375H15.1875C15.262 15.376 15.336 15.3623 15.4052 15.3345C15.4744 15.3067 15.5373 15.2654 15.5904 15.2131C15.6435 15.1607 15.6857 15.0984 15.7144 15.0296C15.7432 14.9608 15.758 14.887 15.758 14.8125C15.758 14.738 15.7432 14.6641 15.7144 14.5954C15.6857 14.5266 15.6435 14.4642 15.5904 14.4119C15.5373 14.3596 15.4744 14.3183 15.4052 14.2905C15.336 14.2627 15.262 14.2489 15.1875 14.25H2.8125Z" fill="white"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
|
@ -0,0 +1,3 @@
|
||||||
|
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4.99365 2.25083C4.78531 2.25345 4.5774 2.30761 4.39087 2.4127C3.69403 2.80546 3.54224 3.7774 4.08545 4.3646L6.46289 6.93394L4.78198 7.66856L3.38672 6.84971C3.01886 6.63348 2.56426 6.61999 2.18408 6.81382C1.53537 7.14428 1.30546 7.98146 1.69336 8.59727L2.6228 10.0731C3.28575 11.1253 4.62874 11.5368 5.76782 11.0384L15.4578 6.79771H15.4585C16.3318 6.41524 16.7361 5.3811 16.3535 4.50742C15.9714 3.6343 14.9383 3.22965 14.0647 3.61167L10.6707 5.09483L5.60083 2.39805H5.6001C5.41084 2.29747 5.20176 2.24822 4.99365 2.25083ZM5.00757 3.3751C5.02954 3.37488 5.05147 3.38027 5.07202 3.39121L10.3828 6.21543C10.4577 6.25527 10.5405 6.27767 10.6253 6.28097C10.71 6.28427 10.7944 6.26837 10.8721 6.23447L14.5151 4.64219C14.8318 4.50371 15.1846 4.64222 15.323 4.9586C15.4616 5.27517 15.3235 5.62841 15.0066 5.76719L5.31665 10.0079C4.67974 10.2866 3.94477 10.0613 3.57422 9.47324L2.64478 7.99815C2.60004 7.92712 2.61995 7.85448 2.69458 7.8165L2.69531 7.81577C2.73438 7.79585 2.779 7.79715 2.8169 7.81943V7.82017L4.45972 8.78403C4.53629 8.8289 4.6224 8.855 4.711 8.86022C4.79959 8.86544 4.88817 8.84962 4.96948 8.81406L7.63843 7.64805C7.7206 7.61208 7.79298 7.55698 7.84952 7.48735C7.90607 7.41772 7.94515 7.33558 7.9635 7.24778C7.98185 7.15998 7.97894 7.06906 7.955 6.98262C7.93107 6.89617 7.88682 6.8167 7.82593 6.75083L4.91089 3.60068C4.84285 3.52714 4.8562 3.44166 4.94312 3.39268C4.96359 3.38114 4.9856 3.37532 5.00757 3.3751ZM2.8125 14.2501C2.73796 14.249 2.66396 14.2628 2.59479 14.2906C2.52562 14.3184 2.46266 14.3597 2.40958 14.412C2.3565 14.4643 2.31435 14.5267 2.28558 14.5955C2.2568 14.6643 2.24199 14.7381 2.24199 14.8126C2.24199 14.8871 2.2568 14.9609 2.28558 15.0297C2.31435 15.0985 2.3565 15.1609 2.40958 15.2132C2.46266 15.2655 2.52562 15.3068 2.59479 15.3346C2.66396 15.3624 2.73796 15.3762 2.8125 15.3751H15.1875C15.262 15.3762 15.336 15.3624 15.4052 15.3346C15.4744 15.3068 15.5373 15.2655 15.5904 15.2132C15.6435 15.1609 15.6857 15.0985 15.7144 15.0297C15.7432 14.9609 15.758 14.8871 15.758 14.8126C15.758 14.7381 15.7432 14.6643 15.7144 14.5955C15.6857 14.5267 15.6435 14.4643 15.5904 14.412C15.5373 14.3597 15.4744 14.3184 15.4052 14.2906C15.336 14.2628 15.262 14.249 15.1875 14.2501H2.8125Z" fill="white"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
|
@ -0,0 +1,3 @@
|
||||||
|
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M16.0327 1.33325C15.7749 1.3252 15.5239 1.41711 15.3322 1.58976C15.3322 1.58976 10.3269 5.99992 4.3335 5.99992C4.06829 5.99994 3.81395 6.10531 3.62642 6.29284C3.43889 6.48037 3.33352 6.73471 3.3335 6.99992V15.1731C3.3335 19.6251 5.39311 26.9509 15.6121 31.2551C15.735 31.3068 15.8669 31.3335 16.0002 31.3335C16.1334 31.3335 16.2654 31.3068 16.3882 31.2551C26.6072 26.9509 28.6668 19.6251 28.6668 15.1731V6.99992C28.6668 6.73471 28.5614 6.48037 28.3739 6.29284C28.1864 6.10531 27.932 5.99994 27.6668 5.99992C21.6734 5.99992 16.6681 1.58976 16.6681 1.58976C16.4931 1.4321 16.2681 1.34126 16.0327 1.33325ZM16.0002 3.61841C17.3755 4.72416 21.4077 7.55804 26.6668 7.91658V15.1731C26.6668 19.0013 25.1958 25.177 16.0002 29.2174C6.80453 25.177 5.3335 19.0013 5.3335 15.1731V7.91658C10.5927 7.55804 14.6249 4.72416 16.0002 3.61841ZM20.9806 11.9908C20.7209 11.9984 20.4744 12.1067 20.2931 12.2929L14.3335 18.2525L11.7072 15.6262C11.615 15.5302 11.5047 15.4536 11.3826 15.4008C11.2604 15.3481 11.129 15.3202 10.996 15.3188C10.8629 15.3175 10.7309 15.3427 10.6078 15.393C10.4846 15.4433 10.3727 15.5176 10.2786 15.6117C10.1845 15.7058 10.1102 15.8177 10.0599 15.9409C10.0096 16.064 9.98439 16.196 9.98574 16.329C9.98709 16.4621 10.015 16.5935 10.0678 16.7156C10.1205 16.8378 10.1972 16.9481 10.2931 17.0403L13.6265 20.3736C13.814 20.5611 14.0683 20.6664 14.3335 20.6664C14.5987 20.6664 14.853 20.5611 15.0405 20.3736L21.7072 13.7069C21.8515 13.5664 21.95 13.3857 21.9898 13.1883C22.0296 12.9909 22.0089 12.786 21.9304 12.6006C21.8519 12.4151 21.7192 12.2577 21.5497 12.1489C21.3803 12.0401 21.1819 11.985 20.9806 11.9908Z" fill="white"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1,3 @@
|
||||||
|
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12.5566 1.86914C12.4447 1.86917 12.3353 1.90259 12.2425 1.96514C12.1496 2.02769 12.0775 2.11651 12.0355 2.22025C11.9934 2.32399 11.9832 2.43792 12.0063 2.54747C12.0293 2.65702 12.0845 2.7572 12.1648 2.83521L14.2046 4.875H2.4375C2.36296 4.87395 2.28896 4.88772 2.21979 4.91551C2.15062 4.94331 2.08766 4.98457 2.03458 5.03691C1.9815 5.08925 1.93935 5.15161 1.91058 5.22038C1.8818 5.28915 1.86699 5.36295 1.86699 5.4375C1.86699 5.51205 1.8818 5.58585 1.91058 5.65462C1.93935 5.72339 1.9815 5.78575 2.03458 5.83809C2.08766 5.89043 2.15062 5.93169 2.21979 5.95949C2.28896 5.98728 2.36296 6.00105 2.4375 6H14.2046L12.1648 8.03979C12.1108 8.09163 12.0677 8.15371 12.038 8.22241C12.0083 8.2911 11.9926 8.36503 11.9919 8.43987C11.9911 8.5147 12.0053 8.58894 12.0336 8.65822C12.0619 8.72751 12.1037 8.79046 12.1566 8.84337C12.2095 8.89629 12.2725 8.93812 12.3418 8.96641C12.4111 8.9947 12.4853 9.00888 12.5601 9.00811C12.635 9.00735 12.7089 8.99167 12.7776 8.96198C12.8463 8.93229 12.9084 8.88919 12.9602 8.83521L15.9602 5.83521C16.0657 5.72971 16.1249 5.58666 16.1249 5.4375C16.1249 5.28834 16.0657 5.14529 15.9602 5.03979L12.9602 2.03979C12.9078 1.9858 12.845 1.94288 12.7757 1.91356C12.7064 1.88425 12.6319 1.86914 12.5566 1.86914ZM5.42651 8.99487C5.28043 8.99913 5.14174 9.06007 5.0398 9.16479L2.0398 12.1648C1.93435 12.2703 1.87511 12.4133 1.87511 12.5625C1.87511 12.7117 1.93435 12.8547 2.0398 12.9602L5.0398 15.9602C5.09163 16.0142 5.15371 16.0573 5.22241 16.087C5.2911 16.1167 5.36503 16.1324 5.43987 16.1331C5.5147 16.1339 5.58894 16.1197 5.65822 16.0914C5.72751 16.0631 5.79046 16.0213 5.84337 15.9684C5.89629 15.9155 5.93812 15.8525 5.96641 15.7832C5.9947 15.7139 6.00888 15.6397 6.00812 15.5649C6.00735 15.49 5.99167 15.4161 5.96198 15.3474C5.93229 15.2787 5.88919 15.2166 5.83521 15.1648L3.79541 13.125H15.5625C15.637 13.1261 15.711 13.1123 15.7802 13.0845C15.8494 13.0567 15.9123 13.0154 15.9654 12.9631C16.0185 12.9108 16.0607 12.8484 16.0894 12.7796C16.1182 12.7108 16.133 12.637 16.133 12.5625C16.133 12.488 16.1182 12.4142 16.0894 12.3454C16.0607 12.2766 16.0185 12.2142 15.9654 12.1619C15.9123 12.1096 15.8494 12.0683 15.7802 12.0405C15.711 12.0127 15.637 11.9989 15.5625 12H3.79541L5.83521 9.96021C5.91636 9.88117 5.97176 9.77948 5.99416 9.66844C6.01656 9.5574 6.00491 9.44219 5.96075 9.33787C5.91659 9.23356 5.84196 9.14501 5.74664 9.08381C5.65132 9.02261 5.53974 8.99161 5.42651 8.99487Z" fill="white"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 29 KiB |
|
@ -1 +1 @@
|
||||||
#.env
asset.envassets/icons/ic_account.svg
assetassets/icons/ic_account.svg!assets/icons/ic_boarding_pass.svg
asset!assets/icons/ic_boarding_pass.svg(assets/icons/ic_boarding_pass_filled.svg
asset(assets/icons/ic_boarding_pass_filled.svgassets/icons/ic_calendar.svg
assetassets/icons/ic_calendar.svg!assets/icons/ic_data_transfer.svg
asset!assets/icons/ic_data_transfer.svgassets/icons/ic_edit.svg
assetassets/icons/ic_edit.svgassets/icons/ic_email.svg
assetassets/icons/ic_email.svgassets/icons/ic_flight_seat.svg
assetassets/icons/ic_flight_seat.svg&assets/icons/ic_flight_seat_filled.svg
asset&assets/icons/ic_flight_seat_filled.svgassets/icons/ic_home.svg
assetassets/icons/ic_home.svgassets/icons/ic_home_filled.svg
assetassets/icons/ic_home_filled.svgassets/icons/ic_left.svg
assetassets/icons/ic_left.svgassets/icons/ic_less_than.svg
assetassets/icons/ic_less_than.svgassets/icons/ic_more _than.svg
assetassets/icons/ic_more _than.svg assets/icons/ic_notification.svg
asset assets/icons/ic_notification.svg!assets/icons/ic_order_history.svg
asset!assets/icons/ic_order_history.svgassets/icons/ic_padlock.svg
assetassets/icons/ic_padlock.svgassets/icons/ic_passenger.svg
assetassets/icons/ic_passenger.svg assets/icons/ic_plane_filled.svg
asset assets/icons/ic_plane_filled.svgassets/icons/ic_plane_left.svg
assetassets/icons/ic_plane_left.svgassets/icons/ic_plane_right.svg
assetassets/icons/ic_plane_right.svgassets/icons/ic_profile.svg
assetassets/icons/ic_profile.svg"assets/icons/ic_profile_filled.svg
asset"assets/icons/ic_profile_filled.svgassets/icons/ic_right.svg
assetassets/icons/ic_right.svgassets/icons/ic_search.svg
assetassets/icons/ic_search.svgassets/icons/ic_sent.svg
assetassets/icons/ic_sent.svgassets/images/banner.png
assetassets/images/banner.pngassets/images/citilink.svg
assetassets/images/citilink.svg!assets/images/divider_custome.svg
asset!assets/images/divider_custome.svg"assets/images/ilustrasi_flight.svg
asset"assets/images/ilustrasi_flight.svgassets/images/ornamen.svg
assetassets/images/ornamen.svgassets/images/taxi_female.svg
assetassets/images/taxi_female.svgassets/images/taxi_homework.svg
assetassets/images/taxi_homework.svg2packages/cupertino_icons/assets/CupertinoIcons.ttf
asset2packages/cupertino_icons/assets/CupertinoIcons.ttf
|
(.env
asset.envassets/icons/ic_account.svg
assetassets/icons/ic_account.svg$assets/icons/ic_airplane_landing.svg
asset$assets/icons/ic_airplane_landing.svg%assets/icons/ic_airplane_take_off.svg
asset%assets/icons/ic_airplane_take_off.svg!assets/icons/ic_boarding_pass.svg
asset!assets/icons/ic_boarding_pass.svg(assets/icons/ic_boarding_pass_filled.svg
asset(assets/icons/ic_boarding_pass_filled.svgassets/icons/ic_calendar.svg
assetassets/icons/ic_calendar.svg!assets/icons/ic_data_transfer.svg
asset!assets/icons/ic_data_transfer.svgassets/icons/ic_edit.svg
assetassets/icons/ic_edit.svgassets/icons/ic_email.svg
assetassets/icons/ic_email.svgassets/icons/ic_flight_seat.svg
assetassets/icons/ic_flight_seat.svg&assets/icons/ic_flight_seat_filled.svg
asset&assets/icons/ic_flight_seat_filled.svgassets/icons/ic_home.svg
assetassets/icons/ic_home.svgassets/icons/ic_home_filled.svg
assetassets/icons/ic_home_filled.svgassets/icons/ic_left.svg
assetassets/icons/ic_left.svgassets/icons/ic_less_than.svg
assetassets/icons/ic_less_than.svgassets/icons/ic_more _than.svg
assetassets/icons/ic_more _than.svg assets/icons/ic_notification.svg
asset assets/icons/ic_notification.svg!assets/icons/ic_order_history.svg
asset!assets/icons/ic_order_history.svgassets/icons/ic_padlock.svg
assetassets/icons/ic_padlock.svgassets/icons/ic_passenger.svg
assetassets/icons/ic_passenger.svg assets/icons/ic_plane_filled.svg
asset assets/icons/ic_plane_filled.svgassets/icons/ic_plane_left.svg
assetassets/icons/ic_plane_left.svgassets/icons/ic_plane_right.svg
assetassets/icons/ic_plane_right.svgassets/icons/ic_profile.svg
assetassets/icons/ic_profile.svg"assets/icons/ic_profile_filled.svg
asset"assets/icons/ic_profile_filled.svgassets/icons/ic_protect.svg
assets/icons/ic_right.svg
assets/icons/ic_right.svg
assetassets/icons/ic_right.svgassets/icons/ic_search.svg
assetassets/icons/ic_search.svgassets/icons/ic_sent.svg
assetassets/icons/ic_sent.svgassets/icons/ic_transit.svg
assetassets/icons/ic_transit.svgassets/images/banner.png
assetassets/images/banner.pngassets/images/citilink.svg
assetassets/images/citilink.svg!assets/images/divider_custome.svg
asset!assets/images/divider_custome.svg"assets/images/ilustrasi_flight.svg
asset"assets/images/ilustrasi_flight.svgassets/images/ornamen.svg
assetassets/images/ornamen.svgassets/images/qris.svg
assetassets/images/qris.svgassets/images/taxi_female.svg
assetassets/images/taxi_female.svgassets/images/taxi_homework.svg
assetassets/images/taxi_homework.svg2packages/cupertino_icons/assets/CupertinoIcons.ttf
asset2packages/cupertino_icons/assets/CupertinoIcons.ttf
|
|
@ -1 +1 @@
|
||||||
{".env":[".env"],"assets/icons/ic_account.svg":["assets/icons/ic_account.svg"],"assets/icons/ic_boarding_pass.svg":["assets/icons/ic_boarding_pass.svg"],"assets/icons/ic_boarding_pass_filled.svg":["assets/icons/ic_boarding_pass_filled.svg"],"assets/icons/ic_calendar.svg":["assets/icons/ic_calendar.svg"],"assets/icons/ic_data_transfer.svg":["assets/icons/ic_data_transfer.svg"],"assets/icons/ic_edit.svg":["assets/icons/ic_edit.svg"],"assets/icons/ic_email.svg":["assets/icons/ic_email.svg"],"assets/icons/ic_flight_seat.svg":["assets/icons/ic_flight_seat.svg"],"assets/icons/ic_flight_seat_filled.svg":["assets/icons/ic_flight_seat_filled.svg"],"assets/icons/ic_home.svg":["assets/icons/ic_home.svg"],"assets/icons/ic_home_filled.svg":["assets/icons/ic_home_filled.svg"],"assets/icons/ic_left.svg":["assets/icons/ic_left.svg"],"assets/icons/ic_less_than.svg":["assets/icons/ic_less_than.svg"],"assets/icons/ic_more _than.svg":["assets/icons/ic_more _than.svg"],"assets/icons/ic_notification.svg":["assets/icons/ic_notification.svg"],"assets/icons/ic_order_history.svg":["assets/icons/ic_order_history.svg"],"assets/icons/ic_padlock.svg":["assets/icons/ic_padlock.svg"],"assets/icons/ic_passenger.svg":["assets/icons/ic_passenger.svg"],"assets/icons/ic_plane_filled.svg":["assets/icons/ic_plane_filled.svg"],"assets/icons/ic_plane_left.svg":["assets/icons/ic_plane_left.svg"],"assets/icons/ic_plane_right.svg":["assets/icons/ic_plane_right.svg"],"assets/icons/ic_profile.svg":["assets/icons/ic_profile.svg"],"assets/icons/ic_profile_filled.svg":["assets/icons/ic_profile_filled.svg"],"assets/icons/ic_right.svg":["assets/icons/ic_right.svg"],"assets/icons/ic_search.svg":["assets/icons/ic_search.svg"],"assets/icons/ic_sent.svg":["assets/icons/ic_sent.svg"],"assets/images/banner.png":["assets/images/banner.png"],"assets/images/citilink.svg":["assets/images/citilink.svg"],"assets/images/divider_custome.svg":["assets/images/divider_custome.svg"],"assets/images/ilustrasi_flight.svg":["assets/images/ilustrasi_flight.svg"],"assets/images/ornamen.svg":["assets/images/ornamen.svg"],"assets/images/taxi_female.svg":["assets/images/taxi_female.svg"],"assets/images/taxi_homework.svg":["assets/images/taxi_homework.svg"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
|
{".env":[".env"],"assets/icons/ic_account.svg":["assets/icons/ic_account.svg"],"assets/icons/ic_airplane_landing.svg":["assets/icons/ic_airplane_landing.svg"],"assets/icons/ic_airplane_take_off.svg":["assets/icons/ic_airplane_take_off.svg"],"assets/icons/ic_boarding_pass.svg":["assets/icons/ic_boarding_pass.svg"],"assets/icons/ic_boarding_pass_filled.svg":["assets/icons/ic_boarding_pass_filled.svg"],"assets/icons/ic_calendar.svg":["assets/icons/ic_calendar.svg"],"assets/icons/ic_data_transfer.svg":["assets/icons/ic_data_transfer.svg"],"assets/icons/ic_edit.svg":["assets/icons/ic_edit.svg"],"assets/icons/ic_email.svg":["assets/icons/ic_email.svg"],"assets/icons/ic_flight_seat.svg":["assets/icons/ic_flight_seat.svg"],"assets/icons/ic_flight_seat_filled.svg":["assets/icons/ic_flight_seat_filled.svg"],"assets/icons/ic_home.svg":["assets/icons/ic_home.svg"],"assets/icons/ic_home_filled.svg":["assets/icons/ic_home_filled.svg"],"assets/icons/ic_left.svg":["assets/icons/ic_left.svg"],"assets/icons/ic_less_than.svg":["assets/icons/ic_less_than.svg"],"assets/icons/ic_more _than.svg":["assets/icons/ic_more _than.svg"],"assets/icons/ic_notification.svg":["assets/icons/ic_notification.svg"],"assets/icons/ic_order_history.svg":["assets/icons/ic_order_history.svg"],"assets/icons/ic_padlock.svg":["assets/icons/ic_padlock.svg"],"assets/icons/ic_passenger.svg":["assets/icons/ic_passenger.svg"],"assets/icons/ic_plane_filled.svg":["assets/icons/ic_plane_filled.svg"],"assets/icons/ic_plane_left.svg":["assets/icons/ic_plane_left.svg"],"assets/icons/ic_plane_right.svg":["assets/icons/ic_plane_right.svg"],"assets/icons/ic_profile.svg":["assets/icons/ic_profile.svg"],"assets/icons/ic_profile_filled.svg":["assets/icons/ic_profile_filled.svg"],"assets/icons/ic_protect.svg":["assets/icons/ic_protect.svg"],"assets/icons/ic_right.svg":["assets/icons/ic_right.svg"],"assets/icons/ic_search.svg":["assets/icons/ic_search.svg"],"assets/icons/ic_sent.svg":["assets/icons/ic_sent.svg"],"assets/icons/ic_transit.svg":["assets/icons/ic_transit.svg"],"assets/images/banner.png":["assets/images/banner.png"],"assets/images/citilink.svg":["assets/images/citilink.svg"],"assets/images/divider_custome.svg":["assets/images/divider_custome.svg"],"assets/images/ilustrasi_flight.svg":["assets/images/ilustrasi_flight.svg"],"assets/images/ornamen.svg":["assets/images/ornamen.svg"],"assets/images/qris.svg":["assets/images/qris.svg"],"assets/images/taxi_female.svg":["assets/images/taxi_female.svg"],"assets/images/taxi_homework.svg":["assets/images/taxi_homework.svg"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
||||||
#.env
asset.envassets/icons/ic_account.svg
assetassets/icons/ic_account.svg!assets/icons/ic_boarding_pass.svg
asset!assets/icons/ic_boarding_pass.svg(assets/icons/ic_boarding_pass_filled.svg
asset(assets/icons/ic_boarding_pass_filled.svgassets/icons/ic_calendar.svg
assetassets/icons/ic_calendar.svg!assets/icons/ic_data_transfer.svg
asset!assets/icons/ic_data_transfer.svgassets/icons/ic_edit.svg
assetassets/icons/ic_edit.svgassets/icons/ic_email.svg
assetassets/icons/ic_email.svgassets/icons/ic_flight_seat.svg
assetassets/icons/ic_flight_seat.svg&assets/icons/ic_flight_seat_filled.svg
asset&assets/icons/ic_flight_seat_filled.svgassets/icons/ic_home.svg
assetassets/icons/ic_home.svgassets/icons/ic_home_filled.svg
assetassets/icons/ic_home_filled.svgassets/icons/ic_left.svg
assetassets/icons/ic_left.svgassets/icons/ic_less_than.svg
assetassets/icons/ic_less_than.svgassets/icons/ic_more _than.svg
assetassets/icons/ic_more _than.svg assets/icons/ic_notification.svg
asset assets/icons/ic_notification.svg!assets/icons/ic_order_history.svg
asset!assets/icons/ic_order_history.svgassets/icons/ic_padlock.svg
assetassets/icons/ic_padlock.svgassets/icons/ic_passenger.svg
assetassets/icons/ic_passenger.svg assets/icons/ic_plane_filled.svg
asset assets/icons/ic_plane_filled.svgassets/icons/ic_plane_left.svg
assetassets/icons/ic_plane_left.svgassets/icons/ic_plane_right.svg
assetassets/icons/ic_plane_right.svgassets/icons/ic_profile.svg
assetassets/icons/ic_profile.svg"assets/icons/ic_profile_filled.svg
asset"assets/icons/ic_profile_filled.svgassets/icons/ic_right.svg
assetassets/icons/ic_right.svgassets/icons/ic_search.svg
assetassets/icons/ic_search.svgassets/icons/ic_sent.svg
assetassets/icons/ic_sent.svgassets/images/banner.png
assetassets/images/banner.pngassets/images/citilink.svg
assetassets/images/citilink.svg!assets/images/divider_custome.svg
asset!assets/images/divider_custome.svg"assets/images/ilustrasi_flight.svg
asset"assets/images/ilustrasi_flight.svgassets/images/ornamen.svg
assetassets/images/ornamen.svgassets/images/taxi_female.svg
assetassets/images/taxi_female.svgassets/images/taxi_homework.svg
assetassets/images/taxi_homework.svg2packages/cupertino_icons/assets/CupertinoIcons.ttf
asset2packages/cupertino_icons/assets/CupertinoIcons.ttf
|
(.env
asset.envassets/icons/ic_account.svg
assetassets/icons/ic_account.svg$assets/icons/ic_airplane_landing.svg
asset$assets/icons/ic_airplane_landing.svg%assets/icons/ic_airplane_take_off.svg
asset%assets/icons/ic_airplane_take_off.svg!assets/icons/ic_boarding_pass.svg
asset!assets/icons/ic_boarding_pass.svg(assets/icons/ic_boarding_pass_filled.svg
asset(assets/icons/ic_boarding_pass_filled.svgassets/icons/ic_calendar.svg
assetassets/icons/ic_calendar.svg!assets/icons/ic_data_transfer.svg
asset!assets/icons/ic_data_transfer.svgassets/icons/ic_edit.svg
assetassets/icons/ic_edit.svgassets/icons/ic_email.svg
assetassets/icons/ic_email.svgassets/icons/ic_flight_seat.svg
assetassets/icons/ic_flight_seat.svg&assets/icons/ic_flight_seat_filled.svg
asset&assets/icons/ic_flight_seat_filled.svgassets/icons/ic_home.svg
assetassets/icons/ic_home.svgassets/icons/ic_home_filled.svg
assetassets/icons/ic_home_filled.svgassets/icons/ic_left.svg
assetassets/icons/ic_left.svgassets/icons/ic_less_than.svg
assetassets/icons/ic_less_than.svgassets/icons/ic_more _than.svg
assetassets/icons/ic_more _than.svg assets/icons/ic_notification.svg
asset assets/icons/ic_notification.svg!assets/icons/ic_order_history.svg
asset!assets/icons/ic_order_history.svgassets/icons/ic_padlock.svg
assetassets/icons/ic_padlock.svgassets/icons/ic_passenger.svg
assetassets/icons/ic_passenger.svg assets/icons/ic_plane_filled.svg
asset assets/icons/ic_plane_filled.svgassets/icons/ic_plane_left.svg
assetassets/icons/ic_plane_left.svgassets/icons/ic_plane_right.svg
assetassets/icons/ic_plane_right.svgassets/icons/ic_profile.svg
assetassets/icons/ic_profile.svg"assets/icons/ic_profile_filled.svg
asset"assets/icons/ic_profile_filled.svgassets/icons/ic_protect.svg
assets/icons/ic_right.svg
assets/icons/ic_right.svg
assetassets/icons/ic_right.svgassets/icons/ic_search.svg
assetassets/icons/ic_search.svgassets/icons/ic_sent.svg
assetassets/icons/ic_sent.svgassets/icons/ic_transit.svg
assetassets/icons/ic_transit.svgassets/images/banner.png
assetassets/images/banner.pngassets/images/citilink.svg
assetassets/images/citilink.svg!assets/images/divider_custome.svg
asset!assets/images/divider_custome.svg"assets/images/ilustrasi_flight.svg
asset"assets/images/ilustrasi_flight.svgassets/images/ornamen.svg
assetassets/images/ornamen.svgassets/images/qris.svg
assetassets/images/qris.svgassets/images/taxi_female.svg
assetassets/images/taxi_female.svgassets/images/taxi_homework.svg
assetassets/images/taxi_homework.svg2packages/cupertino_icons/assets/CupertinoIcons.ttf
asset2packages/cupertino_icons/assets/CupertinoIcons.ttf
|
|
@ -1 +1 @@
|
||||||
{".env":[".env"],"assets/icons/ic_account.svg":["assets/icons/ic_account.svg"],"assets/icons/ic_boarding_pass.svg":["assets/icons/ic_boarding_pass.svg"],"assets/icons/ic_boarding_pass_filled.svg":["assets/icons/ic_boarding_pass_filled.svg"],"assets/icons/ic_calendar.svg":["assets/icons/ic_calendar.svg"],"assets/icons/ic_data_transfer.svg":["assets/icons/ic_data_transfer.svg"],"assets/icons/ic_edit.svg":["assets/icons/ic_edit.svg"],"assets/icons/ic_email.svg":["assets/icons/ic_email.svg"],"assets/icons/ic_flight_seat.svg":["assets/icons/ic_flight_seat.svg"],"assets/icons/ic_flight_seat_filled.svg":["assets/icons/ic_flight_seat_filled.svg"],"assets/icons/ic_home.svg":["assets/icons/ic_home.svg"],"assets/icons/ic_home_filled.svg":["assets/icons/ic_home_filled.svg"],"assets/icons/ic_left.svg":["assets/icons/ic_left.svg"],"assets/icons/ic_less_than.svg":["assets/icons/ic_less_than.svg"],"assets/icons/ic_more _than.svg":["assets/icons/ic_more _than.svg"],"assets/icons/ic_notification.svg":["assets/icons/ic_notification.svg"],"assets/icons/ic_order_history.svg":["assets/icons/ic_order_history.svg"],"assets/icons/ic_padlock.svg":["assets/icons/ic_padlock.svg"],"assets/icons/ic_passenger.svg":["assets/icons/ic_passenger.svg"],"assets/icons/ic_plane_filled.svg":["assets/icons/ic_plane_filled.svg"],"assets/icons/ic_plane_left.svg":["assets/icons/ic_plane_left.svg"],"assets/icons/ic_plane_right.svg":["assets/icons/ic_plane_right.svg"],"assets/icons/ic_profile.svg":["assets/icons/ic_profile.svg"],"assets/icons/ic_profile_filled.svg":["assets/icons/ic_profile_filled.svg"],"assets/icons/ic_right.svg":["assets/icons/ic_right.svg"],"assets/icons/ic_search.svg":["assets/icons/ic_search.svg"],"assets/icons/ic_sent.svg":["assets/icons/ic_sent.svg"],"assets/images/banner.png":["assets/images/banner.png"],"assets/images/citilink.svg":["assets/images/citilink.svg"],"assets/images/divider_custome.svg":["assets/images/divider_custome.svg"],"assets/images/ilustrasi_flight.svg":["assets/images/ilustrasi_flight.svg"],"assets/images/ornamen.svg":["assets/images/ornamen.svg"],"assets/images/taxi_female.svg":["assets/images/taxi_female.svg"],"assets/images/taxi_homework.svg":["assets/images/taxi_homework.svg"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
|
{".env":[".env"],"assets/icons/ic_account.svg":["assets/icons/ic_account.svg"],"assets/icons/ic_airplane_landing.svg":["assets/icons/ic_airplane_landing.svg"],"assets/icons/ic_airplane_take_off.svg":["assets/icons/ic_airplane_take_off.svg"],"assets/icons/ic_boarding_pass.svg":["assets/icons/ic_boarding_pass.svg"],"assets/icons/ic_boarding_pass_filled.svg":["assets/icons/ic_boarding_pass_filled.svg"],"assets/icons/ic_calendar.svg":["assets/icons/ic_calendar.svg"],"assets/icons/ic_data_transfer.svg":["assets/icons/ic_data_transfer.svg"],"assets/icons/ic_edit.svg":["assets/icons/ic_edit.svg"],"assets/icons/ic_email.svg":["assets/icons/ic_email.svg"],"assets/icons/ic_flight_seat.svg":["assets/icons/ic_flight_seat.svg"],"assets/icons/ic_flight_seat_filled.svg":["assets/icons/ic_flight_seat_filled.svg"],"assets/icons/ic_home.svg":["assets/icons/ic_home.svg"],"assets/icons/ic_home_filled.svg":["assets/icons/ic_home_filled.svg"],"assets/icons/ic_left.svg":["assets/icons/ic_left.svg"],"assets/icons/ic_less_than.svg":["assets/icons/ic_less_than.svg"],"assets/icons/ic_more _than.svg":["assets/icons/ic_more _than.svg"],"assets/icons/ic_notification.svg":["assets/icons/ic_notification.svg"],"assets/icons/ic_order_history.svg":["assets/icons/ic_order_history.svg"],"assets/icons/ic_padlock.svg":["assets/icons/ic_padlock.svg"],"assets/icons/ic_passenger.svg":["assets/icons/ic_passenger.svg"],"assets/icons/ic_plane_filled.svg":["assets/icons/ic_plane_filled.svg"],"assets/icons/ic_plane_left.svg":["assets/icons/ic_plane_left.svg"],"assets/icons/ic_plane_right.svg":["assets/icons/ic_plane_right.svg"],"assets/icons/ic_profile.svg":["assets/icons/ic_profile.svg"],"assets/icons/ic_profile_filled.svg":["assets/icons/ic_profile_filled.svg"],"assets/icons/ic_protect.svg":["assets/icons/ic_protect.svg"],"assets/icons/ic_right.svg":["assets/icons/ic_right.svg"],"assets/icons/ic_search.svg":["assets/icons/ic_search.svg"],"assets/icons/ic_sent.svg":["assets/icons/ic_sent.svg"],"assets/icons/ic_transit.svg":["assets/icons/ic_transit.svg"],"assets/images/banner.png":["assets/images/banner.png"],"assets/images/citilink.svg":["assets/images/citilink.svg"],"assets/images/divider_custome.svg":["assets/images/divider_custome.svg"],"assets/images/ilustrasi_flight.svg":["assets/images/ilustrasi_flight.svg"],"assets/images/ornamen.svg":["assets/images/ornamen.svg"],"assets/images/qris.svg":["assets/images/qris.svg"],"assets/images/taxi_female.svg":["assets/images/taxi_female.svg"],"assets/images/taxi_homework.svg":["assets/images/taxi_homework.svg"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
|
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
|
@ -1,4 +1,4 @@
|
||||||
#Fri Feb 28 10:15:11 WIB 2025
|
#Mon Mar 03 14:35:30 WIB 2025
|
||||||
com.example.e_porter.app-main-26\:/drawable-v21/launch_background.xml=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\merged_res\\debug\\drawable-v21_launch_background.xml.flat
|
com.example.e_porter.app-main-26\:/drawable-v21/launch_background.xml=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\merged_res\\debug\\drawable-v21_launch_background.xml.flat
|
||||||
com.example.e_porter.app-main-26\:/mipmap-hdpi/ic_launcher.png=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\merged_res\\debug\\mipmap-hdpi_ic_launcher.png.flat
|
com.example.e_porter.app-main-26\:/mipmap-hdpi/ic_launcher.png=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\merged_res\\debug\\mipmap-hdpi_ic_launcher.png.flat
|
||||||
com.example.e_porter.app-main-26\:/mipmap-mdpi/ic_launcher.png=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\merged_res\\debug\\mipmap-mdpi_ic_launcher.png.flat
|
com.example.e_porter.app-main-26\:/mipmap-mdpi/ic_launcher.png=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\merged_res\\debug\\mipmap-mdpi_ic_launcher.png.flat
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#Sun Mar 02 05:14:00 WIB 2025
|
#Mon Mar 03 22:55:16 WIB 2025
|
||||||
base.0=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\dex\\debug\\mergeExtDexDebug\\classes.dex
|
base.0=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\dex\\debug\\mergeExtDexDebug\\classes.dex
|
||||||
base.1=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\dex\\debug\\mergeLibDexDebug\\0\\classes.dex
|
base.1=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\dex\\debug\\mergeLibDexDebug\\0\\classes.dex
|
||||||
base.2=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\dex\\debug\\mergeProjectDexDebug\\0\\classes.dex
|
base.2=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\dex\\debug\\mergeProjectDexDebug\\0\\classes.dex
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -71,6 +71,7 @@ class DefaultAppbarComponent extends StatelessWidget implements PreferredSizeWid
|
||||||
final String title;
|
final String title;
|
||||||
final Color backgroundColors;
|
final Color backgroundColors;
|
||||||
final bool automaticallyImplyLeading;
|
final bool automaticallyImplyLeading;
|
||||||
|
final Color? textColor;
|
||||||
final VoidCallback onTab;
|
final VoidCallback onTab;
|
||||||
|
|
||||||
const DefaultAppbarComponent({
|
const DefaultAppbarComponent({
|
||||||
|
@ -78,6 +79,7 @@ class DefaultAppbarComponent extends StatelessWidget implements PreferredSizeWid
|
||||||
required this.title,
|
required this.title,
|
||||||
this.backgroundColors = Colors.white,
|
this.backgroundColors = Colors.white,
|
||||||
this.automaticallyImplyLeading = false,
|
this.automaticallyImplyLeading = false,
|
||||||
|
this.textColor,
|
||||||
required this.onTab,
|
required this.onTab,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
|
@ -91,7 +93,7 @@ class DefaultAppbarComponent extends StatelessWidget implements PreferredSizeWid
|
||||||
leadingWidth: 66,
|
leadingWidth: 66,
|
||||||
title: TypographyStyles.h6(
|
title: TypographyStyles.h6(
|
||||||
title,
|
title,
|
||||||
color: GrayColors.gray800,
|
color: textColor ?? GrayColors.gray800,
|
||||||
),
|
),
|
||||||
leading: GestureDetector(
|
leading: GestureDetector(
|
||||||
onTap: onTab,
|
onTap: onTab,
|
||||||
|
|
|
@ -8,6 +8,7 @@ class CustomeShadowCotainner extends StatelessWidget {
|
||||||
final double borderRadius;
|
final double borderRadius;
|
||||||
final BoxBorder? border;
|
final BoxBorder? border;
|
||||||
final EdgeInsets? padding;
|
final EdgeInsets? padding;
|
||||||
|
final double? height;
|
||||||
|
|
||||||
const CustomeShadowCotainner({
|
const CustomeShadowCotainner({
|
||||||
Key? key,
|
Key? key,
|
||||||
|
@ -16,12 +17,14 @@ class CustomeShadowCotainner extends StatelessWidget {
|
||||||
this.borderRadius = 10.0,
|
this.borderRadius = 10.0,
|
||||||
this.border,
|
this.border,
|
||||||
this.padding,
|
this.padding,
|
||||||
|
this.height,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
|
height: height,
|
||||||
padding: padding ?? EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
|
padding: padding ?? EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: backgroundColor,
|
color: backgroundColor,
|
||||||
|
|
|
@ -40,6 +40,10 @@ class CustomeIcons {
|
||||||
static SvgPicture SearchOutline({double? size, Color? color}) => getIcon('ic_search', color: color);
|
static SvgPicture SearchOutline({double? size, Color? color}) => getIcon('ic_search', color: color);
|
||||||
static SvgPicture EditOutline({double? size, Color? color}) => getIcon('ic_edit', color: color);
|
static SvgPicture EditOutline({double? size, Color? color}) => getIcon('ic_edit', color: color);
|
||||||
static SvgPicture OrderHistoryOutline({double? size, Color? color}) => getIcon('ic_order_history', color: color);
|
static SvgPicture OrderHistoryOutline({double? size, Color? color}) => getIcon('ic_order_history', color: color);
|
||||||
|
static SvgPicture AirplaneLandingOutline({double? size, Color? color}) => getIcon('ic_airplane_landing', color: color);
|
||||||
|
static SvgPicture AirplaneTakeOffOutline({double? size, Color? color}) => getIcon('ic_airplane_take_off', color: color);
|
||||||
|
static SvgPicture TransitOutline({double? size, Color? color}) => getIcon('ic_transit', color: color);
|
||||||
|
static SvgPicture ProtectOutline({double? size, Color? color}) => getIcon('ic_protect', color: color);
|
||||||
|
|
||||||
static SvgPicture FlightSeatFilled({double? size, Color? color}) => getIcon('ic_flight_seat_filled', color: color);
|
static SvgPicture FlightSeatFilled({double? size, Color? color}) => getIcon('ic_flight_seat_filled', color: color);
|
||||||
static SvgPicture PlaneRightFilled({double? size, Color? color}) => getIcon('ic_plane_filled', color: color);
|
static SvgPicture PlaneRightFilled({double? size, Color? color}) => getIcon('ic_plane_filled', color: color);
|
||||||
|
|
|
@ -14,6 +14,7 @@ class CardFlightInformation extends StatelessWidget {
|
||||||
final String arrivalCity;
|
final String arrivalCity;
|
||||||
final String plane;
|
final String plane;
|
||||||
final String seatClass;
|
final String seatClass;
|
||||||
|
final String? servicePorter;
|
||||||
final String passenger;
|
final String passenger;
|
||||||
|
|
||||||
const CardFlightInformation({
|
const CardFlightInformation({
|
||||||
|
@ -24,6 +25,7 @@ class CardFlightInformation extends StatelessWidget {
|
||||||
required this.arrivalCity,
|
required this.arrivalCity,
|
||||||
required this.plane,
|
required this.plane,
|
||||||
required this.seatClass,
|
required this.seatClass,
|
||||||
|
this.servicePorter,
|
||||||
required this.passenger,
|
required this.passenger,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -59,7 +61,6 @@ class CardFlightInformation extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
TypographyStyles.body(departureCity, color: GrayColors.gray800, letterSpacing: 0.2),
|
TypographyStyles.body(departureCity, color: GrayColors.gray800, letterSpacing: 0.2),
|
||||||
SizedBox(width: 10.w),
|
SizedBox(width: 10.w),
|
||||||
// SvgPicture.asset('assets/icons/ic_plane_right_filled.svg'),
|
|
||||||
CustomeIcons.PlaneRightFilled(color: PrimaryColors.primary800),
|
CustomeIcons.PlaneRightFilled(color: PrimaryColors.primary800),
|
||||||
SizedBox(width: 10.w),
|
SizedBox(width: 10.w),
|
||||||
TypographyStyles.body(arrivalCity, color: GrayColors.gray800, letterSpacing: 0.2)
|
TypographyStyles.body(arrivalCity, color: GrayColors.gray800, letterSpacing: 0.2)
|
||||||
|
@ -74,15 +75,8 @@ class CardFlightInformation extends StatelessWidget {
|
||||||
letterSpacing: 0.2,
|
letterSpacing: 0.2,
|
||||||
fontWeight: FontWeight.w400,
|
fontWeight: FontWeight.w400,
|
||||||
),
|
),
|
||||||
SizedBox(width: 10.w),
|
_buildText(context, text: seatClass),
|
||||||
CircleAvatar(radius: 2.r, backgroundColor: Color(0xFFD9D9D9)),
|
servicePorter != null ? _buildText(context, text: servicePorter!) : SizedBox.shrink(),
|
||||||
SizedBox(width: 10.w),
|
|
||||||
TypographyStyles.small(
|
|
||||||
seatClass,
|
|
||||||
color: GrayColors.gray600,
|
|
||||||
letterSpacing: 0.2,
|
|
||||||
fontWeight: FontWeight.w400,
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 4.h),
|
SizedBox(height: 4.h),
|
||||||
|
@ -96,4 +90,23 @@ class CardFlightInformation extends StatelessWidget {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _buildText(
|
||||||
|
BuildContext context, {
|
||||||
|
required String text,
|
||||||
|
}) {
|
||||||
|
return Row(
|
||||||
|
children: [
|
||||||
|
SizedBox(width: 10.w),
|
||||||
|
CircleAvatar(radius: 2.r, backgroundColor: Color(0xFFD9D9D9)),
|
||||||
|
SizedBox(width: 10.w),
|
||||||
|
TypographyStyles.small(
|
||||||
|
text,
|
||||||
|
color: GrayColors.gray600,
|
||||||
|
letterSpacing: 0.2,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ class CardSeat extends StatelessWidget {
|
||||||
height: 32.h,
|
height: 32.h,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(6.r),
|
borderRadius: BorderRadius.circular(6.r),
|
||||||
color: Colors.grey,
|
color: Color(0xFFD9D9D9),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
|
||||||
|
|
||||||
|
import '../../../../_core/component/card/custome_shadow_cotainner.dart';
|
||||||
|
import '../../../../_core/constants/colors.dart';
|
||||||
|
import '../../../../_core/constants/typography.dart';
|
||||||
|
|
||||||
|
class FooterPrice extends StatelessWidget {
|
||||||
|
final String price;
|
||||||
|
final String labelText;
|
||||||
|
final String labelButton;
|
||||||
|
final Widget? iconButton;
|
||||||
|
final VoidCallback onTap;
|
||||||
|
|
||||||
|
const FooterPrice({
|
||||||
|
Key? key,
|
||||||
|
required this.price,
|
||||||
|
required this.labelText,
|
||||||
|
required this.labelButton,
|
||||||
|
this.iconButton,
|
||||||
|
required this.onTap,
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return CustomeShadowCotainner(
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
RichText(
|
||||||
|
text: TextSpan(
|
||||||
|
text: "Total ${labelText}\n",
|
||||||
|
style: TextStyle(
|
||||||
|
fontFamily: 'DMSans',
|
||||||
|
color: GrayColors.gray800,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
fontSize: 16.sp,
|
||||||
|
height: 1.8.h,
|
||||||
|
),
|
||||||
|
children: [
|
||||||
|
TextSpan(
|
||||||
|
text: "Rp ${price}",
|
||||||
|
style: TextStyle(
|
||||||
|
fontFamily: 'DMSans',
|
||||||
|
color: PrimaryColors.primary800,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
fontSize: 18.sp,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
ZoomTapAnimation(
|
||||||
|
child: GestureDetector(
|
||||||
|
onTap: onTap,
|
||||||
|
child: Container(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 16.h),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: PrimaryColors.primary800,
|
||||||
|
borderRadius: BorderRadius.circular(10.r),
|
||||||
|
),
|
||||||
|
child: iconButton != null
|
||||||
|
? Row(
|
||||||
|
children: [
|
||||||
|
iconButton!,
|
||||||
|
SizedBox(width: 10.w),
|
||||||
|
TypographyStyles.body(labelButton, color: Colors.white)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
: TypographyStyles.body(labelButton, color: Colors.white),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,6 +12,7 @@ import 'package:get/get.dart';
|
||||||
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
|
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
|
||||||
|
|
||||||
import '../../../../_core/component/button/button_fill.dart';
|
import '../../../../_core/component/button/button_fill.dart';
|
||||||
|
import '../../routes/app_rountes.dart';
|
||||||
|
|
||||||
class ChooseSeatScreen extends StatefulWidget {
|
class ChooseSeatScreen extends StatefulWidget {
|
||||||
const ChooseSeatScreen({super.key});
|
const ChooseSeatScreen({super.key});
|
||||||
|
@ -21,8 +22,20 @@ class ChooseSeatScreen extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ChooseSeatScreenState extends State<ChooseSeatScreen> {
|
class _ChooseSeatScreenState extends State<ChooseSeatScreen> {
|
||||||
// Menyimpan status setiap kursi apakah terpilih atau tidak
|
|
||||||
final List<bool> selectedSeats = List.generate(3, (_) => false);
|
final List<bool> selectedSeats = List.generate(3, (_) => false);
|
||||||
|
// late ScrollController _scrollController;
|
||||||
|
|
||||||
|
// @override
|
||||||
|
// void initState() {
|
||||||
|
// super.initState();
|
||||||
|
// _scrollController = ScrollController();
|
||||||
|
// }
|
||||||
|
|
||||||
|
// @override
|
||||||
|
// void dispose() {
|
||||||
|
// _scrollController.dispose();
|
||||||
|
// super.dispose();
|
||||||
|
// }
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -38,10 +51,24 @@ class _ChooseSeatScreenState extends State<ChooseSeatScreen> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
|
child: CustomScrollView(
|
||||||
|
// controller: _scrollController,
|
||||||
|
slivers: [
|
||||||
|
SliverAppBar(
|
||||||
|
floating: true,
|
||||||
|
snap: true,
|
||||||
|
backgroundColor: GrayColors.gray50,
|
||||||
|
foregroundColor: Colors.white,
|
||||||
|
surfaceTintColor: Colors.white,
|
||||||
|
expandedHeight: 220.h,
|
||||||
|
flexibleSpace: FlexibleSpaceBar(
|
||||||
|
background: SingleChildScrollView(
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 0.h),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
_buildCardFlight('YIA', 'LOP', 'Economy', '5j 40m'),
|
_buildCardFlight("YIA", "LOP", "Economy", "5j 40m"),
|
||||||
SizedBox(height: 20.h),
|
SizedBox(height: 20.h),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: 84.h,
|
height: 84.h,
|
||||||
|
@ -59,26 +86,49 @@ class _ChooseSeatScreenState extends State<ChooseSeatScreen> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 32.h),
|
],
|
||||||
CustomeShadowCotainner(
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SliverPersistentHeader(
|
||||||
|
pinned: true,
|
||||||
|
delegate: _SliverHeaderDelegate(
|
||||||
|
minHeight: 50.h,
|
||||||
|
maxHeight: 50.h,
|
||||||
|
child: Container(
|
||||||
|
color: Colors.white,
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 10.h),
|
||||||
|
alignment: Alignment.centerLeft,
|
||||||
|
child: _buildCardInformationStatus(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SliverToBoxAdapter(
|
||||||
|
child: CustomeShadowCotainner(
|
||||||
borderRadius: 0.r,
|
borderRadius: 0.r,
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
_buildCardInformationStatus(),
|
|
||||||
SizedBox(height: 20.h),
|
|
||||||
Row(
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
_buildCardSeat(context, label: 'A'),
|
_buildCardSeat(context, label: 'A'),
|
||||||
_buildCardSeat(context, label: 'B'),
|
_buildCardSeat(context, label: 'B'),
|
||||||
_buildCardSeat(context, label: 'C'),
|
_buildCardSeat(context, label: 'C'),
|
||||||
|
SizedBox(width: 16.w),
|
||||||
|
_buildNumberSeat(context, label: '1'),
|
||||||
|
_buildCardSeat(context, label: 'D'),
|
||||||
|
_buildCardSeat(context, label: 'E'),
|
||||||
|
_buildCardSeat(context, label: 'F'),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
)),
|
||||||
),
|
|
||||||
bottomNavigationBar: CustomeShadowCotainner(
|
bottomNavigationBar: CustomeShadowCotainner(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||||
child: ZoomTapAnimation(
|
child: ZoomTapAnimation(
|
||||||
|
@ -86,7 +136,7 @@ class _ChooseSeatScreenState extends State<ChooseSeatScreen> {
|
||||||
text: 'Lanjutkan',
|
text: 'Lanjutkan',
|
||||||
textColor: Colors.white,
|
textColor: Colors.white,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
// Get.toNamed(Routes.TICKETBOOKINGSTEP3);
|
Get.toNamed(Routes.TICKETBOOKINGSTEP2);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -220,11 +270,10 @@ class _ChooseSeatScreenState extends State<ChooseSeatScreen> {
|
||||||
child: TypographyStyles.body(label, color: GrayColors.gray800, fontWeight: FontWeight.w500),
|
child: TypographyStyles.body(label, color: GrayColors.gray800, fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
SizedBox(height: 6.h),
|
SizedBox(height: 6.h),
|
||||||
SizedBox(
|
ListView.builder(
|
||||||
height: 330.h,
|
itemCount: 20,
|
||||||
child: ListView.builder(
|
|
||||||
itemCount: 50,
|
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
|
physics: NeverScrollableScrollPhysics(),
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: EdgeInsets.symmetric(vertical: 6.h),
|
padding: EdgeInsets.symmetric(vertical: 6.h),
|
||||||
|
@ -232,13 +281,45 @@ class _ChooseSeatScreenState extends State<ChooseSeatScreen> {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildNumberSeat(
|
||||||
|
BuildContext context, {
|
||||||
|
required label,
|
||||||
|
}) {
|
||||||
|
return Expanded(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
width: 32.w,
|
||||||
|
height: 32.h,
|
||||||
|
child: TypographyStyles.body('', color: Colors.white, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
|
SizedBox(height: 6.h),
|
||||||
|
ListView.builder(
|
||||||
|
itemCount: 20,
|
||||||
|
shrinkWrap: true,
|
||||||
|
physics: NeverScrollableScrollPhysics(),
|
||||||
|
itemBuilder: (context, index) {
|
||||||
|
return Padding(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 6.h),
|
||||||
|
child: Container(
|
||||||
|
width: 32.w,
|
||||||
|
height: 32.h,
|
||||||
|
child: TypographyStyles.body(label, color: GrayColors.gray800, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildNumberSeat() {
|
Widget _buildNumber() {
|
||||||
return Row(
|
return Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
|
@ -281,3 +362,31 @@ class _ChooseSeatScreenState extends State<ChooseSeatScreen> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class _SliverHeaderDelegate extends SliverPersistentHeaderDelegate {
|
||||||
|
final double minHeight;
|
||||||
|
final double maxHeight;
|
||||||
|
final Widget child;
|
||||||
|
|
||||||
|
_SliverHeaderDelegate({
|
||||||
|
required this.minHeight,
|
||||||
|
required this.maxHeight,
|
||||||
|
required this.child,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
double get minExtent => minHeight;
|
||||||
|
|
||||||
|
@override
|
||||||
|
double get maxExtent => maxHeight;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) {
|
||||||
|
return child;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool shouldRebuild(covariant SliverPersistentHeaderDelegate oldDelegate) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
import 'package:e_porter/_core/component/appbar/appbar_component.dart';
|
||||||
|
import 'package:e_porter/_core/component/card/custome_shadow_cotainner.dart';
|
||||||
|
import 'package:e_porter/_core/constants/colors.dart';
|
||||||
|
import 'package:e_porter/_core/constants/typography.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
|
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
|
||||||
|
|
||||||
|
import '../../../../_core/component/button/button_fill.dart';
|
||||||
|
|
||||||
|
class PaymentScreen extends StatefulWidget {
|
||||||
|
const PaymentScreen({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<PaymentScreen> createState() => _PaymentScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _PaymentScreenState extends State<PaymentScreen> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
backgroundColor: GrayColors.gray50,
|
||||||
|
appBar: DefaultAppbarComponent(
|
||||||
|
title: 'Kode QRIS',
|
||||||
|
textColor: Colors.white,
|
||||||
|
backgroundColors: PrimaryColors.primary800,
|
||||||
|
onTab: () {
|
||||||
|
Get.back();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
body: SafeArea(
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
width: double.infinity,
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
TypographyStyles.h5("E-Porter", color: GrayColors.gray800),
|
||||||
|
SizedBox(height: 10.h),
|
||||||
|
TypographyStyles.body("Citilink (103)", color: GrayColors.gray800, fontWeight: FontWeight.w400),
|
||||||
|
SizedBox(height: 16.h),
|
||||||
|
TypographyStyles.h5("Rp 2.460.000", color: GrayColors.gray800),
|
||||||
|
SizedBox(height: 32.h),
|
||||||
|
SvgPicture.asset('assets/images/qris.svg'),
|
||||||
|
SizedBox(height: 20.h),
|
||||||
|
TypographyStyles.small(
|
||||||
|
"Berlaku hingga : 28 Januari 2025, 16:40",
|
||||||
|
color: GrayColors.gray600,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
bottomNavigationBar: CustomeShadowCotainner(
|
||||||
|
child: ZoomTapAnimation(
|
||||||
|
child: ButtonFill(
|
||||||
|
text: 'Lanjutkan',
|
||||||
|
textColor: Colors.white,
|
||||||
|
onTap: () {
|
||||||
|
// Get.toNamed(Routes.TICKETBOOKINGSTEP2);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,8 +1,14 @@
|
||||||
|
import 'package:e_porter/_core/component/card/custome_shadow_cotainner.dart';
|
||||||
|
import 'package:e_porter/_core/component/icons/icons_library.dart';
|
||||||
import 'package:e_porter/_core/constants/colors.dart';
|
import 'package:e_porter/_core/constants/colors.dart';
|
||||||
|
import 'package:e_porter/_core/constants/typography.dart';
|
||||||
|
import 'package:e_porter/presentation/screens/home/component/footer_price.dart';
|
||||||
|
import 'package:e_porter/presentation/screens/routes/app_rountes.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../_core/component/appbar/appbar_component.dart';
|
import '../../../../_core/component/appbar/appbar_component.dart';
|
||||||
|
import '../component/card_flight_information.dart';
|
||||||
|
|
||||||
class TicketBookingStep3Screen extends StatefulWidget {
|
class TicketBookingStep3Screen extends StatefulWidget {
|
||||||
const TicketBookingStep3Screen({super.key});
|
const TicketBookingStep3Screen({super.key});
|
||||||
|
@ -12,6 +18,10 @@ class TicketBookingStep3Screen extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _TicketBookingStep3ScreenState extends State<TicketBookingStep3Screen> {
|
class _TicketBookingStep3ScreenState extends State<TicketBookingStep3Screen> {
|
||||||
|
bool _isChecked1 = false;
|
||||||
|
bool _isChecked2 = false;
|
||||||
|
bool _isChecked3 = false;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
|
@ -23,6 +33,112 @@ class _TicketBookingStep3ScreenState extends State<TicketBookingStep3Screen> {
|
||||||
Get.back();
|
Get.back();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
body: SafeArea(
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
CardFlightInformation(
|
||||||
|
date: "Sen, 27 Jan 2025",
|
||||||
|
time: "12.20 - 06.00 AM",
|
||||||
|
departureCity: "Yogyakarta",
|
||||||
|
arrivalCity: "Lombok",
|
||||||
|
plane: "Citilink (103)",
|
||||||
|
seatClass: "Economy",
|
||||||
|
passenger: "2",
|
||||||
|
),
|
||||||
|
SizedBox(height: 32.h),
|
||||||
|
TypographyStyles.h6("Layanan Porter", color: GrayColors.gray800),
|
||||||
|
SizedBox(height: 10.h),
|
||||||
|
TypographyStyles.caption(
|
||||||
|
"Silahkan pilih opsi penerbangan untuk mencari layanan porter yang cocok untuk perjalanan Anda",
|
||||||
|
color: GrayColors.gray600,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
maxlines: 3,
|
||||||
|
),
|
||||||
|
SizedBox(height: 16.h),
|
||||||
|
_buildCheckBox(
|
||||||
|
context,
|
||||||
|
label: "Kedatangan",
|
||||||
|
Widget: CustomeIcons.AirplaneLandingOutline(color: Colors.white),
|
||||||
|
value: _isChecked1,
|
||||||
|
onTap: (bool? value) {
|
||||||
|
setState(() {
|
||||||
|
_isChecked1 = value ?? false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
),
|
||||||
|
SizedBox(height: 10.h),
|
||||||
|
_buildCheckBox(
|
||||||
|
context,
|
||||||
|
label: "Keberangkatan",
|
||||||
|
Widget: CustomeIcons.AirplaneTakeOffOutline(color: Colors.white),
|
||||||
|
value: _isChecked2,
|
||||||
|
onTap: (bool? value) {
|
||||||
|
setState(() {
|
||||||
|
_isChecked2 = value ?? false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
),
|
||||||
|
SizedBox(height: 10.h),
|
||||||
|
_buildCheckBox(
|
||||||
|
context,
|
||||||
|
label: "Transit",
|
||||||
|
Widget: CustomeIcons.TransitOutline(color: Colors.white),
|
||||||
|
value: _isChecked3,
|
||||||
|
onTap: (bool? value) {
|
||||||
|
setState(() {
|
||||||
|
_isChecked3 = value ?? false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
bottomNavigationBar: FooterPrice(
|
||||||
|
price: "1.450.000",
|
||||||
|
labelText: "Pesanan",
|
||||||
|
labelButton: "Lanjut",
|
||||||
|
onTap: () {
|
||||||
|
Get.toNamed(Routes.TICKETBOOKINGSTEP4);
|
||||||
|
},
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildCheckBox(
|
||||||
|
BuildContext context, {
|
||||||
|
required label,
|
||||||
|
required Widget,
|
||||||
|
required value,
|
||||||
|
required onTap,
|
||||||
|
}) {
|
||||||
|
return CustomeShadowCotainner(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 6.w, vertical: 6.h),
|
||||||
|
child: CheckboxListTile(
|
||||||
|
activeColor: PrimaryColors.primary800,
|
||||||
|
title: Row(
|
||||||
|
children: [
|
||||||
|
CircleAvatar(
|
||||||
|
radius: 18.r,
|
||||||
|
backgroundColor: PrimaryColors.primary800,
|
||||||
|
child: Widget,
|
||||||
|
),
|
||||||
|
SizedBox(width: 16.w),
|
||||||
|
TypographyStyles.caption(
|
||||||
|
label,
|
||||||
|
color: GrayColors.gray800,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
value: value,
|
||||||
|
onChanged: onTap,
|
||||||
|
controlAffinity: ListTileControlAffinity.leading,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,8 +1,15 @@
|
||||||
|
import 'package:e_porter/_core/component/card/custome_shadow_cotainner.dart';
|
||||||
import 'package:e_porter/_core/constants/colors.dart';
|
import 'package:e_porter/_core/constants/colors.dart';
|
||||||
|
import 'package:e_porter/_core/constants/typography.dart';
|
||||||
|
import 'package:e_porter/presentation/screens/home/component/footer_price.dart';
|
||||||
|
import 'package:e_porter/presentation/screens/routes/app_rountes.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../_core/component/appbar/appbar_component.dart';
|
import '../../../../_core/component/appbar/appbar_component.dart';
|
||||||
|
import '../../../../_core/component/icons/icons_library.dart';
|
||||||
|
import '../component/card_flight_information.dart';
|
||||||
|
|
||||||
class TicketBookingStep4Screen extends StatefulWidget {
|
class TicketBookingStep4Screen extends StatefulWidget {
|
||||||
const TicketBookingStep4Screen({super.key});
|
const TicketBookingStep4Screen({super.key});
|
||||||
|
@ -23,6 +30,134 @@ class _TicketBookingStep4ScreenState extends State<TicketBookingStep4Screen> {
|
||||||
Get.back();
|
Get.back();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
body: SafeArea(
|
||||||
|
child: Padding(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 20.h),
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||||
|
child: CardFlightInformation(
|
||||||
|
date: "Sen, 27 Jan 2025",
|
||||||
|
time: "12.20 - 06.00 AM",
|
||||||
|
departureCity: "Yogyakarta",
|
||||||
|
arrivalCity: "Lombok",
|
||||||
|
plane: "Citilink (103)",
|
||||||
|
seatClass: "Economy",
|
||||||
|
servicePorter: "Fast Track (FT)",
|
||||||
|
passenger: "2",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: 32.h),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||||
|
child: TypographyStyles.h6("Rincian Pesanan", color: GrayColors.gray800),
|
||||||
|
),
|
||||||
|
SizedBox(height: 20.h),
|
||||||
|
CustomeShadowCotainner(
|
||||||
|
borderRadius: 0.r,
|
||||||
|
height: MediaQuery.of(context).size.height * 0.5,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
TypographyStyles.body(
|
||||||
|
"Citilink (103)",
|
||||||
|
color: GrayColors.gray800,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
),
|
||||||
|
SizedBox(width: 10.w),
|
||||||
|
SvgPicture.asset('assets/images/citilink.svg', width: 40.w, height: 10.h),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(height: 2.h),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
TypographyStyles.small(
|
||||||
|
"Fast Track (FT)",
|
||||||
|
color: GrayColors.gray600,
|
||||||
|
letterSpacing: 0.2,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
),
|
||||||
|
SizedBox(width: 10.w),
|
||||||
|
CircleAvatar(radius: 2.r, backgroundColor: Color(0xFFD9D9D9)),
|
||||||
|
SizedBox(width: 10.w),
|
||||||
|
TypographyStyles.small("Economy", color: GrayColors.gray600, fontWeight: FontWeight.w400),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(height: 16.h),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
TypographyStyles.caption(
|
||||||
|
"Rp 1.200.000",
|
||||||
|
color: GrayColors.gray600,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
),
|
||||||
|
SizedBox(width: 8.w),
|
||||||
|
TypographyStyles.small("x 2", color: GrayColors.gray600, fontWeight: FontWeight.w400)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.symmetric(vertical: 10.h),
|
||||||
|
child: Divider(thickness: 1.w, color: GrayColors.gray300),
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
TypographyStyles.caption(
|
||||||
|
"Total Pesanan",
|
||||||
|
color: GrayColors.gray600,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
),
|
||||||
|
TypographyStyles.body(
|
||||||
|
"Rp 2.400.000",
|
||||||
|
color: GrayColors.gray600,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(height: 2.h),
|
||||||
|
_buildRowText(context, text: "Layanan porter (Fast Track)", valueText: "50.000"),
|
||||||
|
SizedBox(height: 2.h),
|
||||||
|
_buildRowText(context, text: "Biaya layanan", valueText: "10.000"),
|
||||||
|
],
|
||||||
|
))
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
bottomNavigationBar: FooterPrice(
|
||||||
|
labelText: "Pembayaran",
|
||||||
|
price: "1.450.000",
|
||||||
|
labelButton: "Buat Pesanan",
|
||||||
|
iconButton: CustomeIcons.ProtectOutline(color: Colors.white),
|
||||||
|
onTap: () {
|
||||||
|
Get.toNamed(Routes.PAYMENT);
|
||||||
|
},
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildRowText(
|
||||||
|
BuildContext context, {
|
||||||
|
required String text,
|
||||||
|
required String valueText,
|
||||||
|
}) {
|
||||||
|
return Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
TypographyStyles.caption(
|
||||||
|
text,
|
||||||
|
color: GrayColors.gray600,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
),
|
||||||
|
TypographyStyles.caption(
|
||||||
|
"Rp ${valueText}",
|
||||||
|
color: GrayColors.gray600,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
),
|
||||||
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -7,6 +7,7 @@ import 'package:e_porter/presentation/screens/auth/pages/state_succes_screen.dar
|
||||||
import 'package:e_porter/presentation/screens/boarding_pass/pages/boarding_pass_screen.dart';
|
import 'package:e_porter/presentation/screens/boarding_pass/pages/boarding_pass_screen.dart';
|
||||||
import 'package:e_porter/presentation/screens/home/pages/booking_tickets.dart';
|
import 'package:e_porter/presentation/screens/home/pages/booking_tickets.dart';
|
||||||
import 'package:e_porter/presentation/screens/home/pages/choose_seat_screen.dart';
|
import 'package:e_porter/presentation/screens/home/pages/choose_seat_screen.dart';
|
||||||
|
import 'package:e_porter/presentation/screens/home/pages/payment_screen.dart';
|
||||||
import 'package:e_porter/presentation/screens/home/pages/search_flight_screen.dart';
|
import 'package:e_porter/presentation/screens/home/pages/search_flight_screen.dart';
|
||||||
import 'package:e_porter/presentation/screens/home/pages/search_tickets_screen.dart';
|
import 'package:e_porter/presentation/screens/home/pages/search_tickets_screen.dart';
|
||||||
import 'package:e_porter/presentation/screens/home/pages/ticket_booking_step1_screen.dart';
|
import 'package:e_porter/presentation/screens/home/pages/ticket_booking_step1_screen.dart';
|
||||||
|
@ -97,6 +98,10 @@ class AppRoutes {
|
||||||
name: Routes.CHOOSECHAIR,
|
name: Routes.CHOOSECHAIR,
|
||||||
page: () => ChooseSeatScreen(),
|
page: () => ChooseSeatScreen(),
|
||||||
),
|
),
|
||||||
|
GetPage(
|
||||||
|
name: Routes.PAYMENT,
|
||||||
|
page: () => PaymentScreen(),
|
||||||
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,4 +124,5 @@ class Routes {
|
||||||
static const TICKETBOOKINGSTEP3 = '/ticket_booking_step3';
|
static const TICKETBOOKINGSTEP3 = '/ticket_booking_step3';
|
||||||
static const TICKETBOOKINGSTEP4 = '/ticket_booking_step4';
|
static const TICKETBOOKINGSTEP4 = '/ticket_booking_step4';
|
||||||
static const CHOOSECHAIR = '/choose_chair';
|
static const CHOOSECHAIR = '/choose_chair';
|
||||||
|
static const PAYMENT = '/payment';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue