completed screens for onboarding,login and signup page onboarding flow completed

This commit is contained in:
Shubhamshirva
2024-06-03 16:07:19 +05:30
parent 2c0886488c
commit e94b499a6a
41 changed files with 3116 additions and 15 deletions

BIN
assets/images/png/clock.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
assets/images/png/globe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

BIN
assets/images/png/phone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@@ -0,0 +1,5 @@
<svg width="56" height="49" viewBox="0 0 56 49" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="28" cy="12" r="11.3" stroke="white" stroke-width="1.4"/>
<circle cx="12" cy="37" r="11.3" stroke="white" stroke-width="1.4"/>
<circle cx="44" cy="37" r="11.3" stroke="white" stroke-width="1.4"/>
</svg>

After

Width:  |  Height:  |  Size: 310 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,11 @@
<svg width="45" height="45" viewBox="0 0 45 45" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1710_2068)">
<path d="M32.2998 0.0966835C16.8486 1.53809 4.64941 11.9268 1.01074 26.7539C0.307617 29.6191 0 32.3174 0 35.5606C0 39.0586 0.254883 41.3789 0.738281 42.3984C1.30078 43.5674 2.4873 44.4375 3.7793 44.6397C6.13477 45.0088 10.3711 45.1143 13.0166 44.8594C23.4668 43.875 32.6338 38.6279 38.5664 30.2607C39.8584 28.4326 41.3086 25.875 41.3086 25.4268C41.3086 25.084 41.0713 24.8027 40.7285 24.7324C40.333 24.6533 40.0957 24.917 39.4541 26.1035C35.6221 33.2051 29.3027 38.6543 21.6475 41.4756L20.9268 41.7393L19.582 40.7813C16.4355 38.5225 14.0537 36.4834 11.0391 33.4512C9.07031 31.4824 8.81543 31.2539 8.56055 31.2539C8.05957 31.2539 7.72558 31.7285 7.90137 32.1943C8.01562 32.4844 11.0127 35.543 12.5684 36.9492C14.2998 38.5225 15.6533 39.6299 17.5518 41.0625C18.4395 41.7217 19.125 42.2842 19.0898 42.3018C19.0547 42.3281 18.4746 42.4775 17.7891 42.627L16.5586 42.917L15.5478 42.1436C13.0166 40.1748 11.3203 38.6719 8.78027 36.1318C7.59375 34.9453 6.12598 33.3984 5.52832 32.6953C4.41211 31.4121 2.75098 29.3555 2.32031 28.7227L2.08301 28.3887L2.37305 27.1758C2.53125 26.5166 2.67187 25.9453 2.69824 25.9102C2.71582 25.875 3.27832 26.5606 3.9375 27.4482C4.59668 28.3272 5.34375 29.294 5.58105 29.584C6.20508 30.3486 6.53906 30.4805 6.97851 30.1377C7.1543 30.0059 7.20703 29.8828 7.20703 29.6367C7.20703 29.3467 7.07519 29.1445 6.19629 28.0371C5.64258 27.334 4.75488 26.1563 4.21875 25.418L3.26074 24.0732L3.51562 23.3701C6.1084 16.3389 10.9687 10.3975 17.3584 6.4336C18.9756 5.44043 21.5156 4.20118 23.3701 3.51563L24.0732 3.26075L25.374 4.1836C31.3418 8.45508 36.5449 13.6582 40.8164 19.626L41.7393 20.918L41.4404 21.7617C41.2031 22.4561 41.168 22.6494 41.2383 22.8604C41.3789 23.2559 41.8711 23.4229 42.2754 23.2031C42.5478 23.0625 43.4443 20.4961 43.9453 18.4307C44.6396 15.6094 44.9209 13.3506 44.9736 10.1338C45.0439 6.38966 44.8066 3.73536 44.2969 2.6543C43.7519 1.48536 42.5303 0.571293 41.2471 0.360355C39.2344 0.026371 34.5146 -0.105465 32.2998 0.0966835ZM37.5293 1.4502C39.2168 1.50293 40.8691 1.6875 41.4844 1.88965C42.0557 2.07422 42.7324 2.69825 43.0137 3.27832C43.3564 3.99024 43.5146 5.57227 43.5674 8.61329C43.6025 10.5908 43.5762 11.5576 43.4707 12.6826C43.2686 14.8359 43.3652 14.7481 42.4336 13.5967C39.2959 9.71192 34.8486 5.28223 31.2715 2.46973C30.7705 2.07422 30.4629 1.78418 30.5244 1.74903C30.8144 1.59961 34.8311 1.31836 35.7715 1.37989C35.9385 1.38868 36.7295 1.42383 37.5293 1.4502ZM29.4697 2.87403C34.2158 6.56543 38.4346 10.7842 42.126 15.5303C42.5478 16.0664 42.8906 16.5586 42.8906 16.6289C42.8906 16.7432 42.3984 18.835 42.3193 19.0547C42.293 19.125 41.9502 18.7295 41.5195 18.1318C37.5117 12.6475 31.957 7.11914 26.5078 3.22559C26.0859 2.91797 25.8662 2.70704 25.9365 2.68067C26.1914 2.59278 28.1777 2.11817 28.3271 2.11817C28.415 2.10938 28.9336 2.45215 29.4697 2.87403ZM2.97949 31.9043C4.53516 33.8027 5.65137 35.0244 7.81348 37.1865C10.0371 39.4102 11.5225 40.7549 13.4561 42.3106C14.0977 42.8203 14.5283 43.2246 14.4668 43.251C14.291 43.3477 12.3838 43.5234 10.916 43.585C8.12988 43.6904 4.51758 43.4531 3.47168 43.0928C2.87402 42.8906 2.10937 42.126 1.90723 41.5283C1.81934 41.291 1.6875 40.5527 1.59961 39.9023C1.33594 37.7666 1.41504 31.6406 1.73145 30.5508C1.77539 30.3926 1.79297 30.4014 1.96875 30.6299C2.06543 30.7793 2.52246 31.3506 2.97949 31.9043Z" fill="white"/>
<path d="M28.3975 15.6006L27.5449 16.4355L26.8506 15.7324C26.2529 15.1348 26.1035 15.0293 25.8574 15.0293C25.5234 15.0293 25.1367 15.3545 25.1367 15.6445C25.1367 15.9434 25.2949 16.1807 25.9365 16.8311L26.543 17.4463L25.7959 18.1934L25.0576 18.9316L24.3545 18.2549C23.7305 17.6396 23.6338 17.5781 23.3174 17.5781C22.9131 17.5781 22.7021 17.7539 22.623 18.1758C22.5703 18.4395 22.623 18.5098 23.2998 19.2041L24.0293 19.96L23.2646 20.7246L22.5 21.4893L21.8057 20.7949C21.1904 20.1797 21.0762 20.1094 20.7861 20.1094C20.3467 20.1094 20.1094 20.3467 20.1094 20.7861C20.1094 21.0762 20.1797 21.1904 20.7949 21.8057L21.4893 22.5L20.7246 23.2646L19.96 24.0293L19.2041 23.2998C18.5098 22.623 18.4395 22.5703 18.1758 22.623C17.7539 22.7021 17.5781 22.9131 17.5781 23.3174C17.5781 23.6338 17.6396 23.7305 18.2549 24.3545L18.9316 25.0576L18.1934 25.7959L17.4463 26.543L16.7871 25.8838C15.9873 25.0928 15.6357 24.9609 15.2578 25.3389C15.0996 25.4971 15.0293 25.6641 15.0293 25.8574C15.0293 26.1035 15.1348 26.2529 15.7324 26.8506L16.4355 27.5449L15.6006 28.3975C14.8535 29.1533 14.7656 29.2764 14.7656 29.5664C14.7656 29.9883 15.0117 30.2344 15.4424 30.2344C15.7412 30.2344 15.8555 30.1553 16.6113 29.3994L17.4463 28.5645L18.1494 29.2676C18.7734 29.8916 18.8877 29.9707 19.1777 29.9707C19.4238 29.9707 19.5469 29.918 19.6787 29.7422C20.0215 29.3027 19.9336 29.0566 19.1602 28.2656L18.457 27.5449L19.2041 26.8066L19.9424 26.0684L20.6455 26.7451C21.2783 27.3604 21.3662 27.4219 21.6914 27.4219C21.9727 27.4219 22.0869 27.3691 22.2275 27.1934C22.5527 26.7803 22.4736 26.5869 21.6914 25.7783L20.9707 25.04L21.7354 24.2754L22.5 23.5107L23.1943 24.2051C23.792 24.7939 23.9238 24.8906 24.2051 24.8994C24.627 24.9082 24.9082 24.6357 24.9082 24.2139C24.9082 23.9414 24.8203 23.8096 24.2139 23.2031L23.5107 22.5L24.2754 21.7354L25.04 20.9707L25.7783 21.6914C26.5869 22.4736 26.7803 22.5527 27.1934 22.2275C27.3691 22.0869 27.4219 21.9727 27.4219 21.6914C27.4219 21.3662 27.3604 21.2783 26.7451 20.6455L26.0684 19.9424L26.8066 19.2041L27.5537 18.457L28.1689 19.0635C29.0479 19.9248 29.3027 20.0215 29.7422 19.6787C29.918 19.5469 29.9707 19.4238 29.9707 19.1777C29.9707 18.8877 29.8916 18.7734 29.2676 18.1494L28.5645 17.4463L29.3994 16.6113C30.1553 15.8555 30.2344 15.7412 30.2344 15.4424C30.2344 15.0117 29.9883 14.7656 29.5664 14.7656C29.2764 14.7656 29.1533 14.8535 28.3975 15.6006Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_1710_2068">
<rect width="45" height="45" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 511 KiB

