Merge branch 'Dec_fixes' into 'development'

Dec fixes

See merge request Cloud_Solution/doctor_app_flutter!928
merge-requests/929/merge
Elham Ali 4 years ago
commit 0116de2454

@ -0,0 +1,57 @@
<svg id="woman_2_" data-name="woman (2)" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
<g id="Group_7145" data-name="Group 7145">
<g id="Group_7144" data-name="Group 7144">
<g id="Group_7143" data-name="Group 7143">
<g id="Group_7142" data-name="Group 7142">
<g id="XMLID_2114_">
<g id="XMLID_2115_">
<g id="XMLID_2116_">
<g id="XMLID_2117_">
<g id="XMLID_2118_">
<g id="XMLID_2119_">
<g id="XMLID_2120_">
<g id="XMLID_2121_">
<g id="XMLID_2122_">
<g id="XMLID_2123_">
<g id="XMLID_2124_">
<g id="XMLID_2125_">
<g id="XMLID_2126_">
<g id="XMLID_2127_">
<g id="Group_7141" data-name="Group 7141">
<path id="Path_4450" data-name="Path 4450" d="M48,24a23.928,23.928,0,0,1-6.947,16.887C36.7,45.279,30.669,42.776,24,42.776s-12.7,2.5-17.053-1.889A24,24,0,1,1,48,24Z" fill="#e2e2e2"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<path id="Path_4451" data-name="Path 4451" d="M48,24q0-1.087-.1-2.151L33.541,7.485,14.75,23.632,31.62,40.5l1.688,2.974c2.921.089,5.548-.37,7.745-2.589A23.928,23.928,0,0,0,48,24Z" fill="#c4c4c4"/>
<path id="Path_4452" data-name="Path 4452" d="M24,3.287C20.723,2.9,8.986,6.052,12.5,19.837c.924,3.622,4.646,5.913,6.284,6.51,2.5.913,2.742-.517,5.214-2.007,2.472,1.49,2.71,2.919,5.214,2.007,1.638-.6,5.36-2.888,6.284-6.51C39.014,6.052,27.277,2.9,24,3.287Z" fill="#515151"/>
<path id="Path_4453" data-name="Path 4453" d="M35.5,19.838c-.924,3.622-4.646,5.913-6.284,6.51-2.5.913-2.742-.517-5.213-2.007V3.287C27.277,2.9,39.014,6.052,35.5,19.837Z" fill="#3d3d3d"/>
<path id="Path_4454" data-name="Path 4454" d="M18.747,23.459H29.253V34.6H18.747Z" fill="#eaa678"/>
<path id="Path_4455" data-name="Path 4455" d="M24,23.46h5.253V34.6H24Z" fill="#d38c5b"/>
<path id="Path_4456" data-name="Path 4456" d="M18.747,30.452H29.253V41.593H18.747Z" fill="#ffc397"/>
<path id="Path_4457" data-name="Path 4457" d="M24,30.452h5.253V41.593H24Z" fill="#eaa678"/>
<path id="Path_4458" data-name="Path 4458" d="M41.053,35.918v4.969a24,24,0,0,1-34.106,0V35.918a5.466,5.466,0,0,1,5.466-5.467h6.335L24,37.18l5.253-6.728h6.335A5.466,5.466,0,0,1,41.053,35.918Z" fill="#d02127"/>
<path id="Path_4459" data-name="Path 4459" d="M41.053,35.918v4.969A23.925,23.925,0,0,1,24,48V37.18l5.253-6.728h6.335A5.466,5.466,0,0,1,41.053,35.918Z" fill="#aa191e"/>
<path id="Path_4460" data-name="Path 4460" d="M28.256,39.447a2.908,2.908,0,0,0-1.3,2.649c.172,1.751,2.3,3.292,2.3,3.292s3.4-3.062,2.069-5.94l-1.446-.556Z" fill="#3d3d3d"/>
<path id="Path_4461" data-name="Path 4461" d="M32.274,14.271C31.924,8.965,27.632,7,24,7s-7.924,1.961-8.274,7.267a2.285,2.285,0,0,0-1.5,2.409l.161,2.267a1.875,1.875,0,0,0,2.043,1.7l.175-.019c2.076,5.573,5.33,6.154,7.4,6.48,2.066-.326,5.321-.907,7.4-6.48l.175.019a1.875,1.875,0,0,0,2.043-1.7l.161-2.267A2.285,2.285,0,0,0,32.274,14.271Z" fill="#ffc397"/>
<path id="Path_4462" data-name="Path 4462" d="M33.775,16.681l-.161,2.267a1.875,1.875,0,0,1-2.043,1.7l-.175-.019a11.863,11.863,0,0,1-2.445,4.151A7.942,7.942,0,0,1,24,27.1V7c3.632,0,7.924,1.961,8.274,7.267a2.285,2.285,0,0,1,1.5,2.409Z" fill="#eaa678"/>
<path id="Path_4463" data-name="Path 4463" d="M24,4.977c-5.521-1.2-9.452,2.277-9.539,6.282a10.3,10.3,0,0,0,3.027,6.969c-.053-3.326,1-4.7,3.062-5.438A8.7,8.7,0,0,0,24,9.96a8.7,8.7,0,0,0,3.45,2.83c2.059.739,3.115,2.112,3.062,5.438a10.3,10.3,0,0,0,3.027-6.969C33.452,7.253,29.521,3.772,24,4.977Z" fill="#515151"/>
<path id="Path_4464" data-name="Path 4464" d="M33.539,11.259a10.305,10.305,0,0,1-3.027,6.968c.052-3.326-1-4.7-3.062-5.437A8.7,8.7,0,0,1,24,9.96V4.976C29.521,3.772,33.452,7.253,33.539,11.259Z" fill="#3d3d3d"/>
<path id="Path_4465" data-name="Path 4465" d="M33.389,27.8a6.76,6.76,0,0,0-.026-5.35l-3.618,2.514a2.626,2.626,0,0,0-.524.48,2.882,2.882,0,0,0-.2,3.919,3.365,3.365,0,0,0-.367.422,2.833,2.833,0,0,0,.006,3.69c-.043.042-.085.086-.124.132-2.549,2.97.917,5.083.917,5.083a5.421,5.421,0,0,0,3.554-6.78A6.03,6.03,0,0,0,33.389,27.8Z" fill="#3d3d3d"/>
<path id="Path_4466" data-name="Path 4466" d="M31.27,39.657H28.377a.7.7,0,0,1-.7-.7V37.87a.7.7,0,0,1,.7-.7H31.27a.7.7,0,0,1,.7.7v1.087A.7.7,0,0,1,31.27,39.657Z" fill="#d02127"/>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12.179" height="12.188" viewBox="0 0 12.179 12.188">
<path id="Path_4406" data-name="Path 4406" d="M12.039,10.586c1.24-1.24,1.644-1.48,1.348-1.776L12.38,7.8a.3.3,0,0,0-.427,0L10.6,9.152l-.976-.976A4.378,4.378,0,1,0,8.2,9.615l.973.972c-1.24,1.24-1.644,1.48-1.348,1.776L8.828,13.37a.3.3,0,0,0,.427,0L10.6,12.022c1.457,1.457,1.679,1.847,1.977,1.55.97-.97,1.1-1.02,1.1-1.222s-.058-.183-1.638-1.764ZM5.892,8.77a2.9,2.9,0,1,1,2.9-2.9A2.9,2.9,0,0,1,5.892,8.77Z" transform="translate(-1.498 -1.476)" fill="#f0448d"/>
</svg>

After

Width:  |  Height:  |  Size: 565 B

@ -0,0 +1,4 @@
<svg id="hospital_3_" data-name="hospital (3)" xmlns="http://www.w3.org/2000/svg" width="20.5" height="20.5" viewBox="0 0 20.5 20.5">
<path id="Path_4585" data-name="Path 4585" d="M19.9,182.442a.6.6,0,0,0-.6.6v3H18a2.982,2.982,0,0,0-2.921-2.4H8.648v.578L7.413,184.2a3.059,3.059,0,0,0-2.577-.643,1.8,1.8,0,1,0-3.512-.652l-.123-.077V180.6a.6.6,0,0,0-1.2,0v12.092a.6.6,0,0,0,1.2,0v-3H19.3v3a.6.6,0,0,0,1.2,0v-9.649A.6.6,0,0,0,19.9,182.442Zm-18.7,3.6v-1.8l2.853,1.8Z" transform="translate(0 -172.793)" fill="#28323a"/>
<path id="Path_4586" data-name="Path 4586" d="M136.6,1.842h1.2v1.2h-.6a.6.6,0,0,0-.6.6v1.2a1.8,1.8,0,0,0,3.6,0v-1.2a.6.6,0,0,0-.6-.6H139v-1.2h2.4V9.649h1.2V.6a.6.6,0,1,0-1.2.04h-4.8a.6.6,0,0,0,0,1.2Z" transform="translate(-130.555)" fill="#28323a"/>
</svg>

After

Width:  |  Height:  |  Size: 776 B

