Merge branch 'master' into faiz_dev1

# Conflicts:
#	ios/Podfile.lock
#	lib/core/app_state.dart
#	lib/main.dart
#	lib/presentation/authentication/login.dart
#	lib/presentation/home/landing_page.dart
#	pubspec.yaml
pull/3/head
faizatflutter 2 months ago
commit e2b0930dd1

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 KiB

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.984 0.447945C10.9764 0.312482 9.68591 0.31249 8.04288 0.3125H7.95712C6.31409 0.31249 5.02358 0.312482 4.01602 0.447945C2.98352 0.586761 2.16433 0.877036 1.52069 1.52069C0.877036 2.16433 0.586761 2.98352 0.447945 4.01602C0.312482 5.02358 0.31249 6.31409 0.3125 7.95712V8.04288C0.31249 9.68591 0.312482 10.9764 0.447945 11.984C0.586761 13.0165 0.877036 13.8357 1.52069 14.4793C2.16433 15.123 2.98352 15.4132 4.01602 15.5521C5.02358 15.6875 6.31408 15.6875 7.9571 15.6875H7.95712H8.04288H8.0429C9.68592 15.6875 10.9764 15.6875 11.984 15.5521C13.0165 15.4132 13.8357 15.123 14.4793 14.4793C15.123 13.8357 15.4132 13.0165 15.5521 11.984C15.6875 10.9764 15.6875 9.68592 15.6875 8.0429V8.04288V7.95712V7.9571C15.6875 6.31408 15.6875 5.02358 15.5521 4.01602C15.4132 2.98352 15.123 2.16433 14.4793 1.52069C13.8357 0.877036 13.0165 0.586761 11.984 0.447945ZM8.75 5C8.75 4.58579 8.41421 4.25 8 4.25C7.58579 4.25 7.25 4.58579 7.25 5V7.25H5C4.58579 7.25 4.25 7.58579 4.25 8C4.25 8.41421 4.58579 8.75 5 8.75H7.25V11C7.25 11.4142 7.58579 11.75 8 11.75C8.41421 11.75 8.75 11.4142 8.75 11V8.75H11C11.4142 8.75 11.75 8.41421 11.75 8C11.75 7.58579 11.4142 7.25 11 7.25H8.75V5Z" fill="#ED1C2B"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.8065 1.16447C14.2759 1.01134 13.7216 1.31736 13.5685 1.84799C13.4154 2.37863 13.7214 2.93292 14.252 3.08605C17.4591 4.01154 19.9889 6.54122 20.9145 9.74819C21.0676 10.2788 21.6219 10.5848 22.1526 10.4317C22.6832 10.2785 22.9892 9.72421 22.836 9.19358C21.7199 5.32634 18.6739 2.28049 14.8065 1.16447Z" fill="#2B353E"/>
<path d="M14.2661 6.03666C13.7578 5.82079 13.1707 6.05789 12.9548 6.56624C12.7389 7.07459 12.976 7.66169 13.4844 7.87756C14.6692 8.38068 15.6199 9.33137 16.123 10.5161C16.3389 11.0245 16.926 11.2616 17.4343 11.0457C17.9427 10.8298 18.1798 10.2427 17.9639 9.73438C17.2582 8.07269 15.9278 6.74231 14.2661 6.03666Z" fill="#2B353E"/>
<path d="M6.49064 2.4124C6.21024 1.90937 5.75895 1.52863 5.19226 1.41151C4.61966 1.29316 4.04411 1.46773 3.57108 1.85327C1.85471 3.25218 0.76188 5.49346 1.23618 7.84468C1.52772 9.28994 2.01343 10.7159 3.00255 12.4406C4.98763 15.902 8.0947 19.0108 11.5601 20.9981C13.2848 21.9873 14.7108 22.473 16.156 22.7645C18.5072 23.2388 20.7485 22.146 22.1474 20.4296C22.533 19.9566 22.7075 19.381 22.5892 18.8084C22.4721 18.2417 22.0913 17.7904 21.5883 17.5101L19.9857 16.6168C19.3956 16.2878 18.8989 16.0109 18.4672 15.8301C18.0092 15.6383 17.5575 15.5244 17.0581 15.5765C16.5588 15.6286 16.1403 15.8332 15.7318 16.1154C15.3466 16.3814 14.9177 16.7548 14.4081 17.1985L12.8998 18.5116C12.6296 18.7469 12.4944 18.8645 12.3255 18.8753C12.1566 18.886 12.0124 18.7896 11.7238 18.5967C9.26273 16.9518 7.04759 14.7358 5.404 12.2768C5.21116 11.9882 5.11474 11.844 5.12549 11.6751C5.13624 11.5062 5.25389 11.3711 5.48917 11.1008L6.80218 9.59261C7.24588 9.08298 7.61928 8.65411 7.88529 8.26893C8.16746 7.86034 8.37211 7.4419 8.42419 6.94254C8.47626 6.44318 8.36235 5.99152 8.17054 5.53351C7.98973 5.10174 7.71286 4.60505 7.38385 4.01485L6.49064 2.4124Z" fill="#2B353E"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.60459 5.16663H14.0696C14.956 5.16659 15.7199 5.16655 16.3315 5.24878C16.9871 5.33691 17.6154 5.53566 18.1251 6.04532C18.6347 6.55498 18.8335 7.18333 18.9216 7.83885C18.9733 8.22314 18.9925 8.66748 18.9996 9.16458C18.9996 9.16572 19.0005 9.16664 19.0017 9.16664C19.0024 9.16664 19.003 9.16699 19.0034 9.16752C19.0034 9.16707 19.0036 9.16786 19.0034 9.16752L19.0038 14.1666C19.0038 14.7189 19.4515 15.1666 20.0038 15.1666C20.556 15.1666 21.0038 14.7189 21.0038 14.1666V9.60819C21.0038 9.3826 21.1933 9.2017 21.4177 9.22393C22.0308 9.28463 22.5833 9.41465 23.1152 9.71579C23.6438 10.015 24.0478 10.4245 24.4324 10.9223C24.8257 11.4314 25.1716 11.9767 25.5162 12.5202L25.5174 12.522C25.5742 12.6115 25.6309 12.701 25.6879 12.7903C26.2932 13.7393 27.0401 14.522 27.9681 15.1578C28.8656 15.7725 29.5794 16.2613 29.9748 17.0677C30.1789 17.4839 30.2624 17.9077 30.3009 18.3581C30.3075 18.4349 30.2463 18.5 30.1693 18.5H29.0038C28.4515 18.5 28.0038 18.9477 28.0038 19.5C28.0038 20.0523 28.4515 20.5 29.0038 20.5H29.5326C29.9159 20.5 30.1075 20.5 30.2255 20.6228C30.3436 20.7456 30.3362 20.9316 30.3214 21.3036C30.3119 21.5445 30.2965 21.7681 30.2717 21.9727C30.202 22.5473 30.0447 23.1171 29.6209 23.5964C29.1852 24.0893 28.5846 24.3379 27.9421 24.4278C27.7572 24.4537 27.6087 24.2855 27.6308 24.1002C27.6544 23.9034 27.6665 23.7031 27.6665 23.5C27.6665 20.7385 25.4279 18.5 22.6665 18.5C19.9249 18.5 17.6591 20.7924 17.6666 23.5279C17.6693 24.0187 17.6706 24.2641 17.5533 24.382C17.436 24.5 17.22 24.5 16.7878 24.5H15.2119C14.7797 24.5 14.5636 24.5 14.4464 24.382C14.3291 24.2641 14.3304 24.0187 14.3331 23.5279C14.3406 20.7924 12.0748 18.5 9.33317 18.5C6.57175 18.5 4.33317 20.7385 4.33317 23.5C4.33317 23.7903 4.35793 24.0749 4.40544 24.3518C4.4119 24.3894 4.38046 24.4229 4.34263 24.4178C3.68712 24.3297 3.05876 24.131 2.5491 23.6213C2.03944 23.1116 1.8407 22.4833 1.75256 21.8278C1.67034 21.2162 1.67037 20.4524 1.67041 19.566V10.1008C1.67037 9.21443 1.67034 8.45045 1.75256 7.83885C1.8407 7.18333 2.03944 6.55498 2.5491 6.04532C3.05876 5.53566 3.68712 5.33691 4.34263 5.24878C4.95424 5.16655 5.71821 5.16659 6.60459 5.16663ZM11.6704 10.1666C11.6704 9.61435 11.2227 9.16663 10.6704 9.16663C10.1181 9.16663 9.67041 9.61435 9.67041 10.1666V11.8333H8.00375C7.45146 11.8333 7.00375 12.281 7.00375 12.8333C7.00375 13.3856 7.45146 13.8333 8.00375 13.8333H9.67041V15.5C9.67041 16.0522 10.1181 16.5 10.6704 16.5C11.2227 16.5 11.6704 16.0522 11.6704 15.5V13.8333H13.3371C13.8894 13.8333 14.3371 13.3856 14.3371 12.8333C14.3371 12.281 13.8894 11.8333 13.3371 11.8333H11.6704V10.1666Z" fill="white"/>
<path d="M26.0011 23.5C26.0011 25.3409 24.5088 26.8333 22.6678 26.8333C20.8269 26.8333 19.3345 25.3409 19.3345 23.5C19.3345 21.659 20.8269 20.1666 22.6678 20.1666C24.5088 20.1666 26.0011 21.659 26.0011 23.5Z" fill="white"/>
<path d="M9.33447 26.8333C11.1754 26.8333 12.6678 25.3409 12.6678 23.5C12.6678 21.659 11.1754 20.1666 9.33447 20.1666C7.49353 20.1666 6.00114 21.659 6.00114 23.5C6.00114 25.3409 7.49353 26.8333 9.33447 26.8333Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.1 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 fill-rule="evenodd" clip-rule="evenodd" d="M23.0828 2.57417C21.2916 2.33334 18.9973 2.33336 16.0764 2.33337H15.9239C13.003 2.33336 10.7088 2.33334 8.91753 2.57417C7.08198 2.82095 5.62565 3.33699 4.48138 4.48126C3.33712 5.62552 2.82107 7.08186 2.57429 8.91741C2.33346 10.7086 2.33348 13.0029 2.3335 15.9238V16.0763C2.33348 18.9972 2.33346 21.2915 2.57429 23.0827C2.82107 24.9182 3.33712 26.3746 4.48138 27.5188C5.62565 28.6631 7.08198 29.1791 8.91753 29.4259C10.7087 29.6667 13.003 29.6667 15.9239 29.6667H15.9239H16.0764H16.0764C18.9974 29.6667 21.2916 29.6667 23.0828 29.4259C24.9183 29.1791 26.3747 28.6631 27.5189 27.5188C28.6632 26.3746 29.1793 24.9182 29.426 23.0827C29.6669 21.2915 29.6668 18.9972 29.6668 16.0763V16.0763V15.9238V15.9238C29.6668 13.0028 29.6669 10.7086 29.426 8.91741C29.1793 7.08186 28.6632 5.62552 27.5189 4.48126C26.3747 3.33699 24.9183 2.82095 23.0828 2.57417ZM23.6096 10.2762C24.1303 9.75548 24.1303 8.91126 23.6096 8.39057C23.0889 7.86987 22.2447 7.86987 21.724 8.39057L8.39069 21.7239C7.86999 22.2446 7.86999 23.0888 8.39069 23.6095C8.91139 24.1302 9.75561 24.1302 10.2763 23.6095L23.6096 10.2762ZM8.00016 10.6667C7.26378 10.6667 6.66683 11.2637 6.66683 12C6.66683 12.7364 7.26378 13.3334 8.00016 13.3334L13.3335 13.3334C14.0699 13.3334 14.6668 12.7364 14.6668 12C14.6668 11.2637 14.0699 10.6667 13.3335 10.6667L8.00016 10.6667ZM22.6668 17.3334C22.6668 16.597 22.0699 16 21.3335 16C20.5971 16 20.0002 16.597 20.0002 17.3334V18.6667H18.6668C17.9304 18.6667 17.3335 19.2637 17.3335 20C17.3335 20.7364 17.9304 21.3334 18.6668 21.3334H20.0002V22.6667C20.0002 23.4031 20.5971 24 21.3335 24C22.0699 24 22.6668 23.4031 22.6668 22.6667V21.3334H24.0002C24.7365 21.3334 25.3335 20.7364 25.3335 20C25.3335 19.2637 24.7365 18.6667 24.0002 18.6667H22.6668V17.3334Z" fill="#2E3039"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.00016 2.6665C9.00016 2.11422 8.55245 1.6665 8.00016 1.6665C7.44788 1.6665 7.00016 2.11422 7.00016 2.6665L7.00016 3.51289C5.92715 3.81701 5.02216 4.3113 4.26889 5.12565C3.23167 6.24696 2.77063 7.66373 2.54983 9.43918C2.33347 11.1789 2.33348 13.4085 2.3335 16.2532L2.3335 17.0798C2.33348 19.9246 2.33347 22.1541 2.54983 23.8938C2.77063 25.6693 3.23167 27.086 4.26889 28.2074C5.31635 29.3398 6.65718 29.8533 8.33521 30.0972C9.95925 30.3332 12.0342 30.3332 14.6525 30.3332H14.7335C15.2858 30.3332 15.7335 29.8855 15.7335 29.3332C15.7335 28.7809 15.2858 28.3332 14.7335 28.3332C12.016 28.3332 10.0865 28.3307 8.62288 28.118C7.19653 27.9106 6.35911 27.5217 5.73709 26.8493C5.10481 26.1657 4.73111 25.2276 4.53454 23.647C4.33532 22.0451 4.3335 19.9399 4.3335 17.0088V16.3242C4.3335 14.4676 4.33423 12.9424 4.38539 11.6665L27.6149 11.6665C27.663 12.866 27.6666 14.2877 27.6668 15.9999C27.6669 16.5522 28.1146 16.9999 28.6669 16.9998C29.2192 16.9998 29.6669 16.552 29.6668 15.9997C29.6665 13.2261 29.6606 11.046 29.4377 9.33913C29.2121 7.61045 28.7491 6.22585 27.7314 5.12565C26.9782 4.3113 26.0732 3.81701 25.0002 3.51289V2.6665C25.0002 2.11422 24.5524 1.6665 24.0002 1.6665C23.4479 1.6665 23.0002 2.11422 23.0002 2.6665V3.15436C21.4854 2.9998 19.6215 2.99982 17.3478 2.99984L14.6525 2.99984C12.3789 2.99982 10.5149 2.9998 9.00016 3.15436V2.6665ZM27.4634 9.6665L4.53698 9.6665C4.73419 8.09765 5.10742 7.16446 5.73709 6.48374C6.08287 6.10991 6.49522 5.82372 7.0383 5.60763C7.15758 6.02647 7.54306 6.33317 8.00016 6.33317C8.55245 6.33317 9.00016 5.88546 9.00016 5.33317V5.16595C10.4148 5.00192 12.2433 4.99984 14.7335 4.99984H17.2668C19.757 4.99984 21.5855 5.00192 23.0002 5.16595V5.33317C23.0002 5.88546 23.4479 6.33317 24.0002 6.33317C24.4573 6.33317 24.8427 6.02647 24.962 5.60763C25.5051 5.82372 25.9175 6.10991 26.2632 6.48374C26.8837 7.15449 27.2552 8.07039 27.4546 9.598L27.4634 9.6665Z" fill="#2B353E"/>
<path d="M17.3335 21.6665C16.7812 21.6665 16.3335 22.1142 16.3335 22.6665C16.3335 23.2188 16.7812 23.6665 17.3335 23.6665L28.0002 23.6665C28.5524 23.6665 29.0002 23.2188 29.0002 22.6665C29.0002 22.1142 28.5524 21.6665 28.0002 21.6665L17.3335 21.6665Z" fill="#2B353E"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.0005 1.66663C21.5162 1.66663 19.1469 3.15147 18.1525 5.50526C17.2219 7.70818 17.7399 9.59709 18.7618 11.161C19.5805 12.4138 20.7753 13.5317 21.7984 14.4889C21.9903 14.6684 22.1762 14.8423 22.3524 15.0104L22.3546 15.0125C22.7993 15.4341 23.3897 15.6666 24.0005 15.6666C24.6112 15.6666 25.2018 15.4341 25.6465 15.0125C25.8137 14.8539 25.9894 14.6901 26.1706 14.5212C27.2038 13.5581 28.4141 12.4298 29.2412 11.1614C30.2618 9.59601 30.778 7.70551 29.8485 5.50526C28.8541 3.15147 26.4848 1.66663 24.0005 1.66663ZM23.9894 5.66663C22.7065 5.66663 21.6665 6.71129 21.6665 7.99996C21.6665 9.28862 22.7065 10.3333 23.9894 10.3333H24.0103C25.2932 10.3333 26.3332 9.28862 26.3332 7.99996C26.3332 6.71129 25.2932 5.66663 24.0103 5.66663H23.9894Z" fill="#2E3039"/>
<path d="M1.6665 25.3333C1.6665 22.5719 3.90508 20.3333 6.6665 20.3333C9.42793 20.3333 11.6665 22.5719 11.6665 25.3333C11.6665 28.0947 9.42793 30.3333 6.6665 30.3333C3.90508 30.3333 1.6665 28.0947 1.6665 25.3333Z" fill="#2E3039"/>
<path d="M12.6665 7.99996C9.55303 7.99996 6.6665 10.2024 6.6665 13.3333C6.6665 16.4642 9.55303 18.6666 12.6665 18.6666H16.6665C18.7077 18.6666 19.9998 20.046 19.9998 21.3333C19.9998 22.6206 18.7077 24 16.6665 24H14.6665C13.9301 24 13.3332 24.5969 13.3332 25.3333C13.3332 26.0697 13.9301 26.6666 14.6665 26.6666H16.6665C19.78 26.6666 22.6665 24.4642 22.6665 21.3333C22.6665 18.2024 19.78 16 16.6665 16H12.6665C10.6253 16 9.33317 14.6206 9.33317 13.3333C9.33317 12.046 10.6253 10.6666 12.6665 10.6666H14.6665C15.4029 10.6666 15.9998 10.0697 15.9998 9.33329C15.9998 8.59691 15.4029 7.99996 14.6665 7.99996L12.6665 7.99996Z" fill="#2E3039"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.667 1.6665C10.801 1.6665 7.66697 4.80051 7.66697 8.6665C7.66697 12.5325 10.801 15.6665 14.667 15.6665C18.533 15.6665 21.667 12.5325 21.667 8.6665C21.667 4.80051 18.533 1.6665 14.667 1.6665Z" fill="#2E3039"/>
<path d="M18.3749 30.1118C18.4854 29.8905 18.1887 29.496 17.5953 28.7069C15.8801 26.4261 15.3247 23.4521 15.8781 20.5349L15.8822 20.5131C15.9057 20.3883 15.9601 20.0988 16.036 19.8461C16.1399 19.5005 16.3545 18.9454 16.8477 18.4246C16.8786 18.392 16.9099 18.3604 16.9414 18.3298C17.1114 18.1648 17.041 17.8496 16.8064 17.8165C15.3879 17.6165 13.9456 17.6165 12.5271 17.8165C10.5744 18.0919 8.66502 18.7468 6.92523 19.7827C6.77021 19.875 6.57861 19.9831 6.36185 20.1054C5.41143 20.6416 3.97459 21.4522 2.99036 22.4156C2.37481 23.0181 1.78994 23.8121 1.68361 24.7848C1.57053 25.8193 2.02182 26.7901 2.92718 27.6526C4.48911 29.1407 6.36349 30.3332 8.7879 30.3332L16.9009 30.3332C17.8099 30.3332 18.2644 30.3332 18.3749 30.1118Z" fill="#2E3039"/>
<path d="M23.9989 17.6665C22.9298 17.6665 22.0711 18.0119 21.3705 18.3567C21.1326 18.4738 20.9268 18.5818 20.7398 18.6798C20.3265 18.8966 20.0048 19.0653 19.6305 19.1788C19.3908 19.2514 19.1406 19.3272 18.9661 19.3922C18.8164 19.4479 18.525 19.5606 18.2983 19.8C18.0984 20.0111 18.0039 20.2422 17.95 20.4216C17.9056 20.5695 17.8681 20.7676 17.8417 20.9068C17.0985 24.8226 18.7375 28.6079 22.7544 30.0689C23.1186 30.2016 23.4801 30.3332 24.0008 30.3332C24.5215 30.3332 24.8829 30.2015 25.2471 30.0689C29.264 28.6078 30.9013 24.8222 30.1579 20.9067C30.1316 20.7675 30.0941 20.5694 30.0496 20.4215C29.9957 20.2421 29.9012 20.0109 29.7013 19.7998C29.4745 19.5605 29.1831 19.4478 29.0334 19.3921C28.8589 19.3272 28.6087 19.2514 28.369 19.1788C27.9945 19.0653 27.6723 18.8965 27.2587 18.6797C27.0716 18.5816 26.8657 18.4737 26.6278 18.3567C25.927 18.0119 25.068 17.6665 23.9989 17.6665Z" fill="#2E3039"/>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.8333 3.99984C15.8333 3.26346 16.4303 2.6665 17.1667 2.6665H29.1667C29.903 2.6665 30.5 3.26346 30.5 3.99984C30.5 4.73622 29.903 5.33317 29.1667 5.33317L29.1667 23.3332C29.1667 26.6469 26.4804 29.3332 23.1667 29.3332C19.853 29.3332 17.1667 26.6469 17.1667 23.3332L17.1667 9.33405C17.1667 9.33376 17.1667 9.33434 17.1667 9.33405C17.1667 9.33376 17.1667 9.33259 17.1667 9.33229V5.33317C16.4303 5.33317 15.8333 4.73622 15.8333 3.99984ZM19.8333 7.99984V5.33317H26.5L26.5 13.0676C26.1378 13.317 25.8055 13.5125 25.4733 13.6324C25.0059 13.8012 24.5708 13.8095 24.0425 13.4925C22.6945 12.6837 21.4241 12.879 20.3715 13.4052C20.1897 13.4961 20.0098 13.5996 19.8333 13.7111V10.6665H22.5C23.2364 10.6665 23.8333 10.0695 23.8333 9.33317C23.8333 8.59679 23.2364 7.99984 22.5 7.99984H19.8333Z" fill="#2E3039"/>
<path d="M7.14104 12.6116C7.52794 12.2404 8.13873 12.2404 8.52562 12.6116L8.53329 12.6193C8.69353 12.7817 9.1478 13.2422 9.40228 13.5185C9.91854 14.0791 10.6087 14.8721 11.3012 15.7994C11.9917 16.7239 12.6985 17.8007 13.2361 18.9287C13.7693 20.0478 14.1667 21.2805 14.1667 22.4998C14.1667 24.7601 13.4124 26.4319 12.1558 27.5235C10.9246 28.5931 9.33325 28.9998 7.83333 28.9998C6.33342 28.9998 4.74203 28.5931 3.51084 27.5235C2.25425 26.4319 1.5 24.7601 1.5 22.4998C1.5 21.2805 1.89732 20.0478 2.4306 18.9287C2.96813 17.8007 3.67498 16.7239 4.36544 15.7994C5.05795 14.8721 5.74813 14.0791 6.26439 13.5185C6.51888 13.2422 6.97318 12.7817 7.1334 12.6193L7.14104 12.6116Z" fill="#2E3039"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,8 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="16" cy="16" r="16" fill="white"/>
<path d="M10.9283 20.0172H9.19833C8.90507 20.0177 8.61477 19.9582 8.34497 19.8423C7.81811 19.6161 7.39838 19.1932 7.17346 18.6622C7.05852 18.3911 6.99949 18.0993 7 17.8045V11.2116C6.99939 10.9162 7.05842 10.6239 7.17346 10.3523C7.39809 9.82201 7.81722 9.39978 8.34331 9.17377C8.6123 9.0585 8.90165 8.99939 9.19391 9H17.3035C17.5964 8.9995 17.8863 9.05901 18.1557 9.1749C18.6818 9.4012 19.1005 9.82388 19.3245 10.3545C19.4389 10.6257 19.4977 10.9174 19.4974 11.2121V12.8378C19.1534 12.9686 18.8572 13.2019 18.6481 13.5067C18.439 13.8115 18.327 14.1734 18.327 14.544C18.327 14.9146 18.439 15.2764 18.6481 15.5812C18.8572 15.886 19.1534 16.1194 19.4974 16.2501V17.8006C19.4987 18.0961 19.4406 18.3888 19.3267 18.6611C19.1039 19.1921 18.6855 19.6154 18.1596 19.8418C17.8904 19.9577 17.6006 20.0172 17.3079 20.0167H15.4122C15.6334 19.8267 15.8398 19.6201 16.0298 19.3985C16.0815 19.3359 16.1194 19.263 16.1411 19.1846C16.1628 19.1062 16.1678 19.024 16.1557 18.9434C16.6569 18.2637 17.0534 17.5116 17.3316 16.7124C17.4673 16.3291 17.5742 15.9361 17.6514 15.5367C17.7227 15.1733 17.7596 14.8039 17.7619 14.4334C17.7749 14.0012 17.7165 13.5698 17.589 13.1569C17.495 12.8653 17.323 12.6056 17.0919 12.4062C16.8563 12.2172 16.5871 12.0752 16.2988 11.9879C15.9867 11.8821 15.6254 11.7986 15.2438 11.7095V11.7056C15.196 11.605 15.1212 11.5199 15.0278 11.4602C14.9345 11.4004 14.8263 11.3683 14.7157 11.3675C14.5568 11.3675 14.4045 11.4312 14.2922 11.5444C14.1798 11.6577 14.1167 11.8113 14.1167 11.9715C14.1167 12.1317 14.1798 12.2853 14.2922 12.3986C14.4045 12.5119 14.5568 12.5755 14.7157 12.5755C14.8447 12.5722 14.9687 12.5253 15.0681 12.4424L15.0819 12.4474H15.0858H15.0952C15.4769 12.536 15.7779 12.6056 16.0281 12.6875C16.2449 12.7471 16.4473 12.8512 16.6224 12.9932C16.776 13.1333 16.8835 13.3173 16.9306 13.5206C16.999 13.8183 17.0286 14.1236 17.019 14.429C17.0161 14.7573 16.9817 15.0847 16.9163 15.4064C16.8448 15.7635 16.7471 16.1148 16.6241 16.4573C16.4964 16.8155 16.3442 17.1642 16.1684 17.501C15.9951 17.8345 15.7962 18.1539 15.5735 18.4561C15.4984 18.4605 15.425 18.4798 15.3573 18.5129C15.2896 18.5459 15.2291 18.5921 15.1791 18.6488C14.9322 18.944 14.6451 19.2024 14.3263 19.4163C13.9922 19.6606 13.5901 19.7924 13.1774 19.793C12.7647 19.7936 12.3623 19.6629 12.0275 19.4196C11.7089 19.2071 11.4219 18.9501 11.1752 18.6561C11.1253 18.5994 11.0649 18.5533 10.9973 18.5202C10.9297 18.4871 10.8563 18.4678 10.7814 18.4634C10.5583 18.1604 10.3591 17.8403 10.1854 17.506C10.0093 17.1685 9.85667 16.819 9.72859 16.4601C9.60515 16.1171 9.50728 15.7652 9.43583 15.4075C9.3702 15.0853 9.33564 14.7574 9.33257 14.4284C9.32297 14.1229 9.35227 13.8174 9.41982 13.5195C9.46639 13.3162 9.57358 13.1322 9.72694 12.9921C9.90198 12.8496 10.1046 12.7454 10.3218 12.6863C10.5748 12.6039 10.8929 12.5304 11.2608 12.4457H11.2691L11.2746 12.4407C11.3766 12.5244 11.5033 12.5714 11.6347 12.5744C11.7935 12.5744 11.9458 12.5108 12.0581 12.3976C12.1704 12.2844 12.2335 12.1308 12.2335 11.9707C12.2335 11.8105 12.1704 11.657 12.0581 11.5438C11.9458 11.4306 11.7935 11.367 11.6347 11.367C11.5219 11.367 11.4116 11.4001 11.3171 11.4622C11.2257 11.523 11.151 11.6062 11.1001 11.7039H11.0923C9.52257 12.0693 8.57529 12.2892 8.57529 14.429C8.57758 14.7998 8.61457 15.1696 8.68577 15.5334C8.76354 15.9336 8.87119 16.3274 9.00779 16.7113C9.28773 17.5128 9.68745 18.2664 10.1931 18.9462C10.181 19.0267 10.1859 19.1088 10.2078 19.1872C10.2296 19.2656 10.2677 19.3383 10.3196 19.4007C10.5077 19.6199 10.7117 19.8247 10.9299 20.0133L10.9283 20.0172ZM11.9778 13.7439C11.8938 13.7433 11.8128 13.7755 11.7518 13.8337C11.6908 13.892 11.6546 13.9718 11.6507 14.0564V16.6361C11.6545 16.7205 11.6906 16.8002 11.7515 16.8583C11.8124 16.9164 11.8933 16.9484 11.9772 16.9474H14.4975C14.5815 16.9484 14.6627 16.9165 14.7238 16.8584C14.785 16.8004 14.8215 16.7207 14.8257 16.6361V14.0614C14.8246 14.0195 14.8153 13.9781 14.7982 13.9399C14.7812 13.9016 14.7567 13.8672 14.7262 13.8386C14.6638 13.7793 14.5816 13.7458 14.4959 13.7445L11.9778 13.7439ZM26.537 18.8677H25.6494C25.5092 18.8664 25.372 18.8263 25.2528 18.7519L21.5609 16.4022C21.5089 16.3692 21.466 16.3236 21.4362 16.2694C21.4063 16.2153 21.3905 16.1544 21.3903 16.0925V15.8592C21.5653 15.6893 21.7046 15.4855 21.7998 15.26C21.8949 15.0345 21.9439 14.7921 21.9439 14.547C21.9439 14.302 21.8949 14.0595 21.7998 13.8341C21.7046 13.6086 21.5653 13.4048 21.3903 13.2349V12.8217C21.3905 12.7596 21.4063 12.6987 21.4361 12.6445C21.4659 12.5902 21.5089 12.5445 21.5609 12.5114L25.2528 10.1618C25.3712 10.0853 25.5088 10.0449 25.6494 10.0454H26.537C26.585 10.0451 26.6325 10.0543 26.6769 10.0725C26.7213 10.0908 26.7617 10.1177 26.7959 10.1516C26.83 10.1856 26.8571 10.226 26.8757 10.2706C26.8943 10.3151 26.9041 10.3629 26.9043 10.4113V18.5024C26.9045 18.5504 26.8951 18.598 26.8768 18.6424C26.8585 18.6867 26.8316 18.727 26.7977 18.7608C26.7284 18.8296 26.6348 18.8678 26.5376 18.8672L26.537 18.8677Z" fill="#2E3039"/>
<path d="M19.8036 15.3489L19.7754 22.8886C19.7754 24.5672 18.4239 26.3143 16.7591 26.3143C15.9592 26.3139 15.1923 25.9933 14.6267 25.423C14.0611 24.8527 13.7432 24.0794 13.7427 23.2729L13.6925 20.8057C14.4823 20.6993 12.226 20.6993 13.0147 20.8057L13.0584 23.2729C13.0604 24.2615 13.4511 25.209 14.1448 25.9078C14.8385 26.6065 15.7786 26.9994 16.7591 27.0004C18.7972 27.0004 20.4526 24.9443 20.4526 22.8886L20.4808 15.3489C21.4424 15.1868 18.8414 15.1874 19.8036 15.3489Z" fill="#ED1C2B"/>
<path d="M20.1332 13.4121C20.3407 13.4121 20.5437 13.4742 20.7162 13.5904C20.8888 13.7067 21.0233 13.872 21.1027 14.0653C21.1822 14.2587 21.203 14.4715 21.1625 14.6767C21.122 14.882 21.022 15.0705 20.8753 15.2185C20.7285 15.3665 20.5415 15.4673 20.3379 15.5081C20.1343 15.5489 19.9233 15.528 19.7316 15.4479C19.5398 15.3678 19.3759 15.2322 19.2606 15.0582C19.1453 14.8841 19.0837 14.6796 19.0837 14.4703C19.0837 14.1896 19.1943 13.9205 19.3911 13.7221C19.5879 13.5236 19.8548 13.4121 20.1332 13.4121Z" fill="#ED1C2B"/>
<path d="M10.9283 20.0172H9.19833C8.90507 20.0177 8.61477 19.9582 8.34497 19.8423C7.81811 19.6161 7.39838 19.1932 7.17346 18.6622C7.05852 18.3911 6.99949 18.0993 7 17.8045V11.2116C6.99939 10.9162 7.05842 10.6239 7.17346 10.3523C7.39809 9.82201 7.81722 9.39978 8.34331 9.17377C8.6123 9.0585 8.90165 8.99939 9.19391 9H17.3035C17.5964 8.9995 17.8863 9.05901 18.1557 9.1749C18.6818 9.4012 19.1005 9.82388 19.3245 10.3545C19.4389 10.6257 19.4977 10.9174 19.4974 11.2121V12.8378C19.1534 12.9686 18.8572 13.2019 18.6481 13.5067C18.439 13.8115 18.327 14.1734 18.327 14.544C18.327 14.9146 18.439 15.2764 18.6481 15.5812C18.8572 15.886 19.1534 16.1194 19.4974 16.2501V17.8006C19.4987 18.0961 19.4406 18.3888 19.3267 18.6611C19.1039 19.1921 18.6855 19.6154 18.1596 19.8418C17.8904 19.9577 17.6006 20.0172 17.3079 20.0167H15.4122C15.6334 19.8267 15.8398 19.6201 16.0298 19.3985C16.0815 19.3359 16.1194 19.263 16.1411 19.1846C16.1628 19.1062 16.1678 19.024 16.1557 18.9434C16.6569 18.2637 17.0534 17.5116 17.3316 16.7124C17.4673 16.3291 17.5742 15.9361 17.6514 15.5367C17.7227 15.1733 17.7596 14.8039 17.7619 14.4334C17.7749 14.0012 17.7165 13.5698 17.589 13.1569C17.495 12.8653 17.323 12.6056 17.0919 12.4062C16.8563 12.2172 16.5871 12.0752 16.2988 11.9879C15.9867 11.8821 15.6254 11.7986 15.2438 11.7095V11.7056C15.196 11.605 15.1212 11.5199 15.0278 11.4602C14.9345 11.4004 14.8263 11.3683 14.7157 11.3675C14.5568 11.3675 14.4045 11.4312 14.2922 11.5444C14.1798 11.6577 14.1167 11.8113 14.1167 11.9715C14.1167 12.1317 14.1798 12.2853 14.2922 12.3986C14.4045 12.5119 14.5568 12.5755 14.7157 12.5755C14.8447 12.5722 14.9687 12.5253 15.0681 12.4424L15.0819 12.4474H15.0858H15.0952C15.4769 12.536 15.7779 12.6056 16.0281 12.6875C16.2449 12.7471 16.4473 12.8512 16.6224 12.9932C16.776 13.1333 16.8835 13.3173 16.9306 13.5206C16.999 13.8183 17.0286 14.1236 17.019 14.429C17.0161 14.7573 16.9817 15.0847 16.9163 15.4064C16.8448 15.7635 16.7471 16.1148 16.6241 16.4573C16.4964 16.8155 16.3442 17.1642 16.1684 17.501C15.9951 17.8345 15.7962 18.1539 15.5735 18.4561C15.4984 18.4605 15.425 18.4798 15.3573 18.5129C15.2896 18.5459 15.2291 18.5921 15.1791 18.6488C14.9322 18.944 14.6451 19.2024 14.3263 19.4163C13.9922 19.6606 13.5901 19.7924 13.1774 19.793C12.7647 19.7936 12.3623 19.6629 12.0275 19.4196C11.7089 19.2071 11.4219 18.9501 11.1752 18.6561C11.1253 18.5994 11.0649 18.5533 10.9973 18.5202C10.9297 18.4871 10.8563 18.4678 10.7814 18.4634C10.5583 18.1604 10.3591 17.8403 10.1854 17.506C10.0093 17.1685 9.85667 16.819 9.72859 16.4601C9.60515 16.1171 9.50728 15.7652 9.43583 15.4075C9.3702 15.0853 9.33564 14.7574 9.33257 14.4284C9.32297 14.1229 9.35227 13.8174 9.41982 13.5195C9.46639 13.3162 9.57358 13.1322 9.72694 12.9921C9.90198 12.8496 10.1046 12.7454 10.3218 12.6863C10.5748 12.6039 10.8929 12.5304 11.2608 12.4457H11.2691L11.2746 12.4407C11.3766 12.5244 11.5033 12.5714 11.6347 12.5744C11.7935 12.5744 11.9458 12.5108 12.0581 12.3976C12.1704 12.2844 12.2335 12.1308 12.2335 11.9707C12.2335 11.8105 12.1704 11.657 12.0581 11.5438C11.9458 11.4306 11.7935 11.367 11.6347 11.367C11.5219 11.367 11.4116 11.4001 11.3171 11.4622C11.2257 11.523 11.151 11.6062 11.1001 11.7039H11.0923C9.52257 12.0693 8.57529 12.2892 8.57529 14.429C8.57758 14.7998 8.61457 15.1696 8.68577 15.5334C8.76354 15.9336 8.87119 16.3274 9.00779 16.7113C9.28773 17.5128 9.68745 18.2664 10.1931 18.9462C10.181 19.0267 10.1859 19.1088 10.2078 19.1872C10.2296 19.2656 10.2677 19.3383 10.3196 19.4007C10.5077 19.6199 10.7117 19.8247 10.9299 20.0133L10.9283 20.0172ZM26.5354 18.8649H25.6477C25.5075 18.8636 25.3704 18.8236 25.2512 18.7491L21.5593 16.3994C21.5073 16.3665 21.4644 16.3208 21.4345 16.2667C21.4047 16.2125 21.3889 16.1517 21.3886 16.0898V15.8564C21.5637 15.6865 21.703 15.4827 21.7981 15.2572C21.8932 15.0318 21.9423 14.7893 21.9423 14.5443C21.9423 14.2992 21.8932 14.0567 21.7981 13.8313C21.703 13.6058 21.5637 13.402 21.3886 13.2321V12.8189C21.3888 12.7569 21.4046 12.6959 21.4345 12.6417C21.4643 12.5874 21.5072 12.5417 21.5593 12.5087L25.2512 10.159C25.3695 10.0825 25.5072 10.0421 25.6477 10.0426H26.5354C26.5833 10.0423 26.6309 10.0515 26.6753 10.0697C26.7197 10.088 26.7601 10.1149 26.7942 10.1488C26.8283 10.1828 26.8554 10.2232 26.874 10.2678C26.8927 10.3123 26.9024 10.3601 26.9027 10.4085V18.4996C26.9028 18.5476 26.8934 18.5952 26.8751 18.6396C26.8568 18.684 26.83 18.7242 26.7961 18.758C26.7268 18.8268 26.6332 18.8651 26.5359 18.8644L26.5354 18.8649Z" fill="#2E3039"/>
<path d="M12.0947 16.4709H12.2714H12.8238C12.8895 16.4709 12.9447 16.4002 12.948 16.2977V15.8338C12.948 15.7347 12.9922 15.6567 13.0585 15.6522H13.2281C13.2966 15.6567 13.3435 15.7352 13.3435 15.8338V16.3016C13.3463 16.4035 13.3927 16.4687 13.459 16.4687H14.2035V15.8928C14.2035 15.7937 14.1566 15.7168 14.0875 15.7124H13.7882C13.7219 15.7124 13.67 15.6422 13.6672 15.5397V15.3838C13.6705 15.2819 13.7224 15.2111 13.7893 15.2111H14.0897C14.1582 15.2067 14.2002 15.1254 14.2002 15.0262V14.3078C14.1756 14.3484 14.142 14.3827 14.1021 14.4079C14.0621 14.4331 14.0168 14.4486 13.9699 14.4532H13.4639C13.3982 14.4532 13.343 14.5256 13.3397 14.628V15.0897C13.3363 15.1917 13.2844 15.2641 13.2187 15.2641H13.0657C12.9994 15.2641 12.9464 15.1944 12.9431 15.0925V14.6264C12.9403 14.5239 12.8878 14.4554 12.8216 14.4554H12.0875V15.0318C12.0875 15.1309 12.1333 15.2106 12.2018 15.215H12.5028C12.5708 15.2195 12.6188 15.3014 12.6188 15.3999V15.533C12.6188 15.6322 12.5724 15.7113 12.504 15.7157H12.2029C12.1344 15.7202 12.0886 15.7987 12.0886 15.8978L12.0947 16.4709ZM14.6233 14.2699V16.6714C14.6194 16.7503 14.5854 16.8246 14.5283 16.8787C14.4713 16.9328 14.3956 16.9625 14.3173 16.9616H11.9665C11.8882 16.9625 11.8126 16.9327 11.7557 16.8785C11.6988 16.8242 11.6651 16.7497 11.6616 16.6709V14.2649C11.6652 14.186 11.699 14.1116 11.7558 14.0573C11.8127 14.003 11.8882 13.973 11.9665 13.9736H14.3151C14.3941 13.9737 14.4701 14.0043 14.5274 14.0593C14.5846 14.1142 14.6188 14.1892 14.6228 14.2688" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,5 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M28.1495 4.91232C26.3937 1.81999 22.478 0.736654 19.4046 2.54096L6.18365 10.3026C3.12854 12.0962 2.10392 16.0422 3.85011 19.1176C4.90517 20.9758 6.74039 22.1104 8.70768 22.3253C9.42135 22.4033 10.0635 21.8917 10.142 21.1826C10.2205 20.4736 9.70555 19.8355 8.99189 19.7576C7.83801 19.6315 6.74934 18.9663 6.11464 17.8484C5.0504 15.9741 5.69362 13.5908 7.50632 12.5266L12.9992 9.30189L14.2315 11.3672C14.5977 11.9808 15.3952 12.1833 16.0128 11.8196C16.6304 11.4558 16.8342 10.6635 16.4681 10.0499L15.2376 7.98776L20.7272 4.76495C22.5217 3.71149 24.8303 4.32408 25.885 6.18155C26.7365 7.6812 26.4968 9.52027 25.4222 10.7383C24.949 11.2747 25.003 12.0908 25.5429 12.561C26.0829 13.0312 26.9042 12.9775 27.3775 12.441C29.163 10.4171 29.5559 7.38925 28.1495 4.91232Z" fill="#2E3039"/>
<path d="M27.0494 15.936C27.0195 16.1244 26.8361 16.2304 26.4691 16.4422L12.5233 24.4938C12.1563 24.7057 11.9728 24.8116 11.7947 24.7432C11.6166 24.6748 11.555 24.4851 11.4318 24.1057C10.1479 20.151 11.7511 15.7029 15.4965 13.5404C19.242 11.378 23.8958 12.2137 26.6787 15.3029C26.9457 15.5993 27.0792 15.7475 27.0494 15.936Z" fill="#2E3039"/>
<path d="M28.1978 17.9248C28.0197 17.8564 27.8363 17.9623 27.4694 18.1741L13.523 26.226C13.1561 26.4379 12.9727 26.5438 12.9428 26.7323C12.913 26.9207 13.0464 27.0689 13.3133 27.3653C16.0962 30.4554 20.7506 31.2916 24.4965 29.1289C28.2425 26.9662 29.8455 22.5172 28.5608 18.5621C28.4376 18.1828 28.376 17.9931 28.1978 17.9248Z" fill="#2E3039"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,4 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.0406 16.626C13.8531 16.4385 13.5987 16.3331 13.3335 16.3331C12.9901 16.3331 12.6563 16.3331 12.3335 16.3342V21.8045C13.8725 22.2398 15.0002 23.6548 15.0002 25.3331V26.6665C15.0002 27.2187 14.5524 27.6665 14.0002 27.6665C13.4479 27.6665 13.0002 27.2187 13.0002 26.6665V25.3331C13.0002 24.4127 12.254 23.6665 11.3335 23.6665C10.413 23.6665 9.66683 24.4127 9.66683 25.3331V26.6665C9.66683 27.2187 9.21912 27.6665 8.66683 27.6665C8.11455 27.6665 7.66683 27.2187 7.66683 26.6665V25.3331C7.66683 23.6548 8.79449 22.2398 10.3335 21.8045V16.3684C9.77143 16.3909 9.26188 16.4279 8.81116 16.4885C7.61102 16.6499 6.60052 16.995 5.79796 17.7976C4.99541 18.6002 4.65022 19.6107 4.48886 20.8108C4.33345 21.9667 4.33347 23.4365 4.3335 25.2599V29.3331C4.3335 29.8854 4.78121 30.3331 5.3335 30.3331H26.6668C27.2191 30.3331 27.6668 29.8854 27.6668 29.3331V25.26C27.6669 23.4365 27.6669 21.9668 27.5115 20.8108C27.3501 19.6107 27.0049 18.6002 26.2024 17.7976C25.3998 16.995 24.3893 16.6499 23.1892 16.4885C22.9239 16.4528 22.6382 16.4254 22.3335 16.4042V23.934C22.9313 24.2798 23.3335 24.9262 23.3335 25.6665C23.3335 26.771 22.4381 27.6665 21.3335 27.6665C20.2289 27.6665 19.3335 26.771 19.3335 25.6665C19.3335 24.9262 19.7357 24.2798 20.3335 23.934V16.3383C19.8094 16.3331 19.2529 16.3331 18.6675 16.3331C18.4023 16.3331 18.1473 16.4385 17.9597 16.626L16.0002 18.5856L14.0406 16.626Z" fill="#2E3039"/>
<path d="M16.0002 1.6665C12.8706 1.6665 10.3335 4.20356 10.3335 7.33317V8.6665C10.3335 11.7961 12.8706 14.3332 16.0002 14.3332C19.1298 14.3332 21.6668 11.7961 21.6668 8.6665V7.33317C21.6668 4.20356 19.1298 1.6665 16.0002 1.6665Z" fill="#2E3039"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -776,5 +776,6 @@
"validPassportNumber": "يرجى إدخال رقم جواز سفر صالح",
"continuePlan": "متابعة خطة العلاج؟",
"aboutApp": "حول التطبيق",
"dontHaveAccount": "ليس لديك حساب؟"
"dontHaveAccount": "ليس لديك حساب؟",
"loginOrRegister": "تسجيل الدخول أو التسجيل"
}