View File

@@ -0,0 +1,8 @@
<svg width="52" height="52" viewBox="0 0 52 52" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M31.5555 6.01248C31.4234 6.19529 29.443 9.35388 27.168 13.0203L23.0141 19.7031H22.5062C22.2219 19.7133 21.8156 19.7742 21.6125 19.8453C21.1555 20.0078 14.5031 24.2836 14.0258 24.7203C13.5383 25.1672 13.3047 25.7258 13.3047 26.4773C13.3047 27.2492 13.3758 27.4523 14.0766 28.5594C14.5133 29.25 14.7062 29.4633 14.9703 29.5547C15.732 29.7984 16.3211 29.1383 16.0062 28.3969C15.9352 28.2242 15.6812 27.7875 15.4477 27.432C14.8586 26.5078 14.8891 26.2031 15.6305 25.6953C15.8539 25.5429 15.9859 25.5023 16.0367 25.5734C17.5805 28.0719 22.8211 36.1562 23.4102 36.9383C25.0148 39.1015 27.0258 40.9195 28.7625 41.8031C30.5195 42.6867 32.0125 42.9406 35.9836 43.032L38.6953 43.0929V43.4789C38.6953 43.9765 38.3094 44.4437 37.7812 44.5859C36.9891 44.7992 31.8703 44.4133 30.3875 44.0273C26.8531 43.1133 23.6844 40.3101 20.3531 35.1203C19.2562 33.4039 19.2562 33.414 18.7281 33.414C18.3828 33.414 18.2508 33.4648 18.0883 33.6781C17.7227 34.1453 17.8039 34.3992 18.8805 36.0648C20.4953 38.5734 21.5617 39.9445 23.1055 41.4883C25.5938 43.9765 27.8789 45.3172 30.5906 45.8554C31.8805 46.1094 34.4094 46.3125 36.3898 46.3226C38.2586 46.3226 38.3195 46.3226 38.8578 46.0586C39.8836 45.5609 40.4219 44.6367 40.4219 43.3773C40.4219 42.5851 40.1273 41.864 39.5992 41.3765C39.4062 41.2039 38.0555 40.3203 36.593 39.4164C33.7391 37.6492 33.282 37.2734 32.825 36.2781C32.4492 35.4656 32.4289 34.582 32.7437 30.9969C33.0789 27.1679 33.0789 26.8633 32.7437 26.3758L32.4898 25.9898L32.8656 25.4617C33.0789 25.1672 34.6125 23.0344 36.2883 20.7187C37.9742 18.4031 39.4062 16.382 39.4875 16.2195C39.9242 15.3461 38.7969 14.6047 38.0961 15.3054C37.9539 15.4679 36.2273 17.7937 34.2773 20.4953L30.7328 25.4008L29.4633 25.3398C27.1883 25.2281 26.3352 25.0453 25.6648 24.5375C25.0758 24.0906 24.8828 23.5625 24.8828 22.4351C24.8828 21.6633 24.8422 21.3992 24.6797 21.0945C24.568 20.8812 24.507 20.6578 24.5375 20.5867C25.025 19.7742 32.6625 7.53592 32.7437 7.43435C32.8352 7.34295 34.0437 7.31248 38.3297 7.33279L43.7937 7.36326L43.093 8.3281C41.4578 10.5625 41.4273 10.664 41.9352 11.182C42.2805 11.5273 42.7273 11.5679 43.0422 11.2937C43.1539 11.2023 43.9359 10.1664 44.7789 8.99841C46.1297 7.13982 46.3125 6.83513 46.3125 6.48982C46.3125 6.22576 46.2414 6.02263 46.1094 5.8906C45.9062 5.68748 45.7742 5.68748 38.8578 5.68748H31.7992L31.5555 6.01248ZM22.882 21.6328C23.1156 21.8156 23.1359 21.907 23.1766 22.8719C23.207 23.7351 23.2578 24.0195 23.4812 24.4969C24.0094 25.6344 25.0555 26.4367 26.4164 26.7515C26.7719 26.8429 27.7875 26.9547 28.6711 27.0156C29.5547 27.0765 30.5094 27.1679 30.7937 27.2289L31.3117 27.3406L31.2609 28.0414C31.2305 28.4375 31.1797 28.7726 31.1492 28.8031C31.1289 28.8336 30.7023 28.8031 30.225 28.732C29.3922 28.6203 29.3211 28.6203 29.0672 28.8133C28.8336 28.9859 28.793 29.0976 28.793 29.5039C28.793 30.1539 29.0266 30.3265 30.1641 30.4687C30.6414 30.5398 31.0273 30.5906 31.0375 30.6008C31.0375 30.6109 31.0172 30.9359 30.9867 31.332C30.9156 32.1445 31.0273 32.0937 29.6867 31.9414C28.9961 31.8703 28.9453 31.8804 28.7016 32.1242C28.5187 32.307 28.4375 32.5 28.4375 32.7539C28.4375 33.2922 28.7625 33.5765 29.5141 33.6578C29.8391 33.6984 30.2656 33.7594 30.4484 33.7898L30.7734 33.8406V34.5922C30.7734 35.0086 30.743 35.3437 30.7023 35.3437C30.6516 35.3336 30.3062 35.2929 29.9203 35.2422C29.1687 35.1508 28.8031 35.232 28.5797 35.5265C28.3664 35.8008 28.407 36.3187 28.6711 36.6133C28.8742 36.8469 29.0062 36.8875 30.0625 36.989L31.2305 37.1109L31.6875 37.8117C32.2562 38.6851 32.7539 39.1015 34.7242 40.3203L36.268 41.2851L35.7805 41.3156C35.0898 41.3664 32.4898 41.1531 31.6266 40.9703C28.8641 40.4117 26.4266 38.3804 23.7961 34.4297C22.2219 32.0734 17.4688 24.5476 17.5195 24.4969C17.7836 24.2328 22.2422 21.4398 22.4047 21.4297C22.5266 21.4297 22.7398 21.5211 22.882 21.6328Z" fill="white"/>
<path d="M40.0562 12.6344C39.4773 13.132 39.8632 14.1172 40.6351 14.1172C41.3664 14.1172 41.7421 13.0508 41.1734 12.6039C40.8179 12.3195 40.4015 12.3297 40.0562 12.6344Z" fill="white"/>
<path d="M16.3617 30.9359C15.8843 31.5453 16.2703 32.3476 17.032 32.3273C17.5601 32.307 17.9156 31.9008 17.8343 31.3929C17.7632 30.9258 17.4484 30.6719 16.9609 30.6719C16.6562 30.6719 16.5242 30.7328 16.3617 30.9359Z" fill="white"/>
<path d="M5.89062 35.1406C5.75859 35.2727 5.6875 35.4758 5.6875 35.75C5.6875 36.0242 5.75859 36.2273 5.89062 36.3594C6.08359 36.5523 6.22578 36.5625 11.1312 36.5625C14.1578 36.5625 16.2297 36.5219 16.3414 36.4609C16.6562 36.2984 16.8086 35.8008 16.6562 35.4453C16.5852 35.2727 16.443 35.0898 16.3414 35.0391C16.2297 34.9781 14.1578 34.9375 11.1312 34.9375C6.22578 34.9375 6.08359 34.9477 5.89062 35.1406Z" fill="white"/>
<path d="M9.16088 40.0461C8.85619 40.3711 8.86635 40.9297 9.17104 41.2141C9.40463 41.4375 9.41478 41.4375 14.4929 41.4375H19.5913L19.7945 41.1734C19.9163 41.0211 20.0078 40.7773 20.0078 40.625C20.0078 40.4727 19.9163 40.2289 19.7945 40.0766L19.5913 39.8125H14.4828H9.37416L9.16088 40.0461Z" fill="white"/>
<path d="M14.1477 44.8398C13.7211 45.1445 13.8024 46.0688 14.2695 46.2516C14.3609 46.282 16.6969 46.3125 19.4594 46.3125C24.3445 46.3125 24.4867 46.3023 24.6797 46.1094C24.9539 45.8352 24.9539 45.1648 24.6797 44.8906C24.4867 44.6977 24.3445 44.6875 19.4188 44.6875C15.0922 44.6875 14.3305 44.7078 14.1477 44.8398Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,4 @@
<svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.93178 2.875C8.53608 2.875 7.17173 3.28887 6.01125 4.06428C4.85076 4.83969 3.94628 5.94181 3.41217 7.23127C2.87806 8.52072 2.73831 9.93961 3.0106 11.3085C3.28288 12.6774 3.95498 13.9348 4.94189 14.9217C5.92879 15.9086 7.18619 16.5807 8.55507 16.853C9.92395 17.1252 11.3428 16.9855 12.6323 16.4514C13.9218 15.9173 15.0239 15.0128 15.7993 13.8523C16.5747 12.6918 16.9886 11.3275 16.9886 9.93178C16.9884 8.06024 16.2449 6.26539 14.9215 4.94201C13.5982 3.61864 11.8033 2.87512 9.93178 2.875Z" stroke="white" stroke-miterlimit="10"/>
<path d="M15.1965 15.1966L20.1249 20.125" stroke="white" stroke-miterlimit="10" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 748 B