@ -0,0 +1,56 @@
<svg id="man_5_" data-name="man (5)" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48">
<g id="Group_7139" data-name="Group 7139">
<g id="Group_7138" data-name="Group 7138">
<g id="Group_7137" data-name="Group 7137">
<g id="Group_7136" data-name="Group 7136">
<g id="XMLID_2211_">
<g id="XMLID_2212_">
<g id="XMLID_2213_">
<g id="XMLID_2214_">
<g id="XMLID_2215_">
<g id="XMLID_2216_">
<g id="XMLID_2217_">
<g id="XMLID_2218_">
<g id="XMLID_2219_">
<g id="XMLID_2220_">
<g id="XMLID_2221_">
<g id="XMLID_2222_">
<g id="XMLID_2223_">
<g id="XMLID_2224_">
<g id="XMLID_2225_">
<path id="Path_4436" data-name="Path 4436" d="M0,24A24,24,0,1,1,42.887,38.81c-4.394,5.6-11.221,3.983-18.887,3.983S9.507,44.405,5.113,38.81A23.9,23.9,0,0,1,0,24Z" fill="#e2e2e2"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<path id="Path_4437" data-name="Path 4437" d="M42.887,38.81A23.9,23.9,0,0,0,48,24q0-.493-.02-.982L34.651,9.689C26.856,6.362,15.212,20.337,15.212,20.337l9.778,9.778,4.217,12.829C34.718,43.153,39.518,43.1,42.887,38.81Z" fill="#c4c4c4"/>
<g id="Group_7140" data-name="Group 7140">
<path id="Path_4438" data-name="Path 4438" d="M18.747,23.459H29.253V34.6H18.747Z" fill="#eaa678"/>
<path id="Path_4439" data-name="Path 4439" d="M24,23.46h5.253V34.6H24Z" fill="#d38c5b"/>
<path id="Path_4440" data-name="Path 4440" d="M32.43,46.477a23.683,23.683,0,0,1-3.177.946,24.178,24.178,0,0,1-10.506,0,23.683,23.683,0,0,1-3.177-.946l3.177-16.024L24,33.857l5.253-3.4Z" fill="#d02127"/>
<path id="Path_4441" data-name="Path 4441" d="M32.43,46.477a23.683,23.683,0,0,1-3.177.946A24,24,0,0,1,24,48V33.857l5.253-3.4Z" fill="#aa191e"/>
<path id="Path_4442" data-name="Path 4442" d="M18.747,30.452V47.423A24,24,0,0,1,5.113,38.81V35.741A5.289,5.289,0,0,1,10.4,30.452Z" fill="#2b353e"/>
<path id="Path_4443" data-name="Path 4443" d="M42.887,35.741V38.81a24,24,0,0,1-13.634,8.613V30.452H37.6A5.289,5.289,0,0,1,42.887,35.741Z" fill="#2b353e"/>
<path id="Path_4444" data-name="Path 4444" d="M13.7,39.923v5.761a23.726,23.726,0,0,1-3.023-1.717V39.923Z" fill="#989898"/>
<path id="Path_4445" data-name="Path 4445" d="M37.362,39.923v4.016a23.888,23.888,0,0,1-3.023,1.725V39.923Z" fill="#989898"/>
<path id="Path_4446" data-name="Path 4446" d="M32.274,14.271C31.924,8.965,27.632,7,24,7s-7.924,1.961-8.274,7.267a2.285,2.285,0,0,0-1.5,2.409l.161,2.267a1.875,1.875,0,0,0,2.043,1.7l.175-.019c2.075,5.573,5.33,6.154,7.4,6.48,2.066-.326,5.321-.907,7.4-6.48l.175.019a1.875,1.875,0,0,0,2.043-1.7l.161-2.267A2.285,2.285,0,0,0,32.274,14.271Z" fill="#ffc397"/>
<path id="Path_4447" data-name="Path 4447" d="M33.775,16.681l-.161,2.267a1.875,1.875,0,0,1-2.043,1.7l-.175-.019a11.863,11.863,0,0,1-2.445,4.151A7.942,7.942,0,0,1,24,27.1V7c3.632,0,7.924,1.961,8.274,7.267a2.285,2.285,0,0,1,1.5,2.409Z" fill="#eaa678"/>
<path id="Path_4448" data-name="Path 4448" d="M34.651,9.689A13.957,13.957,0,0,0,24,4.41a8.424,8.424,0,0,0-4.772,1.436c-.026,0-3.178-.265-4.44,1.943s-.107,6.613,1.16,8.619L17.426,17.7l.68-4.473a17.48,17.48,0,0,0,11.514-.762l.8,5.234,1.478-1.294A12.875,12.875,0,0,0,33.6,10.422C34.277,9.986,34.651,9.689,34.651,9.689Z" fill="#515151"/>
<path id="Path_4449" data-name="Path 4449" d="M29.619,12.467l.8,5.234,1.478-1.294A12.875,12.875,0,0,0,33.6,10.422c.677-.436,1.051-.733,1.051-.733A13.956,13.956,0,0,0,24,4.41v9.415A19.77,19.77,0,0,0,29.619,12.467Z" fill="#3d3d3d"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -0,0 +1,3 @@
<svg id="_14._Men_sign" data-name="14. Men sign" xmlns="http://www.w3.org/2000/svg" width="12.739" height="12.739" viewBox="0 0 12.739 12.739">
<path id="Path_4403" data-name="Path 4403" d="M13.928,1.5H8.757a.313.313,0,0,0-.313.313V3.2a.313.313,0,0,0,.313.313h1.988l-2.3,2.3A4.553,4.553,0,1,0,9.93,7.3l2.3-2.3V6.984a.313.313,0,0,0,.313.313h1.383a.313.313,0,0,0,.313-.313V1.813a.313.313,0,0,0-.313-.313ZM6.057,12.687a3,3,0,1,1,3-3,3,3,0,0,1-3,3Z" transform="translate(-1.502 -1.5)" fill="#1474d5"/>
</svg>

After

Width:  |  Height:  |  Size: 507 B

@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22.631" height="6.466" viewBox="0 0 22.631 6.466">
<g id="more_1_" data-name="more (1)" transform="translate(0 -170.666)">
<g id="Group_7031" data-name="Group 7031" transform="translate(0 170.666)">
<g id="Group_7030" data-name="Group 7030" transform="translate(0 0)">
<circle id="Ellipse_145" data-name="Ellipse 145" cx="3.233" cy="3.233" r="3.233"/>
</g>
</g>
<g id="Group_7033" data-name="Group 7033" transform="translate(8.082 170.666)">
<g id="Group_7032" data-name="Group 7032" transform="translate(0 0)">
<circle id="Ellipse_146" data-name="Ellipse 146" cx="3.233" cy="3.233" r="3.233"/>
</g>
</g>
<g id="Group_7035" data-name="Group 7035" transform="translate(16.165 170.666)">
<g id="Group_7034" data-name="Group 7034" transform="translate(0 0)">
<circle id="Ellipse_147" data-name="Ellipse 147" cx="3.233" cy="3.233" r="3.233"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 996 B