@ -772,5 +772,6 @@
"aboutApp": "About the app",
"aboutPoints": "Online Appointment Booking & rescheduling, Insurance approval status, Find A doctor, Ask your doctor, Medical prescriptions, Lab results, Hospitals contact numbers, Doctor profiles, Hospitals locations, Pharmacies Locations, Hospital's Virtual Tour, Official Social Media, Vaccines Schedule, Health Calculators, Other Services",
"termsConditions": "These Online Services Terms of Use (Service Terms) govern certain online services provided by Dr Sulaiman Al Habib Medical Services Group Company (HMG, we, us, our)...",
"dontHaveAccount": "Don't have an account?"
"dontHaveAccount": "Don't have an account?",
"loginOrRegister": "Login or Register"
}

@ -3,7 +3,6 @@ PODS:
- Flutter
- connectivity_plus (0.0.1):
- Flutter
- CryptoSwift (1.8.4)
- device_calendar (0.0.1):
- Flutter
- device_info_plus (0.0.1):
@ -42,20 +41,11 @@ PODS:
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- Firebase/Analytics (11.15.0):
- Firebase/Core
- Firebase/Core (11.15.0):
- Firebase/CoreOnly
- FirebaseAnalytics (~> 11.15.0)
- Firebase/CoreOnly (11.15.0):
- FirebaseCore (~> 11.15.0)
- Firebase/Messaging (11.15.0):
- Firebase/CoreOnly
- FirebaseMessaging (~> 11.15.0)
- firebase_analytics (11.6.0):
- Firebase/Analytics (= 11.15.0)
- firebase_core
- Flutter
- firebase_core (3.15.2):
- Firebase/CoreOnly (= 11.15.0)
- Flutter
@ -63,24 +53,6 @@ PODS:
- Firebase/Messaging (= 11.15.0)
- firebase_core
- Flutter
- FirebaseAnalytics (11.15.0):
- FirebaseAnalytics/Default (= 11.15.0)
- FirebaseCore (~> 11.15.0)
- FirebaseInstallations (~> 11.0)
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
- GoogleUtilities/MethodSwizzler (~> 8.1)
- GoogleUtilities/Network (~> 8.1)
- "GoogleUtilities/NSData+zlib (~> 8.1)"
- nanopb (~> 3.30910.0)
- FirebaseAnalytics/Default (11.15.0):
- FirebaseCore (~> 11.15.0)
- FirebaseInstallations (~> 11.0)
- GoogleAppMeasurement/Default (= 11.15.0)
- GoogleUtilities/AppDelegateSwizzler (~> 8.1)
- GoogleUtilities/MethodSwizzler (~> 8.1)
- GoogleUtilities/Network (~> 8.1)
- "GoogleUtilities/NSData+zlib (~> 8.1)"
- nanopb (~> 3.30910.0)
- FirebaseCore (11.15.0):
- FirebaseCoreInternal (~> 11.15.0)
- GoogleUtilities/Environment (~> 8.1)
@ -103,9 +75,6 @@ PODS:
- nanopb (~> 3.30910.0)
- FLAnimatedImage (1.0.17)
- Flutter (1.0.0)
- flutter_callkit_incoming (0.0.1):
- CryptoSwift
- Flutter
- flutter_inappwebview_ios (0.0.1):
- Flutter
- flutter_inappwebview_ios/Core (= 0.0.1)
@ -277,7 +246,6 @@ DEPENDENCIES:
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
- FLAnimatedImage
- Flutter (from `Flutter`)
- flutter_callkit_incoming (from `.symlinks/plugins/flutter_callkit_incoming/ios`)
- flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
- flutter_ios_voip_kit_karmm (from `.symlinks/plugins/flutter_ios_voip_kit_karmm/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
@ -302,7 +270,6 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- CryptoSwift
- DKImagePickerController
- DKPhotoGallery
- Firebase
@ -356,8 +323,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/firebase_messaging/ios"
Flutter:
:path: Flutter
flutter_callkit_incoming:
:path: ".symlinks/plugins/flutter_callkit_incoming/ios"
flutter_inappwebview_ios:
:path: ".symlinks/plugins/flutter_inappwebview_ios/ios"
flutter_ios_voip_kit_karmm:
@ -400,24 +365,20 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
audio_session: 19e9480dbdd4e5f6c4543826b2e8b0e4ab6145fe
connectivity_plus: 2a701ffec2c0ae28a48cf7540e279787e77c447d
CryptoSwift: e64e11850ede528a02a0f3e768cec8e9d92ecb90
device_calendar: 9cb33f88a02e19652ec7b8b122ca778f751b1f7b
device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: b159e0c068aef54932bb15dc9fd1571818edaf49
Firebase: d99ac19b909cd2c548339c2241ecd0d1599ab02e
firebase_analytics: bf93e20703c95030404d6ddbb1adf05bf5c3885b
firebase_core: 99a37263b3c27536063a7b601d9e2a49400a433c
firebase_messaging: bf6697c61f31c7cc0f654131212ff04c0115c2c7
FirebaseAnalytics: 6433dfd311ba78084fc93bdfc145e8cb75740eae
FirebaseCore: efb3893e5b94f32b86e331e3bd6dadf18b66568e
FirebaseCoreInternal: 9afa45b1159304c963da48addb78275ef701c6b4
FirebaseInstallations: 317270fec08a5d418fdbc8429282238cab3ac843
FirebaseMessaging: 3b26e2cee503815e01c3701236b020aa9b576f09
FLAnimatedImage: bbf914596368867157cc71b38a8ec834b3eeb32b
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
flutter_callkit_incoming: 417dd1b46541cdd5d855ad795ccbe97d1c18155e
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4
flutter_ios_voip_kit_karmm: 7ea37381a8841c92d186edf1f4604df5cc437579
flutter_local_notifications: ff50f8405aaa0ccdc7dcfb9022ca192e8ad9688f
@ -426,8 +387,6 @@ SPEC CHECKSUMS:
geolocator_apple: 66b711889fd333205763b83c9dcf0a57a28c7afd
Google-Maps-iOS-Utils: 66d6de12be1ce6d3742a54661e7a79cb317a9321
google_maps_flutter_ios: e31555a04d1986ab130f2b9f24b6cdc861acc6d3
GoogleAdsOnDeviceConversion: 2be6297a4f048459e0ae17fad9bfd2844e10cf64
GoogleAppMeasurement: 700dce7541804bec33db590a5c496b663fbe2539
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleMaps: 8939898920281c649150e0af74aa291c60f2e77d
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
@ -464,4 +423,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: 5df9d8aa8f2c105eacd5ad7a310503d93c68c86b
COCOAPODS: 1.16.2
COCOAPODS: 1.15.2

@ -42,12 +42,22 @@ class AppAssets {
static const String birthday_cake = '$svgBasePath/birthday-cake.svg';
static const String password_validation = '$svgBasePath/password-validation.svg';
static const String cloud_logo = '$svgBasePath/cloud_logo.svg';
static const String contact_icon = '$svgBasePath/contact_icon.svg';
static const String emergency_services_icon = '$svgBasePath/emergency_services_icon.svg';
static const String indoor_nav_icon = '$svgBasePath/indoor_nav_icon.svg';
static const String search_doctor_icon = '$svgBasePath/search_doctor_icon.svg';
static const String health_calculators_icon = '$svgBasePath/health_calculators_icon.svg';
static const String lab_result_icon = '$svgBasePath/lab_result_icon.svg';
static const String my_prescription_icon = '$svgBasePath/my_prescription_icon.svg';
static const String insurance_update_icon = '$svgBasePath/insurance_update.svg';
static const String home_calendar_icon = '$svgBasePath/home_calendar_icon.svg';
static const String add_icon = '$svgBasePath/add_icon.svg';
static const String livecare_icon = '$svgBasePath/livecare_icon.svg';
// PNGS //
static const String hmg_logo = '$pngBasePath/hmg_logo.png';
static const String livecare_service = '$pngBasePath/livecare_service.png';
}
class AppAnimations {

@ -13,6 +13,8 @@ class AppState {
//Tokens
bool isAuthenticated = false;
bool isAuthenticated = true;
set setIsAuthenticated(v) => isAuthenticated = v;
set setAppAuthToken(v) => appAuthToken = v;

@ -9,7 +9,7 @@ import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart';
// import 'package:flutter_callkit_incoming/flutter_callkit_incoming.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:hmg_patient_app_new/core/utils/LocalNotification.dart';
@ -319,7 +319,7 @@ class PushNotificationHandler {
int sdkInt = androidInfo.version.sdkInt ?? 0;
if (sdkInt >= 33) {
await FlutterCallkitIncoming.requestFullIntentPermission();
// await FlutterCallkitIncoming.requestFullIntentPermission();
}
}
}

@ -26,7 +26,7 @@ extension EmailValidator on String {
fontStyle: fontStyle ?? FontStyle.normal,
fontWeight: isBold ? FontWeight.bold : FontWeight.normal,
color: color ?? AppColors.blackColor,
letterSpacing: 0.64,
letterSpacing: -0.4,
),
);
@ -39,7 +39,7 @@ extension EmailValidator on String {
fontStyle: fontStyle ?? FontStyle.normal,
fontWeight: isBold ? FontWeight.bold : FontWeight.normal,
color: color ?? AppColors.blackColor,
letterSpacing: 0.64,
letterSpacing: -0.4,
decoration: isUnderLine ? TextDecoration.underline : null,
decorationColor: color ?? AppColors.blackColor),
);
@ -53,7 +53,7 @@ extension EmailValidator on String {
fontSize: 11.fSize,
fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal),
color: color ?? AppColors.blackColor,
letterSpacing: letterSpacing,
letterSpacing: -0.4,
decoration: isUnderLine ? TextDecoration.underline : null,
),
);
@ -66,7 +66,7 @@ extension EmailValidator on String {
fontSize: 12.fSize,
fontWeight: isBold ? FontWeight.bold : FontWeight.normal,
color: color ?? AppColors.blackColor,
letterSpacing: 0.64,
letterSpacing: -0.4,
decorationColor: isUnderLine ? AppColors.blackColor : null,
decoration: isUnderLine ? TextDecoration.underline : null,
),
@ -81,7 +81,7 @@ extension EmailValidator on String {
fontSize: 12.fSize,
fontWeight: isBold ? FontWeight.bold : FontWeight.normal,
color: color ?? AppColors.blackColor,
letterSpacing: 0.64,
letterSpacing: -0.4,
decoration: isUnderLine ? TextDecoration.underline : null,
),
);
@ -129,7 +129,7 @@ extension EmailValidator on String {
fontSize: 13.fSize,
fontWeight: isBold ? FontWeight.bold : FontWeight.normal,
color: color ?? AppColors.blackColor,
letterSpacing: 0.64,
letterSpacing: -0.4,
decoration: isUnderLine ? TextDecoration.underline : null),
);
@ -140,7 +140,7 @@ extension EmailValidator on String {
style: TextStyle(
color: color ?? AppColors.blackColor,
fontSize: 14.fSize,
letterSpacing: 0.64,
letterSpacing: -0.4,
fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal),
decoration: isUnderLine ? TextDecoration.underline : null),
);
@ -152,7 +152,7 @@ extension EmailValidator on String {
style: TextStyle(
color: color ?? AppColors.blackColor,
fontSize: 15.fSize,
letterSpacing: 0.64,
letterSpacing: -0.4,
fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal),
decoration: isUnderLine ? TextDecoration.underline : null),
);
@ -172,7 +172,7 @@ extension EmailValidator on String {
style: TextStyle(
color: color ?? AppColors.blackColor,
fontSize: 16.fSize,
letterSpacing: 0.64,
letterSpacing: -0.4,
fontWeight: isBold ? FontWeight.bold : FontWeight.normal,
decoration: isUnderLine ? TextDecoration.underline : null,
),
@ -181,53 +181,53 @@ extension EmailValidator on String {
Widget toText17({Color? color, bool isBold = false, bool isCenter = false}) => Text(
this,
textAlign: isCenter ? TextAlign.center : null,
style: TextStyle(color: color ?? AppColors.blackColor, fontSize: 17.fSize, letterSpacing: 0.64, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
style: TextStyle(color: color ?? AppColors.blackColor, fontSize: 17.fSize, letterSpacing: -0.4, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
);
Widget toText18({Color? color, bool isBold = false, bool isCenter = false, int? maxlines}) => Text(
maxLines: maxlines,
textAlign: isCenter ? TextAlign.center : null,
this,
style: TextStyle(fontSize: 18.fSize, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, color: color ?? AppColors.blackColor, letterSpacing: 0.64),
style: TextStyle(fontSize: 18.fSize, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, color: color ?? AppColors.blackColor, letterSpacing: -0.4),
);
Widget toText19({Color? color, bool isBold = false}) => Text(
this,
style: TextStyle(fontSize: 19.fSize, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, color: color ?? AppColors.blackColor, letterSpacing: 0.64),
style: TextStyle(fontSize: 19.fSize, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, color: color ?? AppColors.blackColor, letterSpacing: -0.4),
);
Widget toText20({Color? color, bool isBold = false}) => Text(
this,
style: TextStyle(fontSize: 20.fSize, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, color: color ?? AppColors.blackColor, letterSpacing: 0.64),
style: TextStyle(fontSize: 20.fSize, fontWeight: isBold ? FontWeight.bold : FontWeight.normal, color: color ?? AppColors.blackColor, letterSpacing: -0.4),
);
Widget toText21({Color? color, bool isBold = false, FontWeight? weight, int? maxlines}) => Text(
this,
maxLines: maxlines,
style: TextStyle(color: color ?? AppColors.blackColor, fontSize: 21.fSize, letterSpacing: 0.64, fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal)),
style: TextStyle(color: color ?? AppColors.blackColor, fontSize: 21.fSize, letterSpacing: -0.4, fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.normal)),
);
Widget toText22({Color? color, bool isBold = false, bool isCenter = false}) => Text(
this,
textAlign: isCenter ? TextAlign.center : null,
style: TextStyle(height: 1, color: color ?? AppColors.blackColor, fontSize: 22.fSize, letterSpacing: 0.64, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
style: TextStyle(height: 1, color: color ?? AppColors.blackColor, fontSize: 22.fSize, letterSpacing: -0.4, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
);
Widget toText24({Color? color, bool isBold = false, bool isCenter = false}) => Text(
this,
textAlign: isCenter ? TextAlign.center : null,
style: TextStyle(height: 23 / 24, color: color ?? AppColors.blackColor, fontSize: 24.fSize, letterSpacing: 0.64, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
style: TextStyle(height: 23 / 24, color: color ?? AppColors.blackColor, fontSize: 24.fSize, letterSpacing: -0.4, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
);
Widget toText32({Color? color, bool isBold = false, bool isCenter = false}) => Text(
this,
textAlign: isCenter ? TextAlign.center : null,
style: TextStyle(height: 32 / 32, color: color ?? AppColors.blackColor, fontSize: 32.fSize, letterSpacing: 0.64, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
style: TextStyle(height: 32 / 32, color: color ?? AppColors.blackColor, fontSize: 32.fSize, letterSpacing: -0.4, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
);
Widget toText44({Color? color, bool isBold = false}) => Text(
this,
style: TextStyle(height: 32 / 32, color: color ?? AppColors.blackColor, fontSize: 44.fSize, letterSpacing: 0.64, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
style: TextStyle(height: 32 / 32, color: color ?? AppColors.blackColor, fontSize: 44.fSize, letterSpacing: -0.4, fontWeight: isBold ? FontWeight.bold : FontWeight.normal),
);
Widget toSectionHeading({String upperHeading = "", String lowerHeading = ""}) {

@ -775,5 +775,6 @@ abstract class LocaleKeys {
static const continuePlan = 'continuePlan';
static const aboutApp = 'aboutApp';
static const dontHaveAccount = 'dontHaveAccount';
static const loginOrRegister = 'loginOrRegister';
}

@ -8,6 +8,8 @@ import 'package:flutter/services.dart';
import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/dependencies.dart';
import 'package:hmg_patient_app_new/features/authentication/authentication_view_model.dart';
import 'package:hmg_patient_app_new/providers/authentication_view_model.dart';
import 'package:hmg_patient_app_new/providers/bottom_navigation_provider.dart';
import 'package:hmg_patient_app_new/routes/app_routes.dart';
import 'package:hmg_patient_app_new/services/logger_service.dart';
import 'package:hmg_patient_app_new/theme/app_theme.dart';
@ -55,6 +57,9 @@ void main() async {
path: 'assets/langs',
fallbackLocale: Locale('en', 'US'),
child: MultiProvider(providers: <SingleChildWidget>[
ChangeNotifierProvider<BottomNavigationProvider>(
create: (_) => BottomNavigationProvider(),
),
ChangeNotifierProvider<AuthenticationViewModel>(
create: (_) => AuthenticationViewModel(authenticationRepo: getIt(), appState: getIt()),
),
@ -82,7 +87,7 @@ class MyApp extends StatelessWidget {
return MediaQuery(
data: MediaQuery.of(context).copyWith(
textScaler: TextScaler.linear(1.0),
), //set desired text scale factor here
),
child: mchild!);
},
showSemanticsDebugger: false,

@ -6,22 +6,35 @@ import 'package:hmg_patient_app_new/core/app_assets.dart';
import 'package:hmg_patient_app_new/core/utils/utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/authentication/authentication_view_model.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
import 'package:hmg_patient_app_new/widgets/appbar/app_bar_widget.dart';
import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart';
import 'package:hmg_patient_app_new/widgets/input_widget.dart';
import 'package:sizer/sizer.dart';
import 'package:sizer/sizer.dart'; // Import sizer
class LoginScreen extends StatelessWidget {
const LoginScreen({super.key});
class LoginScreen extends StatefulWidget {
@override
_LoginScreen createState() => _LoginScreen();
}
class _LoginScreen extends State<LoginScreen> {
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Sizer(// Wrap with Sizer
builder: (context, orientation, deviceType) {
return Scaffold(
backgroundColor: AppColors.bgScaffoldColor,
appBar: CustomAppBar(
onBackPressed: () {
},
@ -43,16 +56,17 @@ class LoginScreen extends StatelessWidget {
children: [
Utils.showLottie(context: context, assetPath: AppAnimations.login, width: 45.w, height: 22.h, repeat: true, fit: BoxFit.cover),
SizedBox(height: 19.h), // Adjusted to sizer unit
Text(
LocaleKeys.welcomeToDrSulaiman.tr(),
style: context.dynamicTextStyle(
fontSize: 22.sp,
fontWeight: FontWeight.w600,
color: AppColors.textColor,
letterSpacing: -0.4,
height: 40 / 28,
),
),
LocaleKeys.welcomeToDrSulaiman.tr().toText22(isBold: true, color: AppColors.textColor),
// Text(
// LocaleKeys.welcomeToDrSulaiman.tr(),
// style: context.dynamicTextStyle(
// fontSize: 22,
// fontWeight: FontWeight.w600,
// color: AppColors.textColor,
// letterSpacing: -0.4,
// height: 40 / 28,
// ),
// ),
SizedBox(height: 4.h), // Adjusted to sizer unit (approx 32px)
TextInputWidget(
labelText: "${LocaleKeys.nationalId.tr()} / ${LocaleKeys.fileNo.tr()}",

@ -0,0 +1,165 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/app_assets.dart';
import 'package:hmg_patient_app_new/presentation/home/data/service_card_data.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
class LandingPageData {
static List<ServiceCardData> getNotLoggedInServiceCardsList = [
ServiceCardData(
icon: AppAssets.emergency_services_icon,
title: "Emergency",
subtitle: "Services",
backgroundColor: AppColors.primaryRedColor,
iconColor: AppColors.whiteColor,
textColor: AppColors.whiteColor,
isBold: true,
),
ServiceCardData(
icon: AppAssets.indoor_nav_icon,
title: "Indoor",
subtitle: "Navigation",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.search_doctor_icon,
title: "Search",
subtitle: "Doctor",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.health_calculators_icon,
title: "Health",
subtitle: "Calculators",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.health_calculators_icon,
title: "Health",
subtitle: "Converters",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.health_calculators_icon,
title: "Parking",
subtitle: "Guide",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
];
static List<ServiceCardData> getLoggedInServiceCardsList = [
ServiceCardData(
icon: AppAssets.emergency_services_icon,
title: "Emergency",
subtitle: "Services",
backgroundColor: AppColors.primaryRedColor,
iconColor: AppColors.whiteColor,
textColor: AppColors.whiteColor,
isBold: true,
),
ServiceCardData(
icon: AppAssets.lab_result_icon,
title: "My Lab",
subtitle: "Results",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.my_prescription_icon,
title: "My",
subtitle: "Prescriptions",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.insurance_update_icon,
title: "Insurance",
subtitle: "Update",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.insurance_update_icon,
title: "My",
subtitle: "Doctors",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.insurance_update_icon,
title: "My Sick",
subtitle: "Leaves",
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
];
static List<ServiceCardData> getServiceCardsList = [
ServiceCardData(
icon: AppAssets.livecare_service,
title: "LiveCare",
subtitle: "Explore our app, View our services and offers",
largeCardIcon: AppAssets.livecare_icon,
backgroundColor: Colors.transparent,
iconColor: Colors.transparent,
textColor: Colors.transparent,
isBold: true,
),
ServiceCardData(
icon: AppAssets.lab_result_icon,
title: "Dermatology",
subtitle: "Explore our app, View our services and offers",
largeCardIcon: AppAssets.livecare_icon,
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.my_prescription_icon,
title: "Home Health Care",
subtitle: "Explore our app, View our services and offers",
largeCardIcon: AppAssets.livecare_icon,
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
ServiceCardData(
icon: AppAssets.insurance_update_icon,
title: "Pharmacy",
subtitle: "Explore our app, View our services and offers",
largeCardIcon: AppAssets.livecare_icon,
backgroundColor: AppColors.whiteColor,
iconColor: AppColors.blackColor,
textColor: AppColors.blackColor,
isBold: false,
),
];
}

@ -0,0 +1,25 @@
import 'dart:ui';
import 'package:hmg_patient_app_new/theme/colors.dart';
class ServiceCardData {
final String icon;
final String title;
final String subtitle;
final Color iconColor;
final Color textColor;
final Color backgroundColor;
final bool isBold;
final String largeCardIcon;
ServiceCardData({
this.icon = "",
this.title = "",
this.subtitle = "",
this.largeCardIcon = "",
this.backgroundColor = AppColors.whiteColor,
this.iconColor = AppColors.blackColor,
this.textColor = AppColors.blackColor,
this.isBold = false,
});
}

@ -1,8 +1,24 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_staggered_animations/flutter_staggered_animations.dart';
import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/extensions/int_extensions.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/features/authentication/authentication_view_model.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/presentation/home/data/landing_page_data.dart';
import 'package:hmg_patient_app_new/presentation/home/widgets/large_service_card.dart';
import 'package:hmg_patient_app_new/presentation/home/widgets/small_service_card.dart';
import 'package:hmg_patient_app_new/providers/authentication_view_model.dart';
import 'package:hmg_patient_app_new/providers/bottom_navigation_provider.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
import 'package:provider/provider.dart';
import '../../core/app_assets.dart';
import '../../core/utils/utils.dart';
import '../../widgets/buttons/custom_button.dart';
class LandingPage extends StatefulWidget {
const LandingPage({super.key});
@ -11,25 +27,265 @@ class LandingPage extends StatefulWidget {
}
class _LandingPageState extends State<LandingPage> {
late AuthenticationViewModel authenticationViewModel;
@override
Widget build(BuildContext context) {
AuthenticationViewModel authenticationViewModel = context.read<AuthenticationViewModel>();;
return Scaffold(
body: Column(
children: [
InkWell(
onTap: () {
authenticationViewModel.selectDeviceImei();
},
child: Padding(
padding: const EdgeInsets.all(64.0),
child: "Login".toText18(color: Colors.black),
return Consumer<BottomNavigationProvider>(builder: (context, navigationProvider, child) {
return Scaffold(
backgroundColor: AppColors.bgScaffoldColor,
body: Padding(
padding: EdgeInsets.all(24.h),
child: SingleChildScrollView(
child: Column(
children: [
Padding(
padding: EdgeInsets.only(top: 50.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CustomButton(
text: LocaleKeys.loginOrRegister.tr(context: context),
onPressed: () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (BuildContext context) => LandingPage()),
);
},
backgroundColor: Color(0xffFEE9EA),
borderColor: Color(0xffFEE9EA),
textColor: Color(0xffED1C2B),
fontSize: 16,
fontWeight: FontWeight.w500,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 50,
),
Utils.buildSvgWithAssets(
icon: AppAssets.contact_icon,
width: 24,
height: 24,
),
],
),
),
SizedBox(height: 16.h),
AppState().isAuthenticated
? Column(
children: [
Container(
width: double.infinity,
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor,
borderRadius: 24,
),
child: Padding(
padding: EdgeInsets.all(12.h),
child: Container(
child: Column(
children: [
Utils.buildSvgWithAssets(icon: AppAssets.home_calendar_icon, width: 32.h, height: 32.h),
SizedBox(height: 12.h),
"You do not have any upcoming appointment. Please book an appointment".toText12(isCenter: true),
SizedBox(height: 12.h),
CustomButton(
text: LocaleKeys.bookAppo.tr(context: context),
onPressed: () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (BuildContext context) => LandingPage()),
);
},
backgroundColor: Color(0xffFEE9EA),
borderColor: Color(0xffFEE9EA),
textColor: Color(0xffED1C2B),
fontSize: 14,
fontWeight: FontWeight.w500,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 40,
icon: AppAssets.add_icon,
iconColor: AppColors.primaryRedColor,
),
],
),
),
),
),
SizedBox(height: 12.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
"Quick Links".toText14(isBold: true),
Row(
children: [
"View medical file".toText12(color: AppColors.primaryRedColor),
SizedBox(width: 2.h),
Icon(Icons.arrow_forward_ios, color: AppColors.primaryRedColor, size: 10.h),
],
),
],
),
SizedBox(height: 12.h),
Container(
height: 127.h,
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor,
borderRadius: 24,
),
child: Padding(
padding: EdgeInsets.all(16.h),
child: Column(
children: [
Expanded(
child: ListView.separated(
scrollDirection: Axis.horizontal,
itemCount: LandingPageData.getLoggedInServiceCardsList.length,
shrinkWrap: true,
padding: const EdgeInsets.only(left: 0, right: 8),
itemBuilder: (context, index) {
return AnimationConfiguration.staggeredList(
position: index,
duration: const Duration(milliseconds: 1000),
child: SlideAnimation(
horizontalOffset: 100.0,
child: FadeInAnimation(
child: SmallServiceCard(
icon: LandingPageData.getLoggedInServiceCardsList[index].icon,
title: LandingPageData.getLoggedInServiceCardsList[index].title,
subtitle: LandingPageData.getLoggedInServiceCardsList[index].subtitle,
iconColor: LandingPageData.getLoggedInServiceCardsList[index].iconColor,
textColor: LandingPageData.getLoggedInServiceCardsList[index].textColor,
backgroundColor: LandingPageData.getLoggedInServiceCardsList[index].backgroundColor,
isBold: LandingPageData.getLoggedInServiceCardsList[index].isBold,
),
),
),
);
},
separatorBuilder: (BuildContext cxt, int index) => 0.width,
),
),
],
),
),
)
],
)
: Container(
height: 127.h,
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor,
borderRadius: 24,
),
child: Padding(
padding: EdgeInsets.all(16.h),
child: Column(
children: [
Expanded(
child: ListView.separated(
scrollDirection: Axis.horizontal,
itemCount: LandingPageData.getNotLoggedInServiceCardsList.length,
shrinkWrap: true,
padding: const EdgeInsets.only(left: 0, right: 8),
itemBuilder: (context, index) {
return AnimationConfiguration.staggeredList(
position: index,
duration: const Duration(milliseconds: 1000),
child: SlideAnimation(
horizontalOffset: 100.0,
child: FadeInAnimation(
child: SmallServiceCard(
icon: LandingPageData.getNotLoggedInServiceCardsList[index].icon,
title: LandingPageData.getNotLoggedInServiceCardsList[index].title,
subtitle: LandingPageData.getNotLoggedInServiceCardsList[index].subtitle,
iconColor: LandingPageData.getNotLoggedInServiceCardsList[index].iconColor,
textColor: LandingPageData.getNotLoggedInServiceCardsList[index].textColor,
backgroundColor: LandingPageData.getNotLoggedInServiceCardsList[index].backgroundColor,
isBold: LandingPageData.getNotLoggedInServiceCardsList[index].isBold,
),
),
),
);
},
separatorBuilder: (BuildContext cxt, int index) => 0.width,
),
),
],
),
),
),
SizedBox(height: 16.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
"Services".toText14(isBold: true),
Row(
children: [
"View all services".toText12(color: AppColors.primaryRedColor),
SizedBox(width: 2.h),
Icon(Icons.arrow_forward_ios, color: AppColors.primaryRedColor, size: 10.h),
],
),
],
),
SizedBox(height: 16.h),
SizedBox(
height: 325.h,
child: Column(
children: [
Expanded(
child: ListView.separated(
scrollDirection: Axis.horizontal,
itemCount: LandingPageData.getServiceCardsList.length,
shrinkWrap: true,
padding: const EdgeInsets.only(left: 0, right: 8),
itemBuilder: (context, index) {
return AnimationConfiguration.staggeredList(
position: index,
duration: const Duration(milliseconds: 1000),
child: SlideAnimation(
horizontalOffset: 100.0,
child: FadeInAnimation(
child: LargeServiceCard(
image: LandingPageData.getServiceCardsList[index].icon,
title: LandingPageData.getServiceCardsList[index].title,
subtitle: LandingPageData.getServiceCardsList[index].subtitle,
icon: LandingPageData.getServiceCardsList[index].largeCardIcon,
),
),
),
);
},
separatorBuilder: (BuildContext cxt, int index) => 0.width,
),
),
],
),
),
SizedBox(height: 16.h),
AppState().isAuthenticated
? Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
"My Balance".toText14(isBold: true),
Row(
children: [
"View all services".toText12(color: AppColors.primaryRedColor),
SizedBox(width: 2.h),
Icon(Icons.arrow_forward_ios, color: AppColors.primaryRedColor, size: 10.h),
],
),
],
),
],
)
: SizedBox(),
],
),
),
],
),
);
),
);
});
}
}

@ -0,0 +1,77 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/app_assets.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart';
import '../../../core/utils/utils.dart';
import '../../../theme/colors.dart';
class LargeServiceCard extends StatelessWidget {
final String image;
final String icon;
final String title;
final String subtitle;
LargeServiceCard({
super.key,
this.image = "",
this.icon = "",
this.title = "",
this.subtitle = "",
});
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.symmetric(horizontal: 3.h),
child: Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: Colors.transparent,
borderRadius: 16,
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 8.h),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.asset(AppAssets.livecare_service, width: 220.h, height: 220.h, fit: BoxFit.contain),
SizedBox(height: 3.h),
Row(
children: [
Utils.buildSvgWithAssets(icon: icon, width: 24.h, height: 24.h),
title.toText14(color: AppColors.blackColor, isBold: true),
],
),
SizedBox(width: 220.h, child: subtitle.toText11(color: AppColors.blackColor)),
SizedBox(height: 6.h),
SizedBox(
width: 220.h,
child: CustomButton(
text: LocaleKeys.bookNow.tr(context: context),
onPressed: () {
// Navigator.of(context).pushReplacement(
// MaterialPageRoute(builder: (BuildContext context) => LandingPage()),
// );
},
backgroundColor: AppColors.borderOnlyColor,
borderColor: AppColors.borderOnlyColor,
textColor: AppColors.whiteColor,
fontSize: 14,
fontWeight: FontWeight.bold,
borderRadius: 12,
padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
height: 40.h,
),
),
],
),
),
),
);
}
}

@ -0,0 +1,53 @@
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import '../../../core/utils/utils.dart';
import '../../../theme/colors.dart';
class SmallServiceCard extends StatelessWidget {
final String icon;
final String title;
final String subtitle;
final Color iconColor;
final Color textColor;
final Color backgroundColor;
final bool isBold;
SmallServiceCard({
super.key,
this.icon = "",
this.title = "",
this.subtitle = "",
this.backgroundColor = AppColors.whiteColor,
this.iconColor = AppColors.blackColor,
this.textColor = AppColors.blackColor,
this.isBold = false,
});
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.symmetric(horizontal: 3.h),
child: Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: backgroundColor,
borderRadius: 16,
),
child: Padding(
padding: EdgeInsets.all(12.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Utils.buildSvgWithAssets(icon: icon, iconColor: iconColor, width: 32.h, height: 32.h),
SizedBox(height: 6.h),
title.toText11(color: textColor, isBold: isBold, isCenter: true),
subtitle.toText11(color: textColor, isBold: isBold, isCenter: true),
],
),
),
),
);
}
}

@ -0,0 +1,23 @@
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
class MedicalFilePage extends StatelessWidget {
const MedicalFilePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.bgScaffoldColor,
appBar: AppBar(
title: const Text('Appointments'),
backgroundColor: AppColors.bgScaffoldColor,
),
body: const Center(
child: Text(
'Appointments Page',
style: TextStyle(fontSize: 24),
),
),
);
}
}

@ -0,0 +1,23 @@
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
class ServicesPage extends StatelessWidget {
const ServicesPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.bgScaffoldColor,
appBar: AppBar(
title: const Text('Appointments'),
backgroundColor: AppColors.bgScaffoldColor,
),
body: const Center(
child: Text(
'Appointments Page',
style: TextStyle(fontSize: 24),
),
),
);
}
}

@ -0,0 +1,23 @@
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
class ToDoPage extends StatelessWidget {
const ToDoPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.bgScaffoldColor,
appBar: AppBar(
title: const Text('Appointments'),
backgroundColor: AppColors.bgScaffoldColor,
),
body: const Center(
child: Text(
'Appointments Page',
style: TextStyle(fontSize: 24),
),
),
);
}
}

@ -0,0 +1,12 @@
import 'package:flutter/material.dart';
class BottomNavigationProvider extends ChangeNotifier {
int _currentIndex = 0;
int get currentIndex => _currentIndex;
void setIndex(int index) {
_currentIndex = index;
notifyListeners();
}
}

@ -21,6 +21,7 @@ class AppColors {
// New UI Colors
static const whiteColor = Color(0xFFffffff);
static const Color bgScaffoldColor = Color(0xffF8F8F8);
static const Color primaryRedColor = Color(0xFFED1C2B);
static const Color primaryRedBorderColor = Color(0xFFED1C2B);
static const Color secondaryLightRedColor = Color(0xFFFEE9EA);

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/app_export.dart';
import 'package:hmg_patient_app_new/core/utils/utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
@ -18,6 +19,7 @@ class CustomButton extends StatelessWidget {
final FontWeight fontWeight;
final bool isDisabled;
final Color iconColor;
final double height;
CustomButton({
Key? key,
@ -35,6 +37,7 @@ class CustomButton extends StatelessWidget {
this.isDisabled = false,
this.icon,
this.iconColor = Colors.white,
this.height = 56,
}) : super(key: key);
@override
@ -42,7 +45,7 @@ class CustomButton extends StatelessWidget {
return GestureDetector(
onTap: isDisabled ? null : onPressed,
child: Container(
height: 56,
height: height,
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: isDisabled ? Colors.transparent : backgroundColor,
borderRadius: borderRadius,
@ -64,8 +67,9 @@ class CustomButton extends StatelessWidget {
Text(
text,
style: context.dynamicTextStyle(
fontSize: fontSize,
fontSize: fontSize.fSize,
color: isDisabled ? textColor.withOpacity(0.5) : textColor,
letterSpacing: -0.4,
fontWeight: fontWeight,
),
),

@ -399,15 +399,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.4.1"
flutter_callkit_incoming:
dependency: "direct main"
description:
path: "."
ref: dev
resolved-ref: "4b5aa9798a77eaba1c1726c314c5de74cd37ad6d"
url: "https://github.com/hiennguyen92/flutter_callkit_incoming.git"
source: git
version: "2.5.8"
flutter_hooks:
dependency: transitive
description:
@ -549,6 +540,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.0.1"
flutter_staggered_animations:
dependency: "direct main"
description:
name: flutter_staggered_animations
sha256: "81d3c816c9bb0dca9e8a5d5454610e21ffb068aedb2bde49d2f8d04f75538351"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
flutter_svg:
dependency: "direct main"
description:

@ -33,10 +33,10 @@ dependencies:
provider: ^6.1.5+1
get_it: ^8.2.0
just_audio: ^0.10.4
flutter_callkit_incoming:
git:
url: https://github.com/hiennguyen92/flutter_callkit_incoming.git
ref: dev
# flutter_callkit_incoming:
# git:
# url: https://github.com/hiennguyen92/flutter_callkit_incoming.git
# ref: dev
url_launcher: ^6.3.2
logger: ^2.6.1
lottie: ^3.3.1
@ -66,6 +66,7 @@ dependencies:
firebase_analytics: ^11.5.1
web: any
flutter_staggered_animations: ^1.1.1
smooth_corner: ^1.1.1
dev_dependencies:
@ -89,32 +90,32 @@ flutter:
fonts:
- family: Poppins
fonts:
- asset: assets/fonts/poppins/Poppins-Black.ttf
weight: 900
- asset: assets/fonts/poppins/Poppins-ExtraBold.ttf
weight: 800
- asset: assets/fonts/poppins/Poppins-Bold.ttf
weight: 700
# - asset: assets/fonts/poppins/Poppins-Black.ttf
# weight: 900
# - asset: assets/fonts/poppins/Poppins-ExtraBold.ttf
# weight: 800
# - asset: assets/fonts/poppins/Poppins-Bold.ttf
# weight: 700
- asset: assets/fonts/poppins/Poppins-SemiBold.ttf
weight: 600
- asset: assets/fonts/poppins/Poppins-Medium.ttf
weight: 500
# - asset: assets/fonts/poppins/Poppins-Medium.ttf
# weight: 500
- asset: assets/fonts/poppins/Poppins-Regular.ttf
weight: 400
- asset: assets/fonts/poppins/Poppins-Light.ttf
weight: 300
- asset: assets/fonts/poppins/Poppins-ExtraLight.ttf
weight: 200
- asset: assets/fonts/poppins/Poppins-Thin.ttf
weight: 100
# - asset: assets/fonts/poppins/Poppins-Light.ttf
# weight: 300
# - asset: assets/fonts/poppins/Poppins-ExtraLight.ttf
# weight: 200
# - asset: assets/fonts/poppins/Poppins-Thin.ttf
# weight: 100
- family: GESSTwo
fonts:
- asset: assets/fonts/gess_two/GE_SS_Two_Bold.otf
weight: 600
- asset: assets/fonts/gess_two/GE_SS_Two_Medium.otf
weight: 500
# - asset: assets/fonts/gess_two/GE_SS_Two_Medium.otf
# weight: 500
- asset: assets/fonts/gess_two/GE_SS_Two_Light.otf
weight: 400

Loading…
Cancel
Save