View File

@@ -0,0 +1,3 @@
<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M36.3292 45.7021H13.6709C12.2895 45.7021 10.9648 45.1534 9.98801 44.1766C9.01126 43.1998 8.46252 41.8751 8.46252 40.4938V38.7708C8.46252 30.5021 15.8813 23.7708 25 23.7708C34.1188 23.7708 41.5375 30.4979 41.5375 38.7708V40.4938C41.5375 41.8751 40.9888 43.1998 40.012 44.1766C39.0353 45.1534 37.7105 45.7021 36.3292 45.7021ZM25 25.8583C17.0292 25.8583 10.5459 31.65 10.5459 38.775V40.4979C10.5459 41.3267 10.8751 42.1216 11.4611 42.7076C12.0472 43.2937 12.8421 43.6229 13.6709 43.6229H36.3292C37.158 43.6229 37.9528 43.2937 38.5389 42.7076C39.125 42.1216 39.4542 41.3267 39.4542 40.4979V38.7708C39.4542 31.65 32.9709 25.8583 25 25.8583ZM25 20.6479C23.3831 20.6483 21.8023 20.1692 20.4577 19.2712C19.113 18.3732 18.0649 17.0965 17.4458 15.6028C16.8268 14.109 16.6646 12.4653 16.9798 10.8793C17.295 9.2934 18.0734 7.83656 19.2166 6.69306C20.3598 5.54955 21.8165 4.77075 23.4023 4.45515C24.9882 4.13955 26.632 4.30132 28.1259 4.92C29.6198 5.53869 30.8967 6.5865 31.7951 7.93091C32.6934 9.27533 33.1729 10.856 33.1729 12.4729C33.1713 14.6402 32.3097 16.7183 30.7774 18.2509C29.2451 19.7836 27.1673 20.6457 25 20.6479ZM25 6.38333C23.795 6.38292 22.617 6.73989 21.6149 7.4091C20.6128 8.0783 19.8317 9.02967 19.3704 10.1429C18.9091 11.256 18.7882 12.4811 19.0232 13.6629C19.2582 14.8448 19.8384 15.9304 20.6905 16.7825C21.5425 17.6345 22.6282 18.2147 23.81 18.4497C24.9919 18.6847 26.2169 18.5639 27.3301 18.1026C28.4433 17.6412 29.3946 16.8601 30.0638 15.858C30.733 14.856 31.09 13.6779 31.0896 12.4729C31.088 10.8584 30.4458 9.31042 29.3042 8.16876C28.1625 7.0271 26.6146 6.38499 25 6.38333Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -5,12 +5,10 @@ import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
class CustomTextFormField extends StatefulWidget {
CustomTextFormField({
Key? key,
@@ -24,9 +22,7 @@ class CustomTextFormField extends StatefulWidget {
this.value,
this.readonly = false,
this.enabled = true,
this.outlineColor = Colors.black,
this.maxlines = 1,
this.texttype,
this.inputFormatters,
@@ -68,14 +64,13 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
void validateField(String value) {
setState(() {
widget.validationMessage = widget.validator?.call(value) ??
(value.isEmpty ? "Empty value" : null);
widget.validationMessage =
widget.validator?.call(value) ?? (value.isEmpty ? "" : null);
});
}
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@@ -170,7 +165,6 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
},
),
),
sizedBoxHeight(5.h),
Text(
widget.validationMessage ?? '',
@@ -178,7 +172,6 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
overflow: TextOverflow.ellipsis,
),
],
);
}
}
@@ -291,7 +284,6 @@ class _CustomTextFormField2State extends State<CustomTextFormField2> {
prefixIconColor: widget.prefixIconColor,
constraints: BoxConstraints(minHeight: 50),
hintStyle: TextStyle(
fontSize: 16.sp,
color: Colors.white,
@@ -538,7 +530,173 @@ class _CustomtextFormFieldPasswordState
overflow: TextOverflow.ellipsis,
),
],
);
}
}
class SearchTextFormField extends StatefulWidget {
SearchTextFormField({
Key? key,
this.validator,
this.validationMessage,
this.textEditingController,
this.hintText,
this.leadingIcon,
this.prefixIconColor = const Color(0xFF737373),
this.isInputPassword = false,
this.value,
this.readonly = false,
this.enabled = true,
this.outlineColor = Colors.black,
this.maxlines = 1,
this.texttype,
this.inputFormatters,
this.onInput,
this.onTap,
this.suffixIcon,
}) : super(key: key);
final String? Function(String?)? validator;
final TextEditingController? textEditingController;
final String? hintText;
final Widget? leadingIcon;
final Color prefixIconColor;
final bool isInputPassword;
final String? value;
final bool readonly;
final bool enabled;
final int maxlines;
final TextInputType? texttype;
final List<TextInputFormatter>? inputFormatters;
final Color outlineColor;
final Function(String)? onInput;
final VoidCallback? onTap;
final Widget? suffixIcon;
String? validationMessage;
@override
State<SearchTextFormField> createState() => _SearchTextFormFieldState();
}
class _SearchTextFormFieldState extends State<SearchTextFormField> {
late bool obscureText;
@override
void initState() {
super.initState();
obscureText = widget.isInputPassword;
}
void validateField(String value) {
setState(() {
widget.validationMessage =
widget.validator?.call(value) ?? (value.isEmpty ? "" : null);
});
}
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
GlassmorphicContainer(
width: double.infinity,
height: 50,
borderRadius: 10,
blur: 10,
alignment: Alignment.bottomCenter,
border: 0.8,
linearGradient: LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
const Color(0xFFffffff).withOpacity(0.04),
const Color(0xFFFFFFFF).withOpacity(0.05),
],
stops: [
0.1,
1,
]),
borderGradient: const LinearGradient(
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: [
Color(0xff434A53),
Color(0xFF434A53),
],
),
child: TextFormField(
style: TextStyle(
fontSize: 16.sp, color: Colors.white, fontFamily: 'Helvetica'),
cursorColor: Colors.red,
initialValue: widget.value,
readOnly: widget.readonly,
onTap: widget.onTap,
enabled: widget.enabled,
enableInteractiveSelection: false,
maxLines: widget.maxlines,
obscureText: obscureText,
controller: widget.textEditingController,
decoration: InputDecoration(
hintText: widget.hintText,
prefixIconColor: widget.prefixIconColor,
constraints: BoxConstraints(minHeight: 50),
hintStyle: TextStyle(
fontSize: 16.sp,
color: Colors.white,
fontWeight: FontWeight.w400,
fontFamily: 'Helvetica'),
prefixIcon:
widget.leadingIcon == null ? null : widget.leadingIcon!,
suffixIcon: widget.isInputPassword
? GestureDetector(
onTap: () => setState(() => obscureText = !obscureText),
child: obscureText
? Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
padding: EdgeInsets.only(right: 20.0),
child: SvgPicture.asset(
"assets/images/svg/loginpasswordclose.svg",
),
),
],
)
: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
padding: EdgeInsets.only(right: 20.0),
child: SvgPicture.asset(
'assets/images/svg/loginpasswordopen.svg',
),
),
],
),
)
: widget.suffixIcon == null
? null
: widget.suffixIcon!,
border: InputBorder.none,
contentPadding:
const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
),
keyboardType: widget.texttype,
inputFormatters: widget.inputFormatters,
onChanged: (value) {
widget.onInput?.call(value);
validateField(value);
},
),
),
sizedBoxHeight(5.h),
Text(
widget.validationMessage ?? '',
style: TextStyle(color: Colors.red, fontSize: 12.sp),
overflow: TextOverflow.ellipsis,
),
],
);
}
}