@ -0,0 +1,69 @@
<svg xmlns="http://www.w3.org/2000/svg" width="118.141" height="107.644" viewBox="0 0 118.141 107.644">
<g id="content" transform="translate(0 -22.748)">
<g id="Group_7442" data-name="Group 7442" transform="translate(1.731 28.436)">
<g id="Group_7439" data-name="Group 7439" transform="translate(0 8.932)">
<g id="Group_7438" data-name="Group 7438">
<g id="Group_7434" data-name="Group 7434" transform="translate(0 21.014)">
<g id="Group_7430" data-name="Group 7430" transform="translate(63.164)">
<g id="Group_7429" data-name="Group 7429">
<path id="Path_4552" data-name="Path 4552" d="M332.756,179.321v66a2.139,2.139,0,0,1-2.141,2.139H283.381a2.141,2.141,0,0,1-2.141-2.139v-66a2.143,2.143,0,0,1,2.141-2.141h47.233a2.141,2.141,0,0,1,2.141,2.141Z" transform="translate(-281.24 -177.18)" fill="#fff"/>
<g id="Group_7428" data-name="Group 7428">
<path id="Path_4553" data-name="Path 4553" d="M304.644,177.18v63.254a2.475,2.475,0,0,1-2.476,2.476H281.24V179.321a2.143,2.143,0,0,1,2.141-2.141Z" transform="translate(-281.24 -177.18)" fill="#dbdbdb"/>
<path id="Path_4554" data-name="Path 4554" d="M332.758,195.96V179.322a2.141,2.141,0,0,0-2.141-2.141H283.384a2.141,2.141,0,0,0-2.141,2.141V195.96Z" transform="translate(-281.242 -177.18)" fill="#dbdbdb"/>
<path id="Path_4555" data-name="Path 4555" d="M473.157,179.319v66a2.14,2.14,0,0,1-2.141,2.141h-7.26a2.14,2.14,0,0,0,2.141-2.141v-66a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,473.157,179.319Z" transform="translate(-421.642 -177.178)" fill="#dbdbdb"/>
</g>
<path id="Path_4556" data-name="Path 4556" d="M332.756,179.321V189.4H281.24V179.321a2.143,2.143,0,0,1,2.141-2.141h47.233A2.141,2.141,0,0,1,332.756,179.321Z" transform="translate(-281.24 -177.18)" fill="#d02127"/>
<path id="Path_4557" data-name="Path 4557" d="M371.453,179.57a6.171,6.171,0,1,1-11.863-2.391h11.383A6.141,6.141,0,0,1,371.453,179.57Z" transform="translate(-341.142 -177.18)" fill="#d02127"/>
<path id="Path_4558" data-name="Path 4558" d="M473.157,179.319v10.075H465.9V179.319a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,473.157,179.319Z" transform="translate(-421.642 -177.178)" fill="#d02127"/>
</g>
</g>
<g id="Group_7433" data-name="Group 7433">
<g id="Group_7432" data-name="Group 7432">
<path id="Path_4559" data-name="Path 4559" d="M59.016,179.321v66a2.141,2.141,0,0,1-2.141,2.139H9.641A2.139,2.139,0,0,1,7.5,245.319v-66a2.141,2.141,0,0,1,2.141-2.141H56.875a2.143,2.143,0,0,1,2.141,2.141Z" transform="translate(-7.5 -177.18)" fill="#fff"/>
<g id="Group_7431" data-name="Group 7431" transform="translate(0)">
<path id="Path_4560" data-name="Path 4560" d="M148.988,179.321V242.91H126.936a2.476,2.476,0,0,1-2.476-2.476V177.18h22.387a2.143,2.143,0,0,1,2.141,2.141Z" transform="translate(-97.472 -177.18)" fill="#dbdbdb"/>
<path id="Path_4561" data-name="Path 4561" d="M59.015,195.96V179.322a2.141,2.141,0,0,0-2.141-2.141H9.641A2.141,2.141,0,0,0,7.5,179.322V195.96Z" transform="translate(-7.5 -177.18)" fill="#dbdbdb"/>
<path id="Path_4562" data-name="Path 4562" d="M199.413,179.319v66a2.14,2.14,0,0,1-2.141,2.141h-7.26a2.14,2.14,0,0,0,2.141-2.141v-66a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,199.413,179.319Z" transform="translate(-147.898 -177.178)" fill="#dbdbdb"/>
</g>
<path id="Path_4563" data-name="Path 4563" d="M59.015,189.4H7.5V179.323a2.141,2.141,0,0,1,2.141-2.141H56.875a2.141,2.141,0,0,1,2.141,2.141Z" transform="translate(-7.5 -177.181)" fill="#d02127"/>
<path id="Path_4564" data-name="Path 4564" d="M199.413,179.319v10.075h-7.26V179.319a2.141,2.141,0,0,0-2.141-2.141h7.26A2.141,2.141,0,0,1,199.413,179.319Z" transform="translate(-147.898 -177.178)" fill="#20bfd5"/>
</g>
</g>
</g>
<g id="Group_7437" data-name="Group 7437" transform="translate(26.988)">
<g id="Group_7436" data-name="Group 7436">
<path id="Path_4565" data-name="Path 4565" d="M181.569,167.391H126.94a2.476,2.476,0,0,1-2.476-2.476V88.586a2.476,2.476,0,0,1,2.476-2.476h54.629a2.476,2.476,0,0,1,2.476,2.476v76.329A2.476,2.476,0,0,1,181.569,167.391Z" transform="translate(-124.463 -86.109)" fill="#fff"/>
<path id="Path_4566" data-name="Path 4566" d="M184.044,106.725V88.586a2.476,2.476,0,0,0-2.476-2.476H126.94a2.476,2.476,0,0,0-2.476,2.476v18.14Z" transform="translate(-124.463 -86.109)" fill="#dbdbdb"/>
<path id="Path_4567" data-name="Path 4567" d="M346.423,88.582v76.33a2.475,2.475,0,0,1-2.476,2.476h-8.4a2.475,2.475,0,0,0,2.476-2.476V88.582a2.476,2.476,0,0,0-2.476-2.476h8.4A2.476,2.476,0,0,1,346.423,88.582Z" transform="translate(-286.842 -86.106)" fill="#dbdbdb"/>
<path id="Path_4568" data-name="Path 4568" d="M184.041,88.586v11.653H124.46V88.586a2.476,2.476,0,0,1,2.476-2.476h54.629A2.475,2.475,0,0,1,184.041,88.586Z" transform="translate(-124.46 -86.109)" fill="#d02127"/>
<g id="Group_7435" data-name="Group 7435" transform="translate(37.747)">
<path id="Path_4569" data-name="Path 4569" d="M299.01,88.138a5.48,5.48,0,1,1-10.57-2.028h10.18A5.435,5.435,0,0,1,299.01,88.138Z" transform="translate(-288.05 -86.109)" fill="#d02127"/>
<path id="Path_4570" data-name="Path 4570" d="M346.423,88.582v11.653h-8.4V88.582a2.476,2.476,0,0,0-2.476-2.476h8.4A2.476,2.476,0,0,1,346.423,88.582Z" transform="translate(-324.59 -86.106)" fill="#d02127"/>
</g>
</g>
</g>
</g>
</g>
<g id="Group_7440" data-name="Group 7440" transform="translate(81.132 21.147)">
<path id="Path_4571" data-name="Path 4571" d="M359.11,145.215a6.171,6.171,0,1,1,6.171,6.171,6.171,6.171,0,0,1-6.171-6.171" transform="translate(-359.11 -139.044)" fill="#d02127"/>
<path id="Path_4572" data-name="Path 4572" d="M372.29,150.533a5.46,5.46,0,0,0,0-10.638,6.173,6.173,0,1,1,0,10.638" transform="translate(-369.249 -139.044)" fill="#d02127"/>
</g>
<g id="Group_7441" data-name="Group 7441" transform="translate(64.735)">
<path id="Path_4573" data-name="Path 4573" d="M288.05,52.878a5.48,5.48,0,1,1,5.48,5.48,5.48,5.48,0,0,1-5.48-5.48" transform="translate(-288.05 -47.398)" fill="#d02127"/>
<path id="Path_4574" data-name="Path 4574" d="M299.754,57.6a4.849,4.849,0,0,0,0-9.446,5.481,5.481,0,1,1,0,9.446" transform="translate(-297.053 -47.397)" fill="#d02127"/>
</g>
</g>
<g id="Group_7443" data-name="Group 7443" transform="translate(0 22.748)">
<path id="Path_4575" data-name="Path 4575" d="M114.27,69.844H96.883a7.887,7.887,0,0,0-6.853-8.735V53.036a4.211,4.211,0,0,0-4.206-4.206H78.948a7.211,7.211,0,1,0-14,0H31.2a4.211,4.211,0,0,0-4.206,4.206V69.844H21.93a1.731,1.731,0,0,0,0,3.461h5.058V82.06H3.461V73.716a.411.411,0,0,1,.41-.41h9.515a1.731,1.731,0,0,0,0-3.461H3.871A3.876,3.876,0,0,0,0,73.716v66a3.876,3.876,0,0,0,3.871,3.871H51.105a3.876,3.876,0,0,0,3.871-3.871v-6.14h8.188v6.14a3.876,3.876,0,0,0,3.871,3.871H81.123a1.731,1.731,0,0,0,0-3.461H67.036a.41.41,0,0,1-.41-.41v-6.14h19.2a4.211,4.211,0,0,0,4.206-4.206V85.521h24.65v54.191a.41.41,0,0,1-.41.41h-24.6a1.731,1.731,0,0,0,0,3.461h24.6a3.876,3.876,0,0,0,3.871-3.871v-66a3.876,3.876,0,0,0-3.871-3.871Zm-20.8-.9a4.441,4.441,0,1,1-4.441-4.441A4.446,4.446,0,0,1,93.475,68.946ZM71.946,43.358a3.75,3.75,0,1,1-3.75,3.75A3.754,3.754,0,0,1,71.946,43.358ZM31.2,52.291H66.941a7.192,7.192,0,0,0,10.011,0h8.873a.746.746,0,0,1,.745.745v8.4a7.9,7.9,0,0,0-2.683,1.519H30.45V53.036a.746.746,0,0,1,.745-.745Zm54.629,77.82H31.2a.746.746,0,0,1-.745-.745V109.979a1.731,1.731,0,0,0-3.461,0v19.386a4.211,4.211,0,0,0,4.206,4.206h20.32v6.14a.41.41,0,0,1-.41.41H3.871a.41.41,0,0,1-.41-.41V85.521H26.989v15.915a1.731,1.731,0,1,0,3.461,0V66.419h51.1a7.895,7.895,0,0,0,5.021,10.033v52.913A.746.746,0,0,1,85.824,130.111ZM90.03,82.06V76.783a7.909,7.909,0,0,0,5.59-3.478h18.65a.41.41,0,0,1,.41.41V82.06H90.03Z" transform="translate(0 -35.94)" fill="#2e303a"/>
<path id="Path_4576" data-name="Path 4576" d="M238.224,296.64a8.143,8.143,0,0,0-5.276-1.877h-.027a8.138,8.138,0,0,0-5.261,1.846,1.73,1.73,0,1,0,2.231,2.646,4.746,4.746,0,0,1,3.03-1.03h.015a4.75,4.75,0,0,1,3.04,1.048,1.731,1.731,0,0,0,2.247-2.633Z" transform="translate(-174.656 -231.997)"/>
<path id="Path_4577" data-name="Path 4577" d="M288.664,267.015l-.045,0h-.03a1.73,1.73,0,0,0-.156,3.452l.039,0c.042,0,.085.007.128.007h.01a1.73,1.73,0,0,0,.054-3.459Z" transform="translate(-220.675 -210.65)"/>
<path id="Path_4578" data-name="Path 4578" d="M207.009,267.012h-.03a1.731,1.731,0,0,0,.011,3.461H207a1.731,1.731,0,0,0,.009-3.461Z" transform="translate(-157.897 -210.65)"/>
<path id="Path_4579" data-name="Path 4579" d="M156.674,112.612h.009c.038,0,.077,0,.115.006l.062,0h.009a1.73,1.73,0,0,0,.346-3.426h-.007c-.053-.011-.108-.019-.162-.025-.02,0-.04,0-.06,0-.036,0-.072-.006-.109-.006h-.031a1.721,1.721,0,0,0-1.722,1.731,1.738,1.738,0,0,0,1.549,1.719Z" transform="translate(-119.331 -89.223)"/>
<path id="Path_4580" data-name="Path 4580" d="M179.553,112.623a1.731,1.731,0,0,0,0-3.461h-.021a1.722,1.722,0,0,0-1.72,1.731A1.74,1.74,0,0,0,179.553,112.623Z" transform="translate(-136.783 -89.223)"/>
<path id="Path_4581" data-name="Path 4581" d="M202.243,112.623a1.731,1.731,0,0,0,0-3.461h-.021a1.722,1.722,0,0,0-1.72,1.731A1.74,1.74,0,0,0,202.243,112.623Z" transform="translate(-154.237 -89.223)"/>
<path id="Path_4582" data-name="Path 4582" d="M53.4,116.408a1.73,1.73,0,0,0,2.447,0l.922-.922.922.922a1.73,1.73,0,0,0,2.447-2.447l-.922-.922.922-.922A1.73,1.73,0,0,0,57.7,109.67l-.922.922-.922-.922a1.73,1.73,0,0,0-2.447,2.447l.922.922-.922.922A1.73,1.73,0,0,0,53.4,116.408Z" transform="translate(-40.692 -89.223)"/>
<path id="Path_4583" data-name="Path 4583" d="M428.867,107.109a1.73,1.73,0,0,0,2.447,0l.922-.922.922.922a1.73,1.73,0,0,0,2.447-2.447l-.922-.922.922-.922a1.73,1.73,0,0,0-2.447-2.447l-.922.922-.922-.922a1.73,1.73,0,1,0-2.447,2.447l.922.922-.922.922A1.73,1.73,0,0,0,428.867,107.109Z" transform="translate(-329.518 -82.07)"/>
<path id="Path_4584" data-name="Path 4584" d="M237.941,29.993a1.73,1.73,0,0,0,2.447,0l.922-.922.922.922a1.73,1.73,0,0,0,2.447-2.447l-.922-.922.922-.922a1.73,1.73,0,0,0-2.447-2.447l-.922.922-.922-.922a1.73,1.73,0,1,0-2.447,2.447l.922.922-.922.922A1.73,1.73,0,0,0,237.941,29.993Z" transform="translate(-182.648 -22.748)"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

@ -5,8 +5,8 @@ const ONLY_NUMBERS = "[0-9]";
const ONLY_LETTERS = "[a-zA-Z &'\"]";
const ONLY_DATE = "[0-9/]";
const BASE_URL_LIVE_CARE = 'https://livecare.hmg.com/';
const BASE_URL = 'https://hmgwebservices.com/';
// const BASE_URL = 'https://uat.hmgwebservices.com/';
// const BASE_URL = 'https://hmgwebservices.com/';
const BASE_URL = 'https://uat.hmgwebservices.com/';
const PHARMACY_ITEMS_URL = "Services/Lists.svc/REST/GetPharmcyItems_Region_enh";
const PHARMACY_LIST_URL = "Services/Patients.svc/REST/GetPharmcyList";
const PATIENT_PROGRESS_NOTE_URL =