View File

@@ -37,7 +37,7 @@ Widget text20400white(String text) {
Widget text16400white(String text) {
return Text(
text,
textAlign: TextAlign.center,
// textAlign: TextAlign.center,
style: TextStyle(
fontSize: 16.sp,
color: AppColors.white,
@@ -46,6 +46,29 @@ Widget text16400white(String text) {
);
}
Widget text25700white(String text) {
return Text(
text,
// textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25.sp,
color: AppColors.white,
fontWeight: FontWeight.w700,
fontFamily: 'Helvetica'),
);
}
Widget text12400white(String text) {
return Text(
text,
style: TextStyle(
fontSize: 12.sp,
color: AppColors.white,
fontWeight: FontWeight.w400,
fontFamily: 'Helvetica'),
);
}
Widget text14400white(String text) {
return Text(
text,
@@ -215,6 +238,17 @@ Widget text16w400_FCFCFC(String text) {
);
}
Widget text10400white(String text) {
return Text(
text,
style: TextStyle(
fontSize: 10.sp,
color: Colors.white,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400),
);
}
Widget text16w700_FCFCFC(String text) {
return Text(
text,

View File

@@ -0,0 +1,672 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Common/controller/CommonTextFormField.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/ImageUpload.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
class LetusUnderstand extends StatefulWidget {
const LetusUnderstand({super.key});
@override
State<LetusUnderstand> createState() => _LetusUnderstandState();
}
class _LetusUnderstandState extends State<LetusUnderstand> {
TextEditingController busunesscontactcontroller = TextEditingController();
TextEditingController emailidcontroller = TextEditingController();
TextEditingController businesshandlecontroller = TextEditingController();
TextEditingController openinghourscontroller = TextEditingController();
TextEditingController websitelinkcontroller = TextEditingController();
TextEditingController googlereviewlinkcontroller = TextEditingController();
bool isValidPhoneNumber(String phoneNumber) {
final RegExp phoneNumberExpression = RegExp(r"^0{10}$");
return !phoneNumberExpression.hasMatch(phoneNumber);
}
List<File?> filePath = [];
List<File?> bannerPath = [];
bool isImageAdded = false;
bool isbannerAdded = false;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()),
Positioned(top: 310, right: -30, child: CommonBlurRightSecond()),
Positioned(top: 540, left: -30, child: CommonBlurLeftBlue()),
GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: ListView(children: [
Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
),
),
),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 1 of 3')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
)
],
),
),
),
sizedBoxHeight(30.h),
Center(
child:
text20400white('Let us understand you better')),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 154.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
),
sizedBoxHeight(30.h),
text16400white('Business contact number'),
sizedBoxHeight(10.h),
CustomTextFormField(
textEditingController: busunesscontactcontroller,
texttype: TextInputType.text,
hintText: "Enter your business contact number",
leadingIcon:
// const Icon(Icons.mail_outline),
Image.asset(
width: 22.w,
height: 17.h,
'assets/images/png/phone.png',
),
// validatorText: "Enter your business owner name",
validator: (value) {
if (value.isEmpty) {
return 'Enter your phone number';
} else if (!RegExp(r'(^(?:[+0]9)?[0-9]{10}$)')
.hasMatch(value)) {
return 'Enter a valid phone number';
} else if (!isValidPhoneNumber(value)) {
return 'Phone number cannot contain 10 zeros';
}
return null;
},
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
FilteringTextInputFormatter.allow(RegExp('[0-9]')),
],
),
sizedBoxHeight(15.h),
text16400white('Business email address'),
sizedBoxHeight(10.h),
CustomTextFormField(
textEditingController: emailidcontroller,
hintText: "Enter your email address",
leadingIcon:
// const Icon(Icons.mail_outline),
SizedBox(
width: 22.w,
height: 17.h,
child: Image.asset(
'assets/images/png/mail.png',
width: 22.w,
height: 17.h,
),
),
// validatorText: "Email Id",
validator: (value) {
if (value!.isEmpty) {
return 'Enter your e-mail address';
}
if (!RegExp(
r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')
.hasMatch(value)) {
return 'Enter a valid e-mail address';
}
return null;
},
inputFormatters: [
LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter()
],
),
// sizedBoxHeight(10.h),
sizedBoxHeight(15.h),
text16400white('Business handle'),
sizedBoxHeight(10.h),
CustomTextFormField(
textEditingController: businesshandlecontroller,
texttype: TextInputType.text,
hintText: "Enter your business handle",
leadingIcon:
// const Icon(Icons.mail_outline),
Image.asset(
width: 22.w,
height: 17.h,
'assets/images/png/user.png',
),
// validatorText: "Enter your business owner name",
validator: (value) {
if (value!.isEmpty) {
return 'Enter your business handle';
}
return null;
},
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
FilteringTextInputFormatter.allow(
RegExp('[a-zA-Z ]'))
],
),
// sizedBoxHeight(10.h),
sizedBoxHeight(15.h),
text16400white('Opening hours'),
sizedBoxHeight(10.h),
CustomTextFormField(
textEditingController: openinghourscontroller,
texttype: TextInputType.text,
hintText: "Enter your opening hours",
leadingIcon:
// const Icon(Icons.mail_outline),
Image.asset(
width: 22.w,
height: 17.h,
'assets/images/png/clock.png',
),
// validatorText: "Enter your business owner name",
validator: (value) {
if (value!.isEmpty) {
return 'Enter your opening hours';
}
return null;
},
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
FilteringTextInputFormatter.allow(
RegExp('[a-zA-ZS0-9 ]')),
],
),
// sizedBoxHeight(10.h),
sizedBoxHeight(15.h),
text16400white('Website link'),
sizedBoxHeight(10.h),
CustomTextFormField(
textEditingController: websitelinkcontroller,
texttype: TextInputType.text,
hintText: "Enter your website link",
leadingIcon:
// const Icon(Icons.mail_outline),
Image.asset(
width: 22.w,
height: 17.h,
'assets/images/png/globe.png',
),
// validatorText: "Enter your business owner name",
validator: (value) {
if (value!.isEmpty) {
return 'Enter your website link';
}
return null;
},
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
FilteringTextInputFormatter.allow(
RegExp('[a-zA-ZS0-9 ]')),
],
),
// sizedBoxHeight(10.h),
sizedBoxHeight(15.h),
text16400white('Google review link'),
sizedBoxHeight(10.h),
CustomTextFormField(
textEditingController: googlereviewlinkcontroller,
texttype: TextInputType.text,
hintText: "Enter your google review link",
leadingIcon:
// const Icon(Icons.mail_outline),
Image.asset(
width: 22.w,
height: 17.h,
'assets/images/png/globe.png',
),
// validatorText: "Enter your business owner name",
validator: (value) {
if (value!.isEmpty) {
return 'Enter your google review link';
}
return null;
},
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
FilteringTextInputFormatter.allow(
RegExp('[a-zA-ZS0-9 ]')),
],
),
// sizedBoxHeight(10.h),
sizedBoxHeight(15.h),
text16400white('Tags'),
sizedBoxHeight(10.h),
CustomTextFormField(
textEditingController: googlereviewlinkcontroller,
texttype: TextInputType.text,
hintText: "Enter your Tags",
leadingIcon:
// const Icon(Icons.mail_outline),
Image.asset(
width: 22.w,
height: 17.h,
'assets/images/png/hashtag.png',
),
// validatorText: "Enter your business owner name",
validator: (value) {
if (value!.isEmpty) {
return 'Enter your tags';
}
return null;
},
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
FilteringTextInputFormatter.allow(
RegExp('[a-zA-ZS0-9 ]')),
],
),
// sizedBoxHeight(10.h),
sizedBoxHeight(15.h),
text16400white('Images upload'),
sizedBoxHeight(10.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
filePath.isNotEmpty && isImageAdded
? Container(
width: 169,
height: 115,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Colors.white
.withOpacity(0.30000001192092896),
Colors.white
.withOpacity(0.2800000011920929)
],
),
shape: RoundedRectangleBorder(
side: BorderSide(
width: 0.50,
color: Color(0xFF7E7E7E)),
borderRadius: BorderRadius.circular(10),
),
),
child: Stack(
children: [
Image.file(
filePath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
// top: 0,
// left: 0,
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
// Clear the list and show the upload button
filePath.clear();
isImageAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape:
RoundedRectangleBorder(
borderRadius:
BorderRadius
.circular(
5)),
),
child: Icon(
Icons
.delete_outline_outlined,
color: Colors.white,
)
// SvgPicture.asset(
// "assets/images/SVG/trash-2.svg",
// width: 17.w,
// height: 17.h,
// ),
)),
),
],
),
)
: GestureDetector(
onTap: () {
ImageUploadBottomSheet().showModal(
context,
false,
(result) {
var file = File(result);
// filePath[0] = file;
// filePath.clear();
filePath.add(file);
isImageAdded = true;
// isImageAdded = true;
setState(() {});
},
);
},
child: Container(
width: 169,
height: 115,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Colors.white.withOpacity(
0.30000001192092896),
Colors.white
.withOpacity(0.2800000011920929)
],
),
shape: RoundedRectangleBorder(
side: BorderSide(
width: 0.50,
color: Color(0xFF7E7E7E)),
borderRadius:
BorderRadius.circular(10),
),
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Image.asset(
'assets/images/png/onlycamera.png'),
sizedBoxHeight(5.h),
Text(
'Upload business \nlogo',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 14.sp,
fontFamily: 'Poppins',
fontWeight: FontWeight.w400,
),
),
],
),
),
),
bannerPath.isNotEmpty && isbannerAdded
? Container(
width: 169,
height: 115,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Colors.white
.withOpacity(0.30000001192092896),
Colors.white
.withOpacity(0.2800000011920929)
],
),
shape: RoundedRectangleBorder(
side: BorderSide(
width: 0.50,
color: Color(0xFF7E7E7E)),
borderRadius: BorderRadius.circular(10),
),
),
child: Stack(
children: [
Image.file(
bannerPath[0]!,
fit: BoxFit.cover,
width: double.infinity,
),
Positioned(
// top: 0,
// left: 0,
right: 5,
bottom: 5,
child: GestureDetector(
onTap: () {
// Clear the list and show the upload button
bannerPath.clear();
isbannerAdded = false;
setState(() {});
},
child: Container(
width: 27,
height: 27,
decoration: ShapeDecoration(
color: Color(0xFF7E7E7E),
shape:
RoundedRectangleBorder(
borderRadius:
BorderRadius
.circular(
5)),
),
child: Icon(
Icons
.delete_outline_outlined,
color: Colors.white,
)
// SvgPicture.asset(
// "assets/images/SVG/trash-2.svg",
// width: 17.w,
// height: 17.h,
// ),
)),
),
],
),
)
: GestureDetector(
onTap: () {
ImageUploadBottomSheet().showModal(
context,
false,
(result) {
var file = File(result);
// filePath[0] = file;
// filePath.clear();
bannerPath.add(file);
isbannerAdded = true;
// isImageAdded = true;
setState(() {});
},
);
},
child: Container(
width: 169,
height: 115,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Colors.white.withOpacity(
0.30000001192092896),
Colors.white
.withOpacity(0.2800000011920929)
],
),
shape: RoundedRectangleBorder(
side: BorderSide(
width: 0.50,
color: Color(0xFF7E7E7E)),
borderRadius:
BorderRadius.circular(10),
),
),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Image.asset(
'assets/images/png/onlycamera.png'),
sizedBoxHeight(5.h),
Text(
'Upload banner \nimage',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 14.sp,
fontFamily: 'Poppins',
fontWeight: FontWeight.w400,
),
),
],
),
),
)
],
),
sizedBoxHeight(40.h),
CustomButton(text: 'Continue', onPressed: () {
Get.toNamed(RouteName.businessSelectgroupstep2);
})
],
),
),
])),
],
));
}
}

View File

@@ -0,0 +1,312 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
class SelectgroupStep2 extends StatefulWidget {
const SelectgroupStep2({super.key});
@override
State<SelectgroupStep2> createState() => _SelectgroupStep2State();
}
class _SelectgroupStep2State extends State<SelectgroupStep2> {
TextEditingController searchcontroller = TextEditingController();
// StreamController<BlogsModel> blogsController = StreamController();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()),
Positioned(top: 400, right: -30, child: CommonBlurRightSecond()),
Positioned(top: 630, left: -30, child: CommonBlurLeftBlue()),
SingleChildScrollView(
child: GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
),
),
),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 2 of 3')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 148.w,
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xFFD90B2E),
Color(0x60D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(30),
),
),
)
],
))
],
),
),
),
sizedBoxHeight(40.h),
Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
text20400white('Find your group'),
sizedBoxWidth(5.w),
Image.asset('assets/images/png/informationicon.png')
],
)),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 108.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
),
sizedBoxHeight(30.h),
SearchTextFormField(
textEditingController: searchcontroller,
texttype: TextInputType.text,
hintText: "Search groups",
isInputPassword: false,
suffixIcon:
// const Icon(Icons.mail_outline),
// SvgPicture.asset(
// // width: 23.w,
// // height: 23.h,
// 'assets/images/svg/search.svg',
// ),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Icon(
Icons.search,
size: 35,
color: Colors.white,
),
),
// validatorText: "Enter your full name",
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
GroupSelect(
titleString: 'Cambridge university Boat ..',
image: 'assets/images/png/groupindividual.png'),
GroupSelect(
titleString: 'Liverpool FC',
image:
'assets/images/png/groupindividual2.png'),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
GroupSelect(
titleString: 'Cambridge rugby Club',
image:
'assets/images/png/groupindividual3.png'),
GroupSelect(
titleString: 'Cambridge university Boat ..',
image: 'assets/images/png/groupindividual.png'),
],
),
Spacer(flex: 1),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.businessSelectcommunitystep3);
})
],
),
)),
),
],
));
}
}
class GroupSelect extends StatefulWidget {
final String titleString;
final String image;
GroupSelect({
Key? key,
required this.titleString,
required this.image,
}) : super(key: key);
@override
State<GroupSelect> createState() => _GroupSelectState();
}
class _GroupSelectState extends State<GroupSelect> {
bool _text = false;
@override
Widget build(BuildContext context) {
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: 169,
height: 74,
decoration: ShapeDecoration(
image: DecorationImage(
image: AssetImage(
// "https://via.placeholder.com/169x74"
widget.image),
fit: BoxFit.fill,
),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
),
),
sizedBoxHeight(15.h),
text12400white(widget.titleString),
sizedBoxHeight(15.h),
GestureDetector(
onTap: () {
setState(() {
_text = !_text;
});
},
child: Container(
width: 169,
height: 23,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: Color(0xFFFF002B)),
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
_text ? text10400white('Regrouping') : text10400white('Join')
],
),
),
),
]);
}
}

View File