@ -1,3 +1,4 @@
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/screens/doctor/doctor_replay/doctor_reply_screen.dart';
import 'package:doctor_app_flutter/screens/doctor/my_schedule_screen.dart';
import 'package:doctor_app_flutter/screens/home/home_screen.dart';
@ -10,6 +11,8 @@ import 'package:doctor_app_flutter/widgets/shared/bottom_nav_bar.dart';
import 'package:doctor_app_flutter/widgets/shared/user-guid/app_showcase_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
class LandingPage extends StatefulWidget {
@override
@ -35,6 +38,7 @@ class _LandingPageState extends State<LandingPage> {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return AppScaffold(
appBar: currentTab != 0
? AppBar(
@ -52,12 +56,16 @@ class _LandingPageState extends State<LandingPage> {
: SizedBox(),
leading: Builder(
builder: (BuildContext context) {
return IconButton(
icon: Image.asset('assets/images/menu.png',
height: 50, width: 50),
iconSize: 15,
color: Color(0xff2B353E),
onPressed: () => Scaffold.of(context).openDrawer(),
return Container(
width: 40,
margin: EdgeInsets.only(left: projectViewModel.isArabic? 0:20, right: projectViewModel.isArabic? 20:0),
child: IconButton(
icon: SvgPicture.asset('assets/images/svgs/menu.svg',
height: 25, width: 10),
iconSize: 15,
color: Color(0xff2B353E),
onPressed: () => Scaffold.of(context).openDrawer(),
),
);
},
),

@ -15,37 +15,32 @@ import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/secondary_button.dart';
import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart';
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
import '../../config/size_config.dart';
import '../../landing_page.dart';
import '../../root_page.dart';
import '../../routes.dart';
import '../../util/dr_app_shared_pref.dart';
import '../../util/helpers.dart';
import '../../widgets/auth/verification_methods_list.dart';
import 'login_screen.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
Helpers helpers = Helpers();
///TODO Elham* check if this still in user or not
class VerificationMethodsScreen extends StatefulWidget {
final password;
VerificationMethodsScreen({this.password, });
VerificationMethodsScreen({
this.password,
});
@override
_VerificationMethodsScreenState createState() => _VerificationMethodsScreenState();
_VerificationMethodsScreenState createState() =>
_VerificationMethodsScreenState();
}
class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
ProjectViewModel projectsProvider;
bool isMoreOption = false;
bool onlySMSBox = false;
@ -58,367 +53,440 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
projectsProvider = Provider.of<ProjectViewModel>(context);
authenticationViewModel = Provider.of<AuthenticationViewModel>(context);
return AppScaffold(
isShowAppBar: false,
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
// baseViewModel: model,
body: SingleChildScrollView(
child: Center(
child: FractionallySizedBox(
child: Container(
margin: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0),
height: SizeConfig.realScreenHeight * .95,
width: SizeConfig.realScreenWidth,
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
SizedBox(
height: 80,
),
if(authenticationViewModel.isFromLogin)
widthFactor: 0.9,
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightVeryShort ? 6 : 4),
),
if (authenticationViewModel.isFromLogin)
InkWell(
onTap: (){
authenticationViewModel.setUnverified(false,isFromLogin: false);
authenticationViewModel.setAppStatus(APP_STATUS.UNAUTHENTICATED);
onTap: () {
authenticationViewModel.setUnverified(false,
isFromLogin: false);
authenticationViewModel
.setAppStatus(APP_STATUS.UNAUTHENTICATED);
},
child: Icon(Icons.arrow_back_ios,color: Color(0xFF2B353E),)
),
Container(
child: Column(
children: <Widget>[
SizedBox(
height: 20,
),
authenticationViewModel.user != null && isMoreOption == false
? Column(
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context).welcomeBack,
fontSize:12,
fontWeight: FontWeight.w700,
color: Color(0xFF2B353E),
),
AppText(
Helpers.capitalize(authenticationViewModel.user.doctorName),
fontSize: 24,
color: Color(0xFF2B353E),
fontWeight: FontWeight.bold,
),
SizedBox(
height: 20,
),
AppText(
TranslationBase.of(context).accountInfo ,
fontSize: 16,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w600,
),
SizedBox(
height: 20,
),
Container(
padding: EdgeInsets.all(15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(10),
),
border: Border.all(
color: HexColor('#707070'),
width: 0.1),
child: Icon(
Icons.arrow_back_ios,
color: AppGlobal.appTextColor,
)),
Column(
children: <Widget>[
SizedBox(
height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightVeryShort ? 3 : 4),
),
authenticationViewModel.user != null &&
isMoreOption == false
? Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context).welcomeBack,
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
3.5,
fontWeight: FontWeight.w600,
color: AppGlobal.appTextColor,
letterSpacing: -0.72,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Column(
children: [
Text(
TranslationBase.of(context)
.lastLoginAt,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
fontFamily: 'Poppins',
fontSize: 16,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w700,),
AppText(
Helpers.convertToTitleCase(
authenticationViewModel.user.doctorName),
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
6,
color: AppGlobal.appTextColor,
fontWeight: FontWeight.bold,
letterSpacing: -1.44,
),
SizedBox(
height: SizeConfig.heightMultiplier * 4,
),
AppText(
TranslationBase.of(context).accountInfo,
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
4.5,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w600,
letterSpacing: -0.64,
),
SizedBox(
height: SizeConfig.heightMultiplier * 4),
Container(
padding: EdgeInsets.all(15),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(10),
),
border: Border.all(
color: HexColor('#707070'), width: 0.1),
),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Container(
width: SizeConfig.realScreenWidth * .5,
padding: EdgeInsets.all(0),
child: Column(
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Text(
TranslationBase.of(context)
.lastLoginAt,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontFamily: 'Poppins',
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
4.5,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w600,
letterSpacing: -0.4),
),
Container(
width: MediaQuery.of(context)
.size
.width *
0.55,
child: RichText(
text: TextSpan(
text: TranslationBase.of(
context)
.verifyWith +
':',
style: TextStyle(
color:
Color(0xFF575757),
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
3.5,
fontFamily: 'Poppins',
fontWeight:
FontWeight.w600,
letterSpacing: -0.4),
children: <TextSpan>[
TextSpan(
text: authenticationViewModel
.getType(
authenticationViewModel
.user
.logInTypeID,
context),
style: TextStyle(
color: AppGlobal
.appTextColor,
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
3.5,
fontFamily:
'Poppins',
fontWeight:
FontWeight.w600,
letterSpacing:
-0.48),
)
]),
),
),
],
crossAxisAlignment:
CrossAxisAlignment.start,
),
),
Row(
Column(
mainAxisAlignment:
MainAxisAlignment.start,
children: [
AppText(
TranslationBase
.of(context)
.verifyWith,
fontSize: 14,
color: Color(0xFF575757),
fontWeight: FontWeight.w600,
),
AppText(
authenticationViewModel.getType(
authenticationViewModel.user
.logInTypeID,
context),
fontSize: 14,
color: Color(0xFF2B353E),
authenticationViewModel
.user.editedOn !=
null
? AppDateUtils
.getDayMonthYearDateFormatted(
AppDateUtils
.convertStringToDate(
authenticationViewModel
.user
.editedOn),
isMonthShort: true)
: authenticationViewModel
.user.createdOn !=
null
? AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils
.convertStringToDate(
authenticationViewModel
.user
.createdOn),
isMonthShort: true)
: '--',
textAlign: TextAlign.right,
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
4.5,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w700,
letterSpacing: -0.48,
),
AppText(
authenticationViewModel
.user.editedOn !=
null
? AppDateUtils.getHour(AppDateUtils
.convertStringToDate(
authenticationViewModel
.user.editedOn))
: authenticationViewModel
.user.createdOn !=
null
? AppDateUtils.getHour(
AppDateUtils
.convertStringToDate(
authenticationViewModel
.user
.createdOn))
: '--',
textAlign: TextAlign.right,
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
3.5,
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
color: Color(0xFF575757),
)
],
crossAxisAlignment:
CrossAxisAlignment.end,
)
],
crossAxisAlignment: CrossAxisAlignment.start,),
Column(children: [
AppText(
authenticationViewModel.user.editedOn !=
null
? AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils.convertStringToDate(
authenticationViewModel.user
.editedOn))
: authenticationViewModel.user.createdOn !=
null
? AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils.convertStringToDate(authenticationViewModel.user
.createdOn))
: '--',
textAlign:
TextAlign.right,
fontSize: 13,
color: Color(0xFF2E303A),
fontWeight: FontWeight.w700,
),
AppText(
authenticationViewModel.user.editedOn !=
null
? AppDateUtils.getHour(
AppDateUtils.convertStringToDate(
authenticationViewModel.user
.editedOn))
: authenticationViewModel.user.createdOn !=
null
? AppDateUtils.getHour(
AppDateUtils.convertStringToDate(authenticationViewModel.user
.createdOn))
: '--',
textAlign:
TextAlign.right,
fontSize: 14,
fontWeight: FontWeight.w600,
color: Color(0xFF575757),
)
],
crossAxisAlignment: CrossAxisAlignment.start,
)
),
),
SizedBox(
height: SizeConfig.heightMultiplier * 3,
),
Row(
children: [
//todo add translation
AppText(
"Please Verify",
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
4.5,
color: AppGlobal.appTextColor,
fontWeight: FontWeight.w600,
letterSpacing: -.64,
),
],
),
),
SizedBox(
height: 20,
),
Row(
children: [
AppText(
"Please Verify",
fontSize: 16,
color: Color(0xFF2B353E),
fontWeight: FontWeight.w700,
),
],
)
],
)
: Column(
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
SizedBox(
height: SizeConfig.heightMultiplier * 2,
),
],
)
: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
this.onlySMSBox == false
? Container(
margin: EdgeInsets.only(bottom: 20, top: 30),
child: AppText(
TranslationBase.of(context)
.verifyLoginWith,
fontSize: 18,
color: Color(0xFF2E303A),
fontWeight: FontWeight.bold,
textAlign: TextAlign.left,
),
)
: AppText(
TranslationBase.of(context)
.verifyFingerprint2,
fontSize:
SizeConfig.textMultiplier * 2.5,
textAlign: TextAlign.start,
),
]),
authenticationViewModel.user != null && isMoreOption == false
? Column(
this.onlySMSBox == false
? Container(
margin: EdgeInsets.only(
bottom: 20, top: 30),
child: AppText(
TranslationBase.of(context)
.verifyLoginWith,
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
4,
color: Color(0xFF2E303A),
fontWeight: FontWeight.bold,
textAlign: TextAlign.left,
),
)
: AppText(
TranslationBase.of(context)
.verifyFingerprint2,
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth() *
4,
textAlign: TextAlign.start,
),
]),
authenticationViewModel.user != null &&
isMoreOption == false
? Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: InkWell(
onTap: () =>
{
// TODO check this logic it seem it will create bug to us
authenticateUser(
AuthMethodTypes
.Fingerprint, true)
},
Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: InkWell(
onTap: () => {
// TODO check this logic it seem it will create bug to us
authenticateUser(
AuthMethodTypes
.Fingerprint,
true)
},
child: VerificationMethodsList(
authenticationViewModel:
authenticationViewModel,
authMethodType:
SelectedAuthMethodTypesService
.getMethodsTypeService(
authenticationViewModel
.user
.logInTypeID),
authenticateUser:
(AuthMethodTypes
authMethodType,
isActive) =>
authenticateUser(
authMethodType,
isActive),
)),
),
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType: SelectedAuthMethodTypesService
.getMethodsTypeService(
authenticationViewModel.user
.logInTypeID),
authenticateUser:
(AuthMethodTypes
authMethodType,
isActive) =>
authenticationViewModel:
authenticationViewModel,
authMethodType:
AuthMethodTypes.MoreOptions,
onShowMore: () {
setState(() {
isMoreOption = true;
});
},
))
]),
])
: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
onlySMSBox == false
? Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: VerificationMethodsList(
authenticationViewModel:
authenticationViewModel,
authMethodType:
AuthMethodTypes.Fingerprint,
authenticateUser: (AuthMethodTypes
authMethodType,
isActive) =>
authenticateUser(
authMethodType,
isActive),
authMethodType, isActive),
)),
),
Expanded(
child: VerificationMethodsList(
authenticationViewModel:
authenticationViewModel,
authMethodType:
AuthMethodTypes.FaceID,
authenticateUser: (AuthMethodTypes
authMethodType,
isActive) =>
authenticateUser(
authMethodType, isActive),
))
],
)
: SizedBox(),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType:
AuthMethodTypes.MoreOptions,
onShowMore: () {
setState(() {
isMoreOption = true;
});
},
))
]),
])
: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
onlySMSBox == false
? Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType:
AuthMethodTypes.Fingerprint,
authenticateUser:
(AuthMethodTypes
authMethodType,
isActive) =>
authenticateUser(
authMethodType,
isActive),
)),
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType:
AuthMethodTypes.FaceID,
authenticateUser:
(AuthMethodTypes
authMethodType,
isActive) =>
authenticateUser(
authMethodType,
isActive),
))
],
)
: SizedBox(),
Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType: AuthMethodTypes
.SMS,
authenticateUser:
(
AuthMethodTypes authMethodType,
isActive) =>
authenticateUser(
authMethodType, isActive),
)),
Expanded(
child: VerificationMethodsList(
authenticationViewModel:authenticationViewModel,
authMethodType:
AuthMethodTypes.WhatsApp,
authenticateUser:
(
AuthMethodTypes authMethodType,
isActive) =>
authenticateUser(
authMethodType, isActive),
))
],
),
]),
authenticationViewModel:
authenticationViewModel,
authMethodType: AuthMethodTypes.SMS,
authenticateUser:
(AuthMethodTypes authMethodType,
isActive) =>
authenticateUser(
authMethodType, isActive),
)),
Expanded(
child: VerificationMethodsList(
authenticationViewModel:
authenticationViewModel,
authMethodType:
AuthMethodTypes.WhatsApp,
authenticateUser:
(AuthMethodTypes authMethodType,
isActive) =>
authenticateUser(
authMethodType, isActive),
))
],
),
]),
// )
],
),
),
],
),
// )
],
),
],
),
),
),
),
),
bottomSheet: authenticationViewModel.user == null ? SizedBox(height: 0,) : Container(
height: 90,
width: double.infinity,
child: Center(
child: FractionallySizedBox(
widthFactor: 0.9,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
SecondaryButton(
label: TranslationBase
.of(context)
.useAnotherAccount,
color: Color(0xFFD02127),
//fontWeight: FontWeight.w700,
onTap: () {
authenticationViewModel.deleteUser();
authenticationViewModel.setAppStatus(APP_STATUS.UNAUTHENTICATED);
},
bottomSheet: authenticationViewModel.user == null
? SizedBox(
height: 0,
)
: Container(
height: 90,
width: double.infinity,
child: Center(
child: FractionallySizedBox(
widthFactor: 0.9,
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
SecondaryButton(
label:
TranslationBase.of(context).useAnotherAccount ?? '',
color: Color(0xFFD02127),
//fontWeight: FontWeight.w700,
onTap: () {
authenticationViewModel.deleteUser();
authenticationViewModel
.setAppStatus(APP_STATUS.UNAUTHENTICATED);
},
),
SizedBox(
height: 25,
)
],
),
),
SizedBox(height: 25,)
],
),
),
),
),),
);
}
@ -428,13 +496,13 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
authMethodType == AuthMethodTypes.WhatsApp) {
GifLoaderDialogUtils.showMyDialog(context);
await authenticationViewModel.sendActivationCodeForDoctorApp(authMethodType:authMethodType, password: authenticationViewModel.userInfo.password );
await authenticationViewModel.sendActivationCodeForDoctorApp(
authMethodType: authMethodType,
password: authenticationViewModel.userInfo.password);
if (authenticationViewModel.state == ViewState.ErrorLocal) {
Helpers.showErrorToast(authenticationViewModel.error);
GifLoaderDialogUtils.hideDialog(context);
} else {
GifLoaderDialogUtils.hideDialog(context);
this.startSMSService(authMethodType);
}
@ -455,12 +523,14 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
GifLoaderDialogUtils.hideDialog(context);
Helpers.showErrorToast(authenticationViewModel.error);
} else {
await sharedPref.setString(TOKEN,
authenticationViewModel.activationCodeVerificationScreenRes.logInTokenID);
await sharedPref.setString(
TOKEN,
authenticationViewModel
.activationCodeVerificationScreenRes.logInTokenID);
if (authMethodType == AuthMethodTypes.SMS ||
authMethodType == AuthMethodTypes.WhatsApp) {
GifLoaderDialogUtils.hideDialog(context);
this.startSMSService(authMethodType,isSilentLogin: true);
this.startSMSService(authMethodType, isSilentLogin: true);
} else {
checkActivationCode(isSilentLogin: true);
}
@ -473,7 +543,7 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
fingerPrintBefore = authMethodType;
}
this.selectedOption =
fingerPrintBefore != null ? fingerPrintBefore : authMethodType;
fingerPrintBefore != null ? fingerPrintBefore : authMethodType;
switch (authMethodType) {
case AuthMethodTypes.SMS:
@ -503,11 +573,13 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
}
}
startSMSService(AuthMethodTypes type,{isSilentLogin: false}) {
startSMSService(AuthMethodTypes type, {isSilentLogin: false}) {
new SMSOTP(
context,
type,
authenticationViewModel.loggedUser != null ? authenticationViewModel.loggedUser.mobileNumber : authenticationViewModel.user.mobile,
authenticationViewModel.loggedUser != null
? authenticationViewModel.loggedUser.mobileNumber
: authenticationViewModel.user.mobile,
(value) {
showDialog(
context: context,
@ -515,25 +587,26 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
return AppLoaderWidget();
});
this.checkActivationCode(value: value,isSilentLogin: isSilentLogin);
this.checkActivationCode(value: value, isSilentLogin: isSilentLogin);
},
() =>
{
() => {
print('Faild..'),
},
).displayDialog(context);
}
loginWithFingerPrintOrFaceID(AuthMethodTypes authMethodTypes,
isActive) async {
loginWithFingerPrintOrFaceID(
AuthMethodTypes authMethodTypes, isActive) async {
if (isActive) {
await authenticationViewModel.showIOSAuthMessages();
if (!mounted) return;
if (authenticationViewModel.user != null &&
(SelectedAuthMethodTypesService.getMethodsTypeService(
authenticationViewModel.user.logInTypeID) ==
AuthMethodTypes.Fingerprint ||
authenticationViewModel.user.logInTypeID) ==
AuthMethodTypes.Fingerprint ||
SelectedAuthMethodTypesService.getMethodsTypeService(
authenticationViewModel.user.logInTypeID) == AuthMethodTypes.FaceID)) {
authenticationViewModel.user.logInTypeID) ==
AuthMethodTypes.FaceID)) {
this.sendActivationCode(authMethodTypes);
} else {
setState(() {
@ -543,22 +616,19 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
}
}
checkActivationCode({String value,bool isSilentLogin = false}) async {
await authenticationViewModel.checkActivationCodeForDoctorApp(activationCode: value,isSilentLogin: isSilentLogin);
checkActivationCode({String value, bool isSilentLogin = false}) async {
await authenticationViewModel.checkActivationCodeForDoctorApp(
activationCode: value, isSilentLogin: isSilentLogin);
if (authenticationViewModel.state == ViewState.ErrorLocal) {
Navigator.pop(context);
Helpers.showErrorToast(authenticationViewModel.error);
} else {
await authenticationViewModel.onCheckActivationCodeSuccess();
if(value !=null){
if(Navigator.canPop(context))
Navigator.pop(context);
}
if(Navigator.canPop(context))
Navigator.pop(context);
navigateToLandingPage();
if (value != null) {
if (Navigator.canPop(context)) Navigator.pop(context);
}
if (Navigator.canPop(context)) Navigator.pop(context);
navigateToLandingPage();
}
}
@ -569,5 +639,4 @@ class _VerificationMethodsScreenState extends State<VerificationMethodsScreen> {
authenticationViewModel.setAppStatus(APP_STATUS.AUTHENTICATED);
}
}
}

@ -1,6 +1,7 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/viewModel/doctor_replay_view_model.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/doctor/doctor_replay/doctor_repaly_chat.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
@ -14,6 +15,7 @@ import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils
import 'package:doctor_app_flutter/widgets/shared/text_fields/text_fields_utils.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'all_doctor_questions.dart';
import 'not_replaied_Doctor_Questions.dart';
@ -81,6 +83,8 @@ class _DoctorReplyScreenState extends State<DoctorReplyScreen>
preferredSize: Size.fromHeight(
MediaQuery.of(context).size.height * 0.070),
child: Container(
color: Helpers.getBgTabColor(),
child: TabBar(
isScrollable: false,
controller: _tabController,
@ -137,11 +141,13 @@ class _DoctorReplyScreenState extends State<DoctorReplyScreen>
Widget tabWidget(Size screenSize, bool isActive, String title,
{int counter = -1, bool isFirst = false,
bool isMiddle = false,
bool isLast = false,context}) {
bool isLast = false,context, }) {
ProjectViewModel projectViewModel= Provider.of(context);
return Center(
child: Container(
height: Helpers.getTabHeight(context),
decoration: Helpers.getBoxTabsBoxDecoration(isActive: isActive,isFirst: isFirst, isMiddle: isMiddle, isLast: isLast),
decoration: Helpers.getBoxTabsBoxDecoration(isActive: isActive,isFirst: isFirst, isMiddle: isMiddle, isLast: isLast, projectViewModel: projectViewModel),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [

@ -31,11 +31,6 @@ class HomePageCard extends StatelessWidget {
width: width,
margin: this.margin,
decoration: BoxDecoration(
// color: !hasBorder
// ? color != null
// ? color
// : HexColor('#050705').withOpacity(opacity)
// : Colors.white,
gradient: gradient,
borderRadius: BorderRadius.circular(20.0),
border: hasBorder

@ -1,4 +1,5 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
import 'package:doctor_app_flutter/core/viewModel/authentication_view_model.dart';
@ -20,6 +21,7 @@ import 'package:doctor_app_flutter/screens/patients/profile/referral/patient_ref
import 'package:doctor_app_flutter/screens/patients/register_patient/RegisterPatientPage.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/profile-welcome-widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
@ -29,6 +31,7 @@ import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import 'package:sticky_headers/sticky_headers/widget.dart';
@ -40,7 +43,6 @@ class HomeScreen extends StatefulWidget {
HomeScreen({Key key, this.title}) : super(key: key);
final String title;
final String iconURL = 'assets/images/dashboard_icon/';
@override
_HomeScreenState createState() => _HomeScreenState();
@ -83,12 +85,17 @@ class _HomeScreenState extends State<HomeScreen> {
color: Colors.grey[100],
padding: EdgeInsets.only(top: 10),
child: Stack(children: [
IconButton(
icon: Image.asset('assets/images/menu.png',
height: 50, width: 50),
iconSize: 18,
color: Colors.black,
onPressed: () => Scaffold.of(context).openDrawer(),
//TODO Elham* make it componet
Container(
width: 40,
margin: EdgeInsets.only(left: projectsProvider.isArabic? 0:32, right: projectsProvider.isArabic? 23:0),
child: IconButton(
icon: SvgPicture.asset('assets/images/svgs/menu.svg',
height: 25, width: 10),
iconSize: 15,
color: Colors.black,
onPressed: () => Scaffold.of(context).openDrawer(),
),
),
Column(children: <Widget>[
ProfileWelcomeWidget(
@ -169,7 +176,7 @@ class _HomeScreenState extends State<HomeScreen> {
)),
],
),
AppText(item.clinicName,
AppText(Helpers.convertToTitleCase(item.clinicName),
fontSize: 14,
letterSpacing: -0.96,
color: AppGlobal.appTextColor,
@ -199,7 +206,7 @@ class _HomeScreenState extends State<HomeScreen> {
.map((item) {
return DropdownMenuItem(
child: AppText(
item.clinicName,
Helpers.convertToTitleCase(item.clinicName),
fontSize: 14,
letterSpacing: -0.96,
color: AppGlobal.appTextColor,
@ -292,7 +299,14 @@ class _HomeScreenState extends State<HomeScreen> {
),
Container(
height: 120,
height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightVeryShort
? 16
: SizeConfig.isHeightShort
? 14
: SizeConfig.isHeightLarge
? 15
: 13),
child: ListView(
scrollDirection: Axis.horizontal,
children: [

@ -63,7 +63,6 @@ class _InPatientScreenState extends State<InPatientScreen>
Widget build(BuildContext context) {
final screenSize = MediaQuery.of(context).size;
PatientSearchRequestModel requestModel = PatientSearchRequestModel();
ProjectViewModel projectsProvider = Provider.of<ProjectViewModel>(context);
return BaseView<PatientSearchViewModel>(
onModelReady: (model) async {
@ -127,6 +126,8 @@ class _InPatientScreenState extends State<InPatientScreen>
color: Colors.white),
child: Container(
margin: EdgeInsets.only(top: 9),
color: Helpers.getBgTabColor(),
child: TabBar(
isScrollable: false,
controller: _tabController,
@ -140,13 +141,13 @@ class _InPatientScreenState extends State<InPatientScreen>
// unselectedLabelColor: Colors.grey[800],
tabs: [
tabWidget(screenSize, _activeTab == 0,
TranslationBase.of(context).inPatientAll,
TranslationBase.of(context).inPatientAll,context: context,
counter: model.inPatientList.length, isFirst: true),
tabWidget(screenSize, _activeTab == 1,
TranslationBase.of(context).myInPatientTitle,
counter: model.myIinPatientList.length, isMiddle: true),
counter: model.myIinPatientList.length, isMiddle: true, context: context,),
tabWidget(screenSize, _activeTab == 2,
TranslationBase.of(context).discharged, isLast:true),
TranslationBase.of(context).discharged, isLast:true, context: context,),
],
),
),
@ -199,11 +200,15 @@ class _InPatientScreenState extends State<InPatientScreen>
{int counter = -1,
bool isFirst = false,
bool isMiddle = false,
bool isLast = false,}) {
bool isLast = false,BuildContext context}) {
ProjectViewModel projectsProvider = Provider.of<ProjectViewModel>(context);
return Center(
child: Container(
height: Helpers.getTabHeight(context),
decoration:Helpers.getBoxTabsBoxDecoration(isActive: isActive,isFirst: isFirst, isMiddle: isMiddle, isLast: isLast),
decoration:Helpers.getBoxTabsBoxDecoration(isActive: isActive,isFirst: isFirst, isMiddle: isMiddle, isLast: isLast,projectViewModel: projectsProvider),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [

@ -107,9 +107,7 @@ class _OutPatientsScreenState extends State<OutPatientsScreen> {
Container(
// color: Colors.red,
height: Helpers.getTabHeight(context),
decoration: TextFieldsUtils.containerBorderDecoration(
Color(0Xffffffff), Color(0xFFCCCCCC),
borderRadius: 4, borderWidth: 0),
color: Helpers.getBgTabColor(),
child: Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
@ -149,19 +147,21 @@ class _OutPatientsScreenState extends State<OutPatientsScreen> {
isFirst: _times.indexOf(item) == 0,
isLast:
_times.indexOf(item) == _times.length - 1,
isMiddle: _times.indexOf(item) != 0 && _times.indexOf(item) != _times.length - 1
),
isMiddle: _times.indexOf(item) != 0 &&
_times.indexOf(item) != _times.length - 1,
projectViewModel: projectsProvider),
child: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Helpers.getTabText(title: item, isActive: _isActive),
Helpers.getTabText(
title: item, isActive: _isActive),
_isActive &&
_activeLocation != 0 &&
model.state == ViewState.Idle
? Helpers.getTabCounter(isActive:_isActive,counter: model.filterData.length)
? Helpers.getTabCounter(
isActive: _isActive,
counter: model.filterData.length)
: Container(),
],
),

@ -251,7 +251,7 @@ class _PatientProfileScreenState extends State<PatientProfileScreen>
radius: 30,
hPadding: 20,
fontWeight: FontWeight.normal,
fontSize: 1.6,
fontSize: 12,
icon: SvgPicture.asset(
"assets/images/svgs/profile_screen/create episode.svg",
color: Colors.white,
@ -283,7 +283,7 @@ class _PatientProfileScreenState extends State<PatientProfileScreen>
radius: 30,
hPadding: 20,
fontWeight: FontWeight.normal,
fontSize: 1.6,
fontSize: 12,
icon: SvgPicture.asset(
"assets/images/svgs/profile_screen/modify episode.svg",
color: Colors.white,

@ -88,38 +88,38 @@ class ProfileGridForOther extends StatelessWidget {
? patient.appointmentNo == null
: patient.patientStatusType != 43 || patient.appointmentNo == null),
];
return Padding(
padding: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 15),
child: GridView(
shrinkWrap: true,
return Column(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 15),
child: StaggeredGridView.countBuilder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
crossAxisSpacing: 8,
mainAxisSpacing: 8,
crossAxisCount: 3,
itemCount: cardsList.length,
staggeredTileBuilder: (int index) => StaggeredTile.fit(1),
itemBuilder: (BuildContext context, int index) => PatientProfileButton(
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
from: from,
to: to,
nameLine1: cardsList[index].nameLine1,
nameLine2: cardsList[index].nameLine2,
route: cardsList[index].route,
icon: cardsList[index].icon,
isInPatient: cardsList[index].isInPatient,
isDischargedPatient: cardsList[index].isDischargedPatient,
isDisable: cardsList[index].isDisable,
onTap: cardsList[index].onTap,
isLoading: cardsList[index].isLoading,
isFromLiveCare: isFromLiveCare),
),
physics: BouncingScrollPhysics(),
// if you want IOS bouncing effect, otherwise remove this line
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisSpacing: 10,
mainAxisSpacing: 8,
crossAxisCount: 3,
),
],
//change the number as you want
children: cardsList.map((item) {
return PatientProfileButton(
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
from: from,
to: to,
nameLine1: item.nameLine1,
nameLine2: item.nameLine2,
route: item.route,
icon: item.icon,
isInPatient: item.isInPatient,
isDischargedPatient: item.isDischargedPatient,
isDisable: item.isDisable,
onTap: item.onTap,
isLoading: item.isLoading,
);
}).toList(),
),
);
}
}

@ -66,37 +66,39 @@ class ProfileGridForSearch extends StatelessWidget {
isInPatient: isInpatient, isDisable: patient.patientStatusType != 43 ? true : false),
];
return Column(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 15),
child: StaggeredGridView.countBuilder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
crossAxisSpacing: 8,
mainAxisSpacing: 8,
crossAxisCount: 3,
itemCount: cardsList.length,
staggeredTileBuilder: (int index) => StaggeredTile.fit(1),
itemBuilder: (BuildContext context, int index) => PatientProfileButton(
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
from: from,
to: to,
nameLine1: cardsList[index].nameLine1,
nameLine2: cardsList[index].nameLine2,
route: cardsList[index].route,
icon: cardsList[index].icon,
isInPatient: cardsList[index].isInPatient,
isDischargedPatient: cardsList[index].isDischargedPatient,
isDisable: cardsList[index].isDisable,
onTap: cardsList[index].onTap,
isLoading: cardsList[index].isLoading,
),
),
return Padding(
padding: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 15),
child: GridView(
shrinkWrap: true,
physics: BouncingScrollPhysics(),
// if you want IOS bouncing effect, otherwise remove this line
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisSpacing: 10,
mainAxisSpacing: 8,
crossAxisCount: 3,
),
],
//change the number as you want
children: cardsList.map((item) {
return PatientProfileButton(
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
from: from,
to: to,
nameLine1: item.nameLine1,
nameLine2: item.nameLine2,
route: item.route,
icon: item.icon,
isInPatient: item.isInPatient,
isDischargedPatient: item.isDischargedPatient,
isDisable: item.isDisable,
onTap: item.onTap,
isLoading: item.isLoading,
);
}).toList(),
),
);
}
}

@ -1,6 +1,7 @@
import 'dart:ui';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/screens/patients/patient_search/patient_search_header.dart';
import 'package:doctor_app_flutter/screens/patients/profile/referral/referred-patient-screen.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
@ -10,6 +11,7 @@ import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/text_fields_utils.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../ReferralDischargedPatientPage.dart';
import 'my-referral-inpatient-screen.dart';
@ -45,6 +47,8 @@ class _PatientReferralScreen extends State<PatientReferralScreen>
@override
Widget build(BuildContext context) {
ProjectViewModel projectsProvider = Provider.of<ProjectViewModel>(context);
return AppScaffold(
isShowAppBar: true,
appBar: PatientSearchHeader(
@ -60,6 +64,7 @@ class _PatientReferralScreen extends State<PatientReferralScreen>
child: Center(
child: Container(
height: Helpers.getTabHeight(context),
color: Helpers.getBgTabColor(),
child: Center(
child: TabBar(
isScrollable: false,
@ -74,7 +79,7 @@ class _PatientReferralScreen extends State<PatientReferralScreen>
tabs: [
Container(
decoration: Helpers.getBoxTabsBoxDecoration(
isActive: index == 0, isFirst: true),
isActive: index == 0, isFirst: true, projectViewModel:projectsProvider ),
child: Center(
child: Helpers.getTabText(title:TranslationBase.of(context).myReferredPatient, isActive:index == 0 )
),
@ -82,7 +87,7 @@ class _PatientReferralScreen extends State<PatientReferralScreen>
Center(
child: Container(
decoration:Helpers.getBoxTabsBoxDecoration(
isActive: index == 1, isMiddle: true),
isActive: index == 1, isMiddle: true, projectViewModel:projectsProvider ),
child: Center(
child:Helpers.getTabText(title:TranslationBase.of(context).referral, isActive:index == 1 )
),
@ -91,7 +96,7 @@ class _PatientReferralScreen extends State<PatientReferralScreen>
Center(
child: Container(
decoration:Helpers.getBoxTabsBoxDecoration(
isActive: index == 2, isLast: true),
isActive: index == 2, isLast: true, projectViewModel:projectsProvider ),
child: Center(
child: Helpers.getTabText(title:TranslationBase.of(context).discharged, isActive:index == 2 ),
),

@ -15,6 +15,7 @@ import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:html/parser.dart';
import 'package:intl/intl.dart';
import '../UpdatePage.dart';
import '../config/size_config.dart';
@ -330,26 +331,64 @@ class Helpers {
}
static getBoxTabsBoxDecoration(
{
bool isFirst = false,
{bool isFirst = false,
bool isMiddle = false,
bool isLast = false,
bool isActive = false,
double radius = 6.0
}) {
return BoxDecoration(
double radius = 6.0, ProjectViewModel projectViewModel}) {
return BoxDecoration(
color: isActive ? AppGlobal.appRedColor : Color(0xFFEAEAEA),
shape: BoxShape.rectangle,
borderRadius: BorderRadius.only(
topRight: Radius.circular(isActive?isFirst || isMiddle?radius:0:0),
bottomRight: Radius.circular(isActive?isFirst || isMiddle?radius:0:0),
topLeft: Radius.circular(isActive?isLast|| isMiddle?radius:0:0),
bottomLeft: Radius.circular(isActive?isLast || isMiddle?radius:0:0)
),
topRight: projectViewModel.isArabic?Radius.circular(isActive
? isLast || isMiddle
? radius
: 0
: 0):Radius.circular(isActive
? isFirst || isMiddle
? radius
: 0
: 0),
topLeft: projectViewModel.isArabic? Radius.circular(isActive
? isFirst || isMiddle
? radius
: 0
: 0):Radius.circular(isActive
? isLast || isMiddle
? radius
: 0
: 0),
bottomRight: projectViewModel.isArabic? Radius.circular(isActive
? isLast || isMiddle
? radius
: 0
: 0): Radius.circular(isActive
? isFirst || isMiddle
? radius
: 0
: 0),
bottomLeft:projectViewModel.isArabic? Radius.circular(isActive
? isFirst || isMiddle
? radius
: 0
: 0): Radius.circular(isActive
? isLast || isMiddle
? radius
: 0
: 0)),
);
}
static getTabText({String title, bool isActive = false,}){
static getBgTabColor() {
return Color(0xFFEAEAEA);
}
static getTabText({
String title,
bool isActive = false,
}) {
return AppText(
title,
fontSize: SizeConfig.textMultiplier * 1.8,
@ -357,16 +396,14 @@ class Helpers {
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
);
}
static getTabHeight(BuildContext context){
static getTabHeight(BuildContext context) {
final screenSize = MediaQuery.of(context).size;
return screenSize.height * 0.07;
}
static getTabCounter({bool isActive: false,int counter}){
static getTabCounter({bool isActive: false, int counter}) {
return Container(
margin: EdgeInsets.all(4),
width: 15,
@ -388,5 +425,30 @@ class Helpers {
);
}
static String convertToTitleCase(String text) {
if (text == null) {
return null;
}
if (text.length <= 1) {
return text.toUpperCase();
}
// Split string into multiple words
final List<String> words = text.split(' ');
// Capitalize first letter of each words
final capitalizedWords = words.map((word) {
if (word.trim().isNotEmpty) {
final String firstLetter = word.trim().substring(0, 1).toUpperCase();
final String remainingLetters = word.trim().substring(1).toLowerCase();
return '$firstLetter$remainingLetters';
}
return '';
});
// Join/Merge all words back to one String
return capitalizedWords.join(' ');
}
}

@ -1,6 +1,5 @@
import 'dart:async';
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/auth_method_types.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
@ -9,6 +8,7 @@ import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class SMSOTP {
final AuthMethodTypes type;
final mobileNo;
@ -48,231 +48,307 @@ class SMSOTP {
String displayTime = '';
bool isClosed = false;
displayDialog(BuildContext context) async {
double dialogWidth = MediaQuery.of(context).size.width * 0.90;
double dialogInputWidth = (dialogWidth / 4) -
(SizeConfig.isWidthLarge
? SizeConfig.getWidthMultiplier(width: dialogWidth) * 4.5
: 20);
double dialogHeight = SizeConfig.isHeightVeryShort
? MediaQuery.of(context).size.height * 0.50
: MediaQuery.of(context).size.height * 0.40;
return showDialog(
context: context,
barrierColor: Colors.black.withOpacity(0.7),
builder: (context) {
projectProvider = Provider.of(context);
return AlertDialog(
contentPadding: EdgeInsets.fromLTRB(24.0, 0.0, 0.0, 24.0),
content: StatefulBuilder(builder: (context, setState) {
if (displayTime == '') {
startTimer(setState);
}
return Container(
color: Colors.white,
height: MediaQuery.of(context).size.height * 0.50,
width: MediaQuery.of(context).size.width * 0.84,
child: Center(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: EdgeInsets.all(13),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
type == AuthMethodTypes.SMS
? Padding(
child: Icon(
DoctorApp.verify_sms_1,
size: 50,
),
padding: EdgeInsets.only(bottom: 20),
)
: Padding(
child: Icon(
DoctorApp.verify_whtsapp,
size: 50,
),
padding: EdgeInsets.only(bottom: 20),
),
context: context,
builder: (ctx) => Center(
child: Container(
color: Colors.white,
height: dialogHeight,
width: dialogWidth,
child: Material(
color: Colors.white,
child: SingleChildScrollView(
child: Center(
child: Container(
color: Colors.white,
child: StatefulBuilder(builder: (context, setState) {
if (displayTime == '') {
startTimer(setState);
}
return Center(
child: FractionallySizedBox(
widthFactor: 0.9,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
SizedBox(
height: SizeConfig.getHeightMultiplier(
height: dialogHeight) *
2,
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Padding(
padding: EdgeInsets.only(
left: 10, right: 10, bottom: 20),
child: IconButton(
icon: Icon(Icons.close),
iconSize: 40,
onPressed: () {
this.isClosed = true;
Navigator.pop(context);
this.onFailure();
},
))
],
)
])),
Padding(
padding: EdgeInsets.only(top: 5, right: 5),
child: AppText(
TranslationBase.of(context).verificationMessage +
' XXXXXX' +
mobileNo
.toString()
.substring(mobileNo.toString().length - 3),
textAlign: TextAlign.start,
fontWeight: FontWeight.bold,
fontSize: 14,
maxLines: 2,
)),
Form(
key: verifyAccountForm,
child: Padding(
padding: EdgeInsets.only(top: 20),
child: Directionality(
textDirection: TextDirection.ltr,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
width: SizeConfig.realScreenWidth * 0.16,
margin: EdgeInsets.all(5),
child: TextFormField(
textInputAction: TextInputAction.next,
style: buildTextStyle(),
autofocus: true,
maxLength: 1,
controller: digit1,
textAlign: TextAlign.center,
keyboardType: TextInputType.number,
decoration: buildInputDecoration(context),
onSaved: (val) {},
validator: validateCodeDigit,
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD2);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD2);
verifyAccountFormValue['digit1'] =
val.trim();
checkValue();
}
},
),
),
Container(
width: SizeConfig.realScreenWidth * 0.16,
margin: EdgeInsets.all(5),
child: TextFormField(
focusNode: focusD2,
textInputAction: TextInputAction.next,
maxLength: 1,
controller: digit2,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType: TextInputType.number,
decoration: buildInputDecoration(context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD3);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD3);
verifyAccountFormValue['digit2'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit),
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Icon(
type == AuthMethodTypes.SMS
? DoctorApp.verify_sms_1
: DoctorApp.verify_whtsapp,
size: SizeConfig.getHeightMultiplier(
height: dialogHeight) *
9,
color: Color(0xFF2B353E),
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
IconButton(
icon: Icon(Icons.close),
color: Color(0xFF2B353E),
iconSize:
SizeConfig.getHeightMultiplier(
height: dialogHeight) *
15,
onPressed: () {
this.isClosed = true;
Navigator.pop(context);
this.onFailure();
},
)
],
)
]),
SizedBox(
height: SizeConfig.getHeightMultiplier(
height: dialogHeight) *
(SizeConfig.isHeightVeryShort ? 10 : 5),
),
Padding(
padding: EdgeInsets.only(top: 5, right: 5),
child: AppText(
TranslationBase.of(context)
.verificationMessage +
' XXXXXX' +
mobileNo.toString().substring(
mobileNo.toString().length - 3),
textAlign: TextAlign.start,
fontWeight: FontWeight.w700,
letterSpacing: -0.48,
color: Color(0xFF2B353E),
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth(
width: dialogWidth) *
3.5, //14,
maxLines: 2,
)),
Form(
key: verifyAccountForm,
child: Padding(
padding: EdgeInsets.only(
top: SizeConfig.getHeightMultiplier(
height: dialogHeight) *
2),
child: Directionality(
textDirection: TextDirection.ltr,
child: Row(
mainAxisAlignment:
MainAxisAlignment.start,
children: <Widget>[
Container(
width: dialogInputWidth,
height:
SizeConfig.getHeightMultiplier(
height: dialogHeight) *
30,
margin: EdgeInsets.symmetric(
vertical: 2, horizontal: 5),
child: TextFormField(
textInputAction:
TextInputAction.next,
style: buildTextStyle(),
autofocus: true,
maxLength: 1,
controller: digit1,
textAlign: TextAlign.center,
keyboardType:
TextInputType.number,
decoration:
buildInputDecoration(context),
onSaved: (val) {},
validator: validateCodeDigit,
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD2);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD2);
verifyAccountFormValue[
'digit1'] = val.trim();
checkValue();
}
},
),
),
Container(
width: dialogInputWidth,
height:
SizeConfig.getHeightMultiplier(
height: dialogHeight) *
30,
margin: EdgeInsets.symmetric(
vertical: 2, horizontal: 5),
child: TextFormField(
focusNode: focusD2,
textInputAction:
TextInputAction.next,
maxLength: 1,
controller: digit2,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType:
TextInputType.number,
decoration:
buildInputDecoration(
context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD3);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD3);
verifyAccountFormValue[
'digit2'] = val.trim();
checkValue();
}
},
validator: validateCodeDigit),
),
Container(
margin: EdgeInsets.symmetric(
vertical: 2, horizontal: 5),
width: dialogInputWidth,
height: SizeConfig
.getHeightMultiplier(
height:
dialogHeight) *
30,
child: TextFormField(
focusNode: focusD3,
textInputAction:
TextInputAction.next,
maxLength: 1,
controller: digit3,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType:
TextInputType.number,
decoration:
buildInputDecoration(
context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(
focusD4);
verifyAccountFormValue[
'digit3'] =
val.trim();
checkValue();
}
},
validator:
validateCodeDigit)),
Container(
margin: EdgeInsets.symmetric(
vertical: 2, horizontal: 5),
width: dialogInputWidth,
height: SizeConfig
.getHeightMultiplier(
height:
dialogHeight) *
30,
child: TextFormField(
focusNode: focusD4,
maxLength: 1,
textAlign: TextAlign.center,
style: buildTextStyle(),
controller: digit4,
keyboardType:
TextInputType.number,
decoration:
buildInputDecoration(
context),
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
verifyAccountFormValue[
'digit4'] =
val.trim();
checkValue();
}
},
validator:
validateCodeDigit)),
],
)),
),
Container(
margin: EdgeInsets.all(5),
width: SizeConfig.realScreenWidth * 0.16,
child: TextFormField(
focusNode: focusD3,
textInputAction: TextInputAction.next,
maxLength: 1,
controller: digit3,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType: TextInputType.number,
decoration:
buildInputDecoration(context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD4);
verifyAccountFormValue['digit3'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit)),
Container(
margin: EdgeInsets.all(5),
width: SizeConfig.realScreenWidth * 0.16,
child: TextFormField(
focusNode: focusD4,
maxLength: 1,
textAlign: TextAlign.center,
style: buildTextStyle(),
controller: digit4,
keyboardType: TextInputType.number,
decoration:
buildInputDecoration(context),
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
verifyAccountFormValue['digit4'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit)),
],
)),
),
),
Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context).validationMessage +
' ',
fontWeight: FontWeight.w600,
fontSize: 14,
),
AppText(
displayTime,
color: Colors.red,
textAlign: TextAlign.start,
fontWeight: FontWeight.bold,
fontSize: 14,
)
]),
)
],
))),
);
}),
);
});
),
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context)
.validationMessage +
' ',
textAlign: TextAlign.start,
fontWeight: FontWeight.w700,
letterSpacing: -0.48,
color: Color(0xFF2B353E),
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth(
width: dialogWidth) *
3.5,
),
AppText(
displayTime,
color: Colors.red,
textAlign: TextAlign.start,
fontWeight: FontWeight.bold,
fontSize: SizeConfig
.getTextMultiplierBasedOnWidth(
width: dialogWidth) *
3.5,
)
])
],
),
),
);
})),
),
),
),
),
),
);
}
TextStyle buildTextStyle() {
return TextStyle(
fontSize: SizeConfig.textMultiplier * 3,
fontSize: SizeConfig.textMultiplier * 2.5,
);
}
@ -316,7 +392,6 @@ class SMSOTP {
digit3.text.toString() +
digit4.text.toString());
this.isClosed = true;
}
}
@ -341,7 +416,7 @@ class SMSOTP {
displayTime = this.getSecondsAsDigitalClock(this.remainingTime);
});
Future.delayed(Duration(seconds: 1), () {
Future.delayed(Duration(seconds: 1), () {
if (this.remainingTime > 0) {
if (isClosed == false) {
startTimer(setState);

@ -62,7 +62,7 @@ class PatientCard extends StatelessWidget {
decoration: Helpers.getCardBoxDecoration(),
child: CardWithBgWidget(
padding: 0,
marginLeft: (!isMyPatient && isInpatient) ||isFromLiveCare ? 0 : 10,
marginLeft: (!isMyPatient && isInpatient) || isFromLiveCare ? 0 : 10,
marginSymmetric: isFromSearch ? 10 : 0.0,
hasBorder: false,
bgColor: isFromLiveCare
@ -95,6 +95,7 @@ class PatientCard extends StatelessWidget {
padding: EdgeInsets.only(left: 12.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
patientInfo.patientStatusType == 43
? Row(
@ -207,56 +208,31 @@ class PatientCard extends StatelessWidget {
fontWeight: FontWeight.w400,
)
: patientInfo.arrivedOn != null
? Column(
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
AppText(
AppDateUtils
.getDayMonthYearDateFormatted(
AppDateUtils
.convertStringToDate(
patientInfo.arrivedOn,
),
isMonthShort: true,
),
fontFamily: 'Poppins',
fontWeight: FontWeight.w400,
fontSize: 15,
),
AppText(
"${AppDateUtils.getStartTime(patientInfo.startTime)}",
fontFamily: 'Poppins',
fontWeight: FontWeight.w400,
fontSize: 15,
),
],
)
? Container(
padding: EdgeInsets.only(right: 9),
child: AppText(
"${AppDateUtils.getStartTime(patientInfo.startTime)}",
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 11,
letterSpacing: -0.64,
),
)
: (patientInfo.appointmentDate !=
null &&
patientInfo
.appointmentDate.isNotEmpty)
? Column(
crossAxisAlignment:
CrossAxisAlignment.end,
children: [
AppText(
"${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.convertStringToDate(
patientInfo
.appointmentDate,
), isMonthShort: true)}",
fontFamily: 'Poppins',
fontWeight: FontWeight.w400,
fontSize: 15,
),
AppText(
" ${AppDateUtils.getStartTime(patientInfo.startTime)}",
fontFamily: 'Poppins',
fontWeight: FontWeight.w400,
fontSize: 15,
),
],
)
? Container(
padding: EdgeInsets.only(right: 9),
child: AppText(
" ${AppDateUtils.getStartTime(patientInfo.startTime)}",
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 11,
letterSpacing: -0.64,
),
)
: SizedBox()
],
))
@ -301,16 +277,18 @@ class PatientCard extends StatelessWidget {
textOverflow: TextOverflow.ellipsis,
),
if (patientInfo.gender == 1)
Icon(
DoctorApp.male_2,
color: Colors.blue,
size: 18,
Container(
padding: EdgeInsets.symmetric(
horizontal: 4, vertical: 2),
child: SvgPicture.asset(
"assets/images/svgs/male.svg"),
)
else
Icon(
DoctorApp.female_1,
color: Colors.pink,
size: 18,
Container(
padding: EdgeInsets.symmetric(
horizontal: 4, vertical: 2),
child: SvgPicture.asset(
"assets/images/svgs/female.svg"),
),
if (isFromLiveCare)
ShowTimer(
@ -318,49 +296,54 @@ class PatientCard extends StatelessWidget {
),
]),
),
if(nationalityName.isNotEmpty)
Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: Container(
padding: EdgeInsets.only(top: 8),
alignment: Alignment.centerRight,
child: AppText(
nationalityName.truncate(14),
fontWeight: FontWeight.w600,
fontSize: 10,
color: Color(0xFF2E303A),
textOverflow: TextOverflow.ellipsis,
if (nationalityName.isNotEmpty)
Expanded(
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Container(
padding: EdgeInsets.only(top: 5),
alignment: Alignment.centerRight,
child: AppText(
nationalityName.truncate(14),
fontWeight: FontWeight.w600,
fontSize: 10,
color: Color(0xFF2E303A),
textOverflow: TextOverflow.ellipsis,
),
),
),
),
patientInfo.nationality != null ||
patientInfo.nationalityId != null
? ClipRRect(
borderRadius:
BorderRadius.circular(20.0),
child: CachedNetworkImage(
imageUrl: patientInfo
.nationalityFlagURL !=
null
? patientInfo.nationalityFlagURL
: '',
height: 16,
width: 22,
errorWidget:
(context, url, error) =>
AppText(
'No Image',
fontSize: 10,
),
))
: SizedBox()
],
),
)
patientInfo.nationality != null ||
patientInfo.nationalityId != null
? Container(
padding: EdgeInsets.only(
right: 7, top: 5),
child: ClipRRect(
borderRadius:
BorderRadius.circular(20.0),
child: CachedNetworkImage(
imageUrl: patientInfo
.nationalityFlagURL !=
null
? patientInfo
.nationalityFlagURL
: '',
height: 16,
width: 22,
errorWidget:
(context, url, error) =>
AppText(
'No Image',
fontSize: 10,
),
)),
)
: SizedBox()
],
),
)
],
)),
SizedBox(
@ -374,10 +357,11 @@ class PatientCard extends StatelessWidget {
child: Container(
width: 60,
height: 60,
child: Image.asset(
//TODO Elham* create widget for this to make it use every where
child: SvgPicture.asset(
patientInfo.gender == 1
? 'assets/images/male_avatar.png'
: 'assets/images/female_avatar.png',
? 'assets/images/svgs/male avatar.svg'
: 'assets/images/svgs/female avatar.svg',
fit: BoxFit.cover,
),
),
@ -406,6 +390,69 @@ class PatientCard extends StatelessWidget {
value:
"${AppDateUtils.getAgeByBirthday(patientInfo.dateofBirth, context, isServerFormat: !isFromLiveCare)}",
),
patientInfo.arrivedOn != null
? Column(
crossAxisAlignment:
CrossAxisAlignment.end,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
// AppText(
// AppDateUtils
// .getDayMonthYearDateFormatted(
// AppDateUtils
// .convertStringToDate(
// patientInfo.arrivedOn,
// ),
// isMonthShort: true,
// ),
// fontFamily: 'Poppins',
// fontWeight: FontWeight.w600,
// fontSize: 11,
// letterSpacing: -0.64,
// ),
CustomRow(
label: TranslationBase.of(
context)
.arrivedP +
" : ",
value: AppDateUtils
.getDayMonthYearDateFormatted(
AppDateUtils
.convertStringToDate(
patientInfo.arrivedOn,
),
isMonthShort: true,
),
),
],
)
: (patientInfo.appointmentDate !=
null &&
patientInfo.appointmentDate
.isNotEmpty)
? Column(
crossAxisAlignment:
CrossAxisAlignment.end,
mainAxisAlignment:
MainAxisAlignment.start,
children: [
CustomRow(
label: TranslationBase.of(
context)
.appointmentDate +
" : ",
value: "${AppDateUtils.getDayMonthYearDateFormatted(AppDateUtils.convertStringToDate(
patientInfo
.appointmentDate,
), isMonthShort: true)}",
),
],
)
: SizedBox(),
if (isInpatient)
CustomRow(
label:
@ -455,9 +502,12 @@ class PatientCard extends StatelessWidget {
),
]),
),
Icon(
Icons.arrow_forward,
size: 24,
Padding(
padding: const EdgeInsets.only(right: 8),
child: Icon(
Icons.arrow_forward,
size: 24,
),
),
],
))
@ -467,7 +517,8 @@ class PatientCard extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
padding: EdgeInsets.all(4),
padding: EdgeInsets.only(
left: 9, right: 9, bottom: 9),
child: SvgPicture.asset(
'assets/images/svgs/profile_screen/livecare.svg',
height: 20,
@ -479,9 +530,11 @@ class PatientCard extends StatelessWidget {
: !isInpatient && !isFromSearch
? Row(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.all(4),
padding: EdgeInsets.only(
left: 9, right: 9, bottom: 9),
child: SvgPicture.asset(
patientInfo.appointmentType ==
'Regular' &&
@ -498,11 +551,16 @@ class PatientCard extends StatelessWidget {
: (isInpatient == true)
? Row(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
padding: EdgeInsets.all(4),
child: Image.asset(
'assets/images/inpatient.png',
padding: EdgeInsets.only(
left: 9,
right: 9,
bottom: 9),
child: SvgPicture.asset(
'assets/images/svgs/inpatient.svg',
height: 25,
width: 35,
)),

@ -81,7 +81,7 @@ class BottomNavigationItem extends StatelessWidget {
child: AppText(name ?? "",
textAlign: TextAlign.center,
fontSize:
SizeConfig.getTextMultiplierBasedOnWidth() * 2,
SizeConfig.getTextMultiplierBasedOnWidth() * 2.5,
letterSpacing: -0.24,
color: AppGlobal.appTextColor,
fontWeight: FontWeight.w600) //#989898,

@ -32,7 +32,7 @@ class AppButton extends StatefulWidget {
this.iconData,
this.icon,
this.color,
this.fontSize = 2,
this.fontSize = 16,
this.padding = 13,
this.loading = false,
this.disabled = false,
@ -107,7 +107,7 @@ class _AppButtonState extends State<AppButton> {
child: AppText(
widget.title,
color: widget.fontColor,
fontSize: 16.0,
fontSize: widget.fontSize,
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
),

@ -71,7 +71,7 @@ class CardWithBgWidget extends StatelessWidget {
),
Container(
padding: EdgeInsets.all(padding),
margin: EdgeInsets.only(left: marginLeft),
margin: EdgeInsets.only(left: !projectProvider.isArabic?marginLeft:0, right:projectProvider.isArabic?marginLeft:0 ),
child: widget)
],
),

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import '../app_texts_widget.dart';
@ -18,7 +19,7 @@ class ErrorMessage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(height: 100,),
Image.asset('assets/images/no-data.png'),
SvgPicture.asset('assets/images/svgs/no data.svg'),
Center(
child: Center(
child: Padding(

File diff suppressed because it is too large Load Diff

@ -130,6 +130,7 @@ flutter:
- assets/images/
- assets/images/dashboard/
- assets/images/login/
- assets/images/svgs/
- assets/images/svgs/verification/
- assets/images/svgs/profile_screen/
- assets/images/svgs/bottom_nav/

Loading…
Cancel
Save