@@ -0,0 +1,313 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
class SelectBusinessCommunity extends StatefulWidget {
const SelectBusinessCommunity({super.key});
@override
State<SelectBusinessCommunity> createState() =>
_SelectBusinessCommunityState();
}
class _SelectBusinessCommunityState extends State<SelectBusinessCommunity> {
TextEditingController searchcontroller = TextEditingController();
// StreamController<BlogsModel> blogsController = StreamController();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()),
Positioned(top: 400, right: -30, child: CommonBlurRightSecond()),
Positioned(top: 630, left: -30, child: CommonBlurLeftBlue()),
SingleChildScrollView(
child: GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
),
),
),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 3 of 3')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 273.w,
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xFFD90B2E),
Color(0x60D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(30),
),
),
)
],
))
],
),
),
),
sizedBoxHeight(40.h),
Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
text20400white('Find your community'),
sizedBoxWidth(5.w),
Image.asset(
'assets/images/png/informationicon.png',
)
],
)),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 108.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
),
sizedBoxHeight(30.h),
SearchTextFormField(
textEditingController: searchcontroller,
texttype: TextInputType.text,
hintText: "Search groups",
isInputPassword: false,
suffixIcon:
// const Icon(Icons.mail_outline),
// SvgPicture.asset(
// // width: 23.w,
// // height: 23.h,
// 'assets/images/svg/search.svg',
// ),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Icon(
Icons.search,
size: 35,
color: Colors.white,
),
),
// validatorText: "Enter your full name",
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CommunitySelect(
titleString: 'Active alliance network ',
image: 'assets/images/png/community1.png'),
CommunitySelect(
titleString: 'Fitfam federation',
image: 'assets/images/png/community2.png'),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CommunitySelect(
titleString: 'The athletic town',
image:
'assets/images/png/groupindividual3.png'),
CommunitySelect(
titleString: 'Football Fever',
image: 'assets/images/png/community3.png'),
],
),
Spacer(flex: 1),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.communitycommitscreen);
})
],
),
)),
),
],
));
}
}
class CommunitySelect extends StatefulWidget {
final String titleString;
final String image;
CommunitySelect({
Key? key,
required this.titleString,
required this.image,
}) : super(key: key);
@override
State<CommunitySelect> createState() => _CommunitySelectState();
}
class _CommunitySelectState extends State<CommunitySelect> {
bool _text = false;
@override
Widget build(BuildContext context) {
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: 169,
height: 74,
decoration: ShapeDecoration(
image: DecorationImage(
image: AssetImage(
// "https://via.placeholder.com/169x74"
widget.image),
fit: BoxFit.fill,
),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
),
),
sizedBoxHeight(15.h),
text12400white(widget.titleString),
sizedBoxHeight(15.h),
GestureDetector(
onTap: () {
setState(() {
_text = !_text;
});
},
child: Container(
width: 169,
height: 23,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: Color(0xFFFF002B)),
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
_text ? text10400white('Regrouping') : text10400white('Join')
],
),
),
),
]);
}
}

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/CommonDropdown.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
@@ -9,6 +10,7 @@ import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/dialogs.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
class TellusaboutBusiness extends StatefulWidget {
@@ -127,7 +129,7 @@ class _TellusaboutBusinessState extends State<TellusaboutBusiness> {
// validatorText: "Enter your business owner name",
validator: (value) {
if (value!.isEmpty) {
return 'Enter your business owner name ';
return 'Enter your business owner name';
}
return null;
},
@@ -211,7 +213,7 @@ class _TellusaboutBusinessState extends State<TellusaboutBusiness> {
text: "Continue",
onPressed: () {
if (_selectedbusinesstype.isNotEmpty) {
// Get.toNamed(page)
Get.toNamed(RouteName.businessletusunderstandstep1);
// Get.to(() => BusinessPage());
} else {

View File

@@ -0,0 +1,271 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class SelectIndividualProfile extends StatefulWidget {
const SelectIndividualProfile({super.key});
@override
State<SelectIndividualProfile> createState() =>
_SelectIndividualProfileState();
}
class _SelectIndividualProfileState extends State<SelectIndividualProfile> {
ValueNotifier<int> selectedIndex = ValueNotifier(-1);
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()),
Positioned(top: 310, right: -30, child: CommonBlurRightSecond()),
Positioned(top: 540, left: -30, child: CommonBlurLeftBlue()),
GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
),
),
),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 1 of 4')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side:
BorderSide(width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
)
],
),
),
),
sizedBoxHeight(30.h),
Center(child: text20400white('Select your profile type')),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 154.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
),
sizedBoxHeight(30.h),
ProfileContainer(
titleString: "Athlete",
contentString:
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.",
image: 'assets/images/svg/runningindividual.svg',
selectedIndex: selectedIndex,
index: 0,
),
sizedBoxHeight(20.h),
ProfileContainer(
titleString: "Coach",
contentString:
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.",
image: 'assets/images/svg/coachindividual.svg',
selectedIndex: selectedIndex,
index: 1,
),
sizedBoxHeight(20.h),
ProfileContainer(
titleString: "Social",
contentString:
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.",
image: 'assets/images/svg/userindividual.svg',
selectedIndex: selectedIndex,
index: 2,
),
Spacer(flex: 1),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.individualactivitystep2);
})
],
),
)),
],
));
}
}
class ProfileContainer extends StatefulWidget {
final String titleString;
final String contentString;
final String image;
final ValueNotifier<int> selectedIndex;
final int index;
ProfileContainer({
Key? key,
required this.titleString,
required this.contentString,
required this.image,
required this.selectedIndex,
required this.index,
}) : super(key: key);
@override
State<ProfileContainer> createState() => _ProfileContainerState();
}
class _ProfileContainerState extends State<ProfileContainer> {
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
// Set the selected ValueNotifier to true when tapped
widget.selectedIndex.value = widget.index;
},
child: ValueListenableBuilder<int>(
valueListenable: widget.selectedIndex,
builder: (context, selectedIndex, child) {
bool isSelected = selectedIndex == widget.index;
return Container(
width: 358.w,
height: 100.h,
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: isSelected
? [
Color(0XFFD90B2E).withOpacity(0.80),
Color(0XFFD90B2E).withOpacity(0.77),
Color(0XFFD90B2E).withOpacity(0.66),
Color(0XFFD90B2E).withOpacity(0.18),
]
: [
Colors.white.withOpacity(0.06),
Colors.white.withOpacity(0.08)
],
),
border: Border.all(width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(10),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
SvgPicture.asset(widget.image),
sizedBoxWidth(10.w),
SizedBox(
width: 241.w,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
text16400white(widget.titleString),
sizedBoxHeight(3.h),
text12400white(widget.contentString)
],
),
),
],
),
),
);
},
),
);
}
}

View File

@@ -0,0 +1,310 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class SelectIndividualActivity extends StatefulWidget {
const SelectIndividualActivity({super.key});
@override
State<SelectIndividualActivity> createState() =>
_SelectIndividualActivityState();
}
class _SelectIndividualActivityState extends State<SelectIndividualActivity> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
Positioned(top: 220, left: -30, child: CommonBlurLeftSecond()),
Positioned(top: 450, right: -30, child: CommonBlurRightSecond()),
Positioned(top: 530, left: -30, child: CommonBlurLeftBlue()),
GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
),
),
),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 2 of 4')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side:
BorderSide(width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 87.w,
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xFFD90B2E),
Color(0x60D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(30),
),
),
)
],
))
],
),
),
),
sizedBoxHeight(40.h),
Center(
child:
text20400white('What is your main activity ?')),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 154.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
),
sizedBoxHeight(30.h),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ActivityContainer(
titleString: 'Kayaking',
image:
'assets/images/svg/individualact1.svg'),
ActivityContainer(
titleString: 'Cycling',
image:
'assets/images/svg/individualact2.svg'),
ActivityContainer(
titleString: 'Running',
image:
'assets/images/svg/individualact3.svg'),
],
),
sizedBoxHeight(20.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ActivityContainer(
titleString: 'Swimming',
image:
'assets/images/svg/individualact4.svg'),
ActivityContainer(
titleString: 'Triathlon',
image:
'assets/images/svg/individualact5.svg'),
ActivityContainer(
titleString: 'Hiking',
image:
'assets/images/svg/individualact6.svg'),
],
),
sizedBoxHeight(20.h),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ActivityContainer(
titleString: 'Football',
image:
'assets/images/svg/individualact7.svg'),
sizedBoxWidth(20.w),
ActivityContainer(
titleString: 'Rugby',
image:
'assets/images/svg/individualact8.svg'),
],
),
],
),
Spacer(flex: 1),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.individualgroupstep3);
})
],
),
)),
],
));
}
}
class ActivityContainer extends StatefulWidget {
final String titleString;
final String image;
ActivityContainer({
Key? key,
required this.titleString,
required this.image,
}) : super(key: key);
@override
State<ActivityContainer> createState() => _ActivityContainerState();
}
class _ActivityContainerState extends State<ActivityContainer> {
bool _colorcontainer = false;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
setState(() {
_colorcontainer = !_colorcontainer;
});
// Set the selected ValueNotifier to true when tapped
},
child: Container(
width: 110.w,
height: 106.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: _colorcontainer
? [
Color(0XFFD90B2E).withOpacity(0.80),
Color(0XFFD90B2E).withOpacity(0.77),
Color(0XFFD90B2E).withOpacity(0.66),
Color(0XFFD90B2E).withOpacity(0.18),
]
: [
Colors.white.withOpacity(0.05999999865889549),
Colors.white.withOpacity(0.07999999821186066)
]),
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(10),
),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SvgPicture.asset(
widget.image,
width: 50.w,
height: 50.h,
),
sizedBoxHeight(10.h),
SizedBox(
// width: 60,
// height: 16,
child: text14400white(widget.titleString)),
],
),
),
));
}
}

View File

@@ -0,0 +1,311 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
class SelectIndividualGroup extends StatefulWidget {
const SelectIndividualGroup({super.key});
@override
State<SelectIndividualGroup> createState() => _SelectIndividualGroupState();
}
class _SelectIndividualGroupState extends State<SelectIndividualGroup> {
TextEditingController searchcontroller = TextEditingController();
// StreamController<BlogsModel> blogsController = StreamController();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()),
Positioned(top: 400, right: -30, child: CommonBlurRightSecond()),
Positioned(top: 630, left: -30, child: CommonBlurLeftBlue()),
SingleChildScrollView(
child: GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
),
),
),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 3 of 4')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 178.w,
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xFFD90B2E),
Color(0x60D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(30),
),
),
)
],
))
],
),
),
),
sizedBoxHeight(40.h),
Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
text20400white('Find your group'),
sizedBoxWidth(5.w),
Image.asset('assets/images/png/informationicon.png')
],
)),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 108.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
),
sizedBoxHeight(30.h),
CustomTextFormField(
textEditingController: searchcontroller,
texttype: TextInputType.text,
hintText: "Search groups",
leadingIcon:
// const Icon(Icons.mail_outline),
// SvgPicture.asset(
// // width: 23.w,
// // height: 23.h,
// 'assets/images/svg/search.svg',
// ),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Icon(
Icons.search,
size: 35,
color: Colors.white,
),
),
// validatorText: "Enter your full name",
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
GroupSelect(
titleString: 'Cambridge university Boat ..',
image: 'assets/images/png/groupindividual.png'),
GroupSelect(
titleString: 'Liverpool FC',
image:
'assets/images/png/groupindividual2.png'),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
GroupSelect(
titleString: 'Cambridge rugby Club',
image:
'assets/images/png/groupindividual3.png'),
GroupSelect(
titleString: 'Cambridge university Boat ..',
image: 'assets/images/png/groupindividual.png'),
],
),
Spacer(flex: 1),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.individualcommunitystep4);
})
],
),
)),
),
],
));
}
}
class GroupSelect extends StatefulWidget {
final String titleString;
final String image;
GroupSelect({
Key? key,
required this.titleString,
required this.image,
}) : super(key: key);
@override
State<GroupSelect> createState() => _GroupSelectState();
}
class _GroupSelectState extends State<GroupSelect> {
bool _text = false;
@override
Widget build(BuildContext context) {
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: 169,
height: 74,
decoration: ShapeDecoration(
image: DecorationImage(
image: AssetImage(
// "https://via.placeholder.com/169x74"
widget.image),
fit: BoxFit.fill,
),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
),
),
sizedBoxHeight(15.h),
text12400white(widget.titleString),
sizedBoxHeight(15.h),
GestureDetector(
onTap: () {
setState(() {
_text = !_text;
});
},
child: Container(
width: 169,
height: 23,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: Color(0xFFFF002B)),
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
_text ? text10400white('Regrouping') : text10400white('Join')
],
),
),
),
]);
}
}

View File

@@ -0,0 +1,312 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/CustomTextformfield.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
class SelectIndividualCommunity extends StatefulWidget {
const SelectIndividualCommunity({super.key});
@override
State<SelectIndividualCommunity> createState() =>
_SelectIndividualCommunityState();
}
class _SelectIndividualCommunityState extends State<SelectIndividualCommunity> {
TextEditingController searchcontroller = TextEditingController();
// StreamController<BlogsModel> blogsController = StreamController();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
Positioned(top: 70, left: -30, child: CommonBlurLeftSecond()),
Positioned(top: 400, right: -30, child: CommonBlurRightSecond()),
Positioned(top: 630, left: -30, child: CommonBlurLeftBlue()),
SingleChildScrollView(
child: GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Align(
alignment: Alignment.topRight,
child: GestureDetector(
onTap: () {
Get.toNamed(RouteName.communitycommitscreen);
},
child: Text(
'Skip',
style: TextStyle(
color: Colors.white,
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
decoration: TextDecoration.underline,
decorationColor: Colors.white),
),
),
),
sizedBoxHeight(30.h),
Align(
alignment: Alignment.center,
child: text16400white('Step 4 of 4')),
sizedBoxHeight(20.h),
Container(
width: 358.w,
height: 25.h,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(30),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 8.w, vertical: 2.h),
child: Row(
children: [
Container(
width: 260.w,
height: 15.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xA5D90B2E),
Color(0x42D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: 15,
height: 15,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Color(0xFFD90B2E),
Color(0x60D90B2E)
],
),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(30),
),
),
)
],
))
],
),
),
),
sizedBoxHeight(40.h),
Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
text20400white('Find your community'),
sizedBoxWidth(5.w),
Image.asset(
'assets/images/png/informationicon.png',
)
],
)),
sizedBoxHeight(10.w),
Center(
child: Container(
width: 108.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign: BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
),
sizedBoxHeight(30.h),
CustomTextFormField(
textEditingController: searchcontroller,
texttype: TextInputType.text,
hintText: "Search community",
leadingIcon:
// const Icon(Icons.mail_outline),
// SvgPicture.asset(
// // width: 23.w,
// // height: 23.h,
// 'assets/images/svg/search.svg',
// ),
Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: Icon(
Icons.search,
size: 35,
color: Colors.white,
),
),
// validatorText: "Enter your full name",
inputFormatters: [
// LengthLimitingTextInputFormatter(20),
RemoveEmojiInputFormatter(),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CommunitySelect(
titleString: 'Active alliance network ',
image: 'assets/images/png/community1.png'),
CommunitySelect(
titleString: 'Fitfam federation',
image: 'assets/images/png/community2.png'),
],
),
sizedBoxHeight(30.h),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CommunitySelect(
titleString: 'The athletic town',
image:
'assets/images/png/groupindividual3.png'),
CommunitySelect(
titleString: 'Football Fever',
image: 'assets/images/png/community3.png'),
],
),
Spacer(flex: 1),
CustomButton(
text: "Continue",
onPressed: () {
Get.toNamed(RouteName.communitycommitscreen);
})
],
),
)),
),
],
));
}
}
class CommunitySelect extends StatefulWidget {
final String titleString;
final String image;
CommunitySelect({
Key? key,
required this.titleString,
required this.image,
}) : super(key: key);
@override
State<CommunitySelect> createState() => _CommunitySelectState();
}
class _CommunitySelectState extends State<CommunitySelect> {
bool _text = false;
@override
Widget build(BuildContext context) {
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Container(
width: 169,
height: 74,
decoration: ShapeDecoration(
image: DecorationImage(
image: AssetImage(
// "https://via.placeholder.com/169x74"
widget.image),
fit: BoxFit.fill,
),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
),
),
sizedBoxHeight(15.h),
text12400white(widget.titleString),
sizedBoxHeight(15.h),
GestureDetector(
onTap: () {
setState(() {
_text = !_text;
});
},
child: Container(
width: 169,
height: 23,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: Color(0xFFFF002B)),
borderRadius: BorderRadius.circular(30),
),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
_text ? text10400white('Regrouping') : text10400white('Join')
],
),
),
),
]);
}
}

View File

@@ -15,6 +15,7 @@ import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/dialogs.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
class TellusaboutIndividual extends StatefulWidget {
@@ -407,7 +408,7 @@ class _TellusaboutIndividualState extends State<TellusaboutIndividual> {
text: "Continue",
onPressed: () {
if (_selectedgendertype.isNotEmpty) {
// Get.toNamed(page)
Get.toNamed(RouteName.individualprofilestep1);
// Get.to(() => BusinessPage());
} else {

View File

@@ -0,0 +1,153 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class Communitycommitment extends StatefulWidget {
const Communitycommitment({super.key});
@override
State<Communitycommitment> createState() => _CommunitycommitmentState();
}
class _CommunitycommitmentState extends State<Communitycommitment> {
final ScrollController _scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
// Positioned(top: 220, left: -30, child: CommonBlurLeftSecond()),
Positioned(top: 230, right: -30, child: CommonBlurRightSecond()),
// Positioned(top: 530, left: -30, child: CommonBlurLeftBlue()),
GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: Padding(
padding:
EdgeInsets.symmetric(horizontal: 16.w, vertical: 50.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// SvgPicture.asset('assets/images/svg/redregroupicon.svg'),
Image.asset('assets/images/png/redregroup.png'),
sizedBoxHeight(30.h),
Container(
width: 358.w,
height: 519.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Colors.white.withOpacity(0.05999999865889549),
Colors.white.withOpacity(0.07999999821186066)
],
),
shape: RoundedRectangleBorder(
side: BorderSide(
width: 0.80, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(5),
),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 16.w, vertical: 0.h),
child: Scrollbar(
thumbVisibility: true,
radius: Radius.circular(20.r),
// thickness: 6,
controller: _scrollController,
child: SingleChildScrollView(
controller: _scrollController,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
sizedBoxHeight(10.h),
text16400white('Our community commitment'),
sizedBoxHeight(10.h),
Container(
width: 222.w,
decoration: ShapeDecoration(
shape: RoundedRectangleBorder(
side: BorderSide(
width: 1,
strokeAlign:
BorderSide.strokeAlignCenter,
color: Color(0xFF858585),
),
),
),
),
sizedBoxHeight(20.h),
text20400white(
'Regroup is a community where everyone ca belong'),
sizedBoxHeight(15.h),
text16400white(
'''Lorem ipsum dolor sit amet, consectetur adipis elit. Ut et massa mi. Aliquam in hendrerit urna.\n\nPellentesque sit amet sapien fringilla, mattis ligula consectetur, ultrices mauris. Maecenas vitae mattis tellus. Nullam quis imperdiet augue. Vestibulum auctor ornare leo, non suscipit magna interdum eu. Curabitur pellentesque nibh nibh, at maximus ante fermentum sit amet. Pellentesque commodo lacus at sodales sodales. Quisque sagittis orci ut diam condimentum, vel euismod erat placerat. In iaculis arcu eros, Quisque sagittis orci ut diam condimentum, vel euismod erat placerat. In iaculis arcu eros, Quisque sagittis orci ut diam condimentum, vel euismod erat placerat. '''),
sizedBoxHeight(10.h),
],
),
),
),
),
),
Spacer(
flex: 2,
),
CustomButton(
text: 'Agree & continue',
onPressed: () {
Get.toNamed(RouteName.signupendpage);
}),
sizedBoxHeight(20.h),
CustomButton2(
text: 'Decline',
onPressed: () {
Get.offAllNamed(RouteName.loginScreen);
})
],
),
)),
],
));
}
}

View File

@@ -0,0 +1,117 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart';
import 'package:regroup/Utils/Common/CustomNextButton.dart';
import 'package:regroup/Utils/Common/blureffect.dart';
import 'package:regroup/Utils/Common/sized_box.dart';
import 'package:regroup/Utils/texts.dart';
import 'package:regroup/resources/routes/route_name.dart';
class SignupendPage extends StatefulWidget {
const SignupendPage({super.key});
@override
State<SignupendPage> createState() => _SignupendPageState();
}
class _SignupendPageState extends State<SignupendPage> {
final ScrollController _scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color.fromARGB(255, 18, 32, 47),
body: Stack(
children: [
Positioned(top: 100, left: -30, child: CommonBlurLeftSecond()),
Positioned(top: 300, right: -30, child: CommonBlurRightSecond()),
Positioned(top: 530, left: -30, child: CommonBlurLeftBlue()),
Positioned(top: 750, right: 40, child: CommonBlurRightSecond()),
GlassmorphicContainer(
width: MediaQuery.of(context).size.width,
height:
// 500.h,
MediaQuery.of(context).size.height,
borderRadius: 2,
blur: 10,
alignment: Alignment.bottomLeft,
border: 2,
linearGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
],
),
borderGradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
// Color.fromARGB(255, 18, 32, 47).withOpacity(0.50),
Color(0XFF222935).withOpacity(0.60),
Color(0XFF222935).withOpacity(0.60),
],
),
child: Center(
child: Container(
width: 358.w,
height: 519.h,
decoration: ShapeDecoration(
gradient: LinearGradient(
begin: Alignment(0.98, -0.21),
end: Alignment(-0.98, 0.21),
colors: [
Colors.white.withOpacity(0.05999999865889549),
Colors.white.withOpacity(0.07999999821186066)
],
),
shape: RoundedRectangleBorder(
side:
BorderSide(width: 0.80, color: Color(0xFF434A53)),
borderRadius: BorderRadius.circular(5),
),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 30.h),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
'assets/images/png/regroupredtexticon.png'),
sizedBoxHeight(30.h),
text25700white('Welcome Edward '),
sizedBoxHeight(20.h),
// text16400white(
// '''Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.'''),
Text(
'''Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.''',
textAlign: TextAlign.center,
style: TextStyle(
color: Color(0xCCFCFCFC),
fontSize: 16.sp,
fontFamily: 'Helvetica',
fontWeight: FontWeight.w400,
),
),
sizedBoxHeight(20.h),
CustomButton(
text: 'Start your journey', onPressed: () {})
],
),
)),
)),
],
));
}
}

View File

@@ -9,6 +9,20 @@ class RouteName {
static const String tellusindividualscreen = '/tellusindividualscreen';
static const String tellusbusinessscreen = '/tellusbusinessscreen';
static const String individualprofilestep1 = '/individualprofilestep1';
static const String individualactivitystep2 = '/individualactivitystep2';
static const String individualgroupstep3 = '/individualgroupstep3';
static const String individualcommunitystep4 = '/individualcommunitystep4';
static const String communitycommitscreen = '/communitycommitscreen';
static const String signupendpage = '/signupendpage';
static const String businessletusunderstandstep1 = '/businessletusunderstand';
static const String businessSelectgroupstep2 = '/businessselectgroup';
static const String businessSelectcommunitystep3 = '/businessselectcommunity';
static const String communityScreen = '/communityScreen';
static const String mainscreen = '/mainscreen';
static const String sidemenu = '/sidemenu';

View File

@@ -16,8 +16,17 @@ import 'package:regroup/Feed%20Module/sidemenu/SavedPosts/SavedPosts.dart';
import 'package:regroup/Feed%20Module/sidemenu/sidemenu.dart';
import 'package:regroup/Utils/Common/NoInternet.dart';
import 'package:regroup/onboarding/Signup/View/Business/step1Letusunderstandbetter.dart';
import 'package:regroup/onboarding/Signup/View/Business/step2Selectgroup.dart';
import 'package:regroup/onboarding/Signup/View/Business/step3SelectCommunity.dart';
import 'package:regroup/onboarding/Signup/View/Business/tellusbusiness.dart';
import 'package:regroup/onboarding/Signup/View/Individual/step1Selectprofile.dart';
import 'package:regroup/onboarding/Signup/View/Individual/step2Selectactivity.dart';
import 'package:regroup/onboarding/Signup/View/Individual/step3Selectyourgroup.dart';
import 'package:regroup/onboarding/Signup/View/Individual/step4Selectyourcommunity.dart';
import 'package:regroup/onboarding/Signup/View/Individual/tellusindividual.dart';
import 'package:regroup/onboarding/Signup/View/communitycommitment.dart';
import 'package:regroup/onboarding/Signup/View/signupendpage.dart';
import 'package:regroup/onboarding/Signup/View/signupscreen.dart';
import 'package:regroup/onboarding/Signup/View/verifyuser.dart';
import 'package:regroup/onboarding/onboarding1.dart';
@@ -109,6 +118,46 @@ class AppRoutes {
name: RouteName.group,
page: () => const Group(),
),
GetPage(
name: RouteName.individualprofilestep1,
page: () => const SelectIndividualProfile(),
),
GetPage(
name: RouteName.individualactivitystep2,
page: () => const SelectIndividualActivity(),
),
GetPage(
name: RouteName.individualgroupstep3,
page: () => const SelectIndividualGroup(),
),
GetPage(
name: RouteName.individualcommunitystep4,
page: () => const SelectIndividualCommunity(),
),
GetPage(
name: RouteName.communitycommitscreen,
page: () => const Communitycommitment(),
),
GetPage(
name: RouteName.signupendpage,
page: () => const SignupendPage(),
),
GetPage(
name: RouteName.businessletusunderstandstep1,
page: () => const LetusUnderstand(),
),
GetPage(
name: RouteName.businessSelectgroupstep2,
page: () => const SelectgroupStep2(),
),
GetPage(
name: RouteName.businessSelectcommunitystep3,
page: () => const SelectBusinessCommunity(),
),
];
}