Compare commits
65 Commits
notificati
...
137945e7d2
| Author | SHA1 | Date | |
|---|---|---|---|
| 137945e7d2 | |||
|
|
f8246d33ed | ||
|
|
f9fca85bf5 | ||
|
|
5cb32f1152 | ||
|
|
bb3eec2081 | ||
|
|
c108aa7ddd | ||
|
|
b547f96ec6 | ||
|
|
636f79fb60 | ||
|
|
7a33e1f2c0 | ||
|
|
7c47c2ce24 | ||
|
|
e6e84a058c | ||
|
|
1198c9b694 | ||
|
|
86b93fef5f | ||
|
|
6fbd5ece0d | ||
|
|
9b9f2ed42e | ||
| bfeddd6bc7 | |||
|
|
1b2b26f0a8 | ||
|
|
e8bbcaf3de | ||
|
|
c780c1d0c1 | ||
|
|
411bac3326 | ||
|
|
9a1178fde0 | ||
|
|
0933f2a8b5 | ||
|
|
43927bdfce | ||
|
|
babc4418fc | ||
|
|
b5da7fc62e | ||
|
|
807f765d2e | ||
|
|
484d8e9b85 | ||
|
|
e88504478a | ||
|
|
e18c08d91f | ||
| f29fd7f32d | |||
|
|
7f067b1199 | ||
|
|
438ab33cea | ||
| e70bd44641 | |||
|
|
97c308b322 | ||
|
|
8a5ab90f26 | ||
|
|
db8fd0f98b | ||
|
|
c07b9897c8 | ||
|
|
dd31e51f60 | ||
|
|
20cd71fce6 | ||
|
|
16b2a08928 | ||
|
|
e466d52492 | ||
|
|
2f5c07b748 | ||
| abf29d2441 | |||
|
|
41ce3aadbb | ||
|
|
25f3fb0611 | ||
|
|
64e50b3899 | ||
|
|
6abe30934a | ||
|
|
28f7862c1d | ||
| 483b4a23d8 | |||
|
|
18f4163f34 | ||
|
|
2c8f8ee901 | ||
|
|
a6bbf734e9 | ||
| a0fe7caa34 | |||
|
|
b7a54aa2d9 | ||
|
|
fbb3f2ee23 | ||
| d73570e7bc | |||
|
|
d977a7c679 | ||
|
|
0b4479c3f5 | ||
| 62fbca723e | |||
|
|
d09b09c830 | ||
|
|
f275512fa6 | ||
|
|
55ab81365a | ||
|
|
2ac83c5c37 | ||
|
|
c9cad0fba7 | ||
| 7960707396 |
3
.vscode/settings.json
vendored
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"CodeGPT.apiKey": "CodeGPT Plus Beta"
|
||||
"CodeGPT.apiKey": "CodeGPT Plus Beta",
|
||||
"dart.flutterSdkPath": "D:\\pooja\\fluttersdk\\flutter_3.16.9\\flutter"
|
||||
}
|
||||
@@ -8,7 +8,7 @@ if (localPropertiesFile.exists()) {
|
||||
|
||||
def flutterRoot = localProperties.getProperty('flutter.sdk')
|
||||
if (flutterRoot == null) {
|
||||
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
|
||||
throw GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
|
||||
}
|
||||
|
||||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
||||
@@ -68,4 +68,6 @@ flutter {
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
implementation 'com.facebook.android:facebook-login:latest.release'
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.example.regroup">
|
||||
package="com.example.regroup"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
|
||||
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission
|
||||
android:name="android.permission.USE_BIOMETRIC"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
@@ -43,5 +50,25 @@
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
<meta-data android:name="com.google.android.geo.API_KEY"
|
||||
android:value="AIzaSyDdTfKwZav5Qyg3ht88N76lDTFntOe30dQ"/>
|
||||
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
|
||||
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
|
||||
|
||||
<activity android:name="com.facebook.FacebookActivity"
|
||||
android:configChanges=
|
||||
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
|
||||
android:label="@string/app_name" />
|
||||
<activity
|
||||
android:name="com.facebook.CustomTabActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="@string/fb_login_protocol_scheme" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
||||
7
android/app/src/main/res/values/strings.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">ReGroup123</string>
|
||||
<string name="facebook_app_id">8076081959097016</string>
|
||||
<string name="fb_login_protocol_scheme">fb8076081959097016</string>
|
||||
<string name="facebook_client_token">ca5a1805872edbec0d3a0a0b02229ba5</string>
|
||||
</resources>
|
||||
@@ -1,5 +1,5 @@
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.7.10'
|
||||
ext.kotlin_version = '1.9.22'
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
|
||||
BIN
assets/images/png/Black13.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
assets/images/png/Black1323e.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
assets/images/png/BlackPass.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/images/png/BottomBar/activePeople.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
3
assets/images/png/BottomBar/groupBottomBarIcon.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="27" height="27" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19.191 17.4611C19.7172 17.1017 20.3345 16.8987 20.9713 16.8755C21.6082 16.8523 22.2386 17.0099 22.7896 17.33C23.3407 17.6501 23.7898 18.1197 24.0851 18.6844C24.3804 19.2491 24.5097 19.8859 24.4582 20.5211C23.1084 20.9929 21.6747 21.1764 20.2496 21.06C20.2452 19.7849 19.878 18.5364 19.191 17.4622C18.5811 16.5058 17.7398 15.7185 16.745 15.1734C15.7502 14.6283 14.634 14.343 13.4996 14.3437C12.3654 14.3432 11.2494 14.6286 10.2548 15.1737C9.26017 15.7188 8.41909 16.5059 7.80934 17.4622M20.2485 21.0589L20.2496 21.0937C20.2496 21.3469 20.2361 21.5966 20.208 21.843C18.1665 23.0143 15.8532 23.6288 13.4996 23.625C11.0583 23.625 8.76671 22.977 6.79121 21.843C6.76229 21.5826 6.74839 21.3208 6.74959 21.0589M6.74959 21.0589C5.32492 21.1795 3.89198 20.9966 2.54321 20.5222C2.49186 19.8872 2.62128 19.2507 2.91652 18.6861C3.21176 18.1216 3.66075 17.6521 4.21159 17.3321C4.76243 17.012 5.39261 16.8544 6.02927 16.8774C6.66593 16.9004 7.28307 17.1032 7.80934 17.4622M6.74959 21.0589C6.75363 19.7839 7.12266 18.5365 7.80934 17.4622M16.8746 7.59375C16.8746 8.48886 16.519 9.3473 15.8861 9.98024C15.2531 10.6132 14.3947 10.9687 13.4996 10.9687C12.6045 10.9687 11.746 10.6132 11.1131 9.98024C10.4802 9.3473 10.1246 8.48886 10.1246 7.59375C10.1246 6.69864 10.4802 5.8402 11.1131 5.20726C11.746 4.57433 12.6045 4.21875 13.4996 4.21875C14.3947 4.21875 15.2531 4.57433 15.8861 5.20726C16.519 5.8402 16.8746 6.69864 16.8746 7.59375ZM23.6246 10.9687C23.6246 11.3012 23.5591 11.6303 23.4319 11.9374C23.3047 12.2445 23.1182 12.5236 22.8832 12.7586C22.6482 12.9937 22.3691 13.1801 22.062 13.3073C21.7549 13.4345 21.4257 13.5 21.0933 13.5C20.7609 13.5 20.4318 13.4345 20.1247 13.3073C19.8176 13.1801 19.5385 12.9937 19.3035 12.7586C19.0684 12.5236 18.882 12.2445 18.7548 11.9374C18.6276 11.6303 18.5621 11.3012 18.5621 10.9687C18.5621 10.2974 18.8288 9.65359 19.3035 9.17889C19.7782 8.70418 20.422 8.4375 21.0933 8.4375C21.7647 8.4375 22.4085 8.70418 22.8832 9.17889C23.3579 9.65359 23.6246 10.2974 23.6246 10.9687ZM8.43709 10.9687C8.43709 11.3012 8.37161 11.6303 8.24441 11.9374C8.1172 12.2445 7.93075 12.5236 7.6957 12.7586C7.46065 12.9937 7.18161 13.1801 6.8745 13.3073C6.5674 13.4345 6.23825 13.5 5.90584 13.5C5.57343 13.5 5.24427 13.4345 4.93717 13.3073C4.63006 13.1801 4.35102 12.9937 4.11597 12.7586C3.88092 12.5236 3.69447 12.2445 3.56727 11.9374C3.44006 11.6303 3.37459 11.3012 3.37459 10.9687C3.37459 10.2974 3.64127 9.65359 4.11597 9.17889C4.59067 8.70418 5.23451 8.4375 5.90584 8.4375C6.57717 8.4375 7.221 8.70418 7.6957 9.17889C8.1704 9.65359 8.43709 10.2974 8.43709 10.9687Z" stroke="#FCFCFC" stroke-opacity="0.5" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
BIN
assets/images/png/Choice screen.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
assets/images/png/Ellipse 1496.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
assets/images/png/Frame 1.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/images/png/Frame 1000004056.png
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
assets/images/png/Frame 1000004088.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
assets/images/png/Frame 12 (1).png
Normal file
|
After Width: | Height: | Size: 912 B |
BIN
assets/images/png/Frame 12.png
Normal file
|
After Width: | Height: | Size: 912 B |
BIN
assets/images/png/Frame 24.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/png/Group 1000004181.png
Normal file
|
After Width: | Height: | Size: 3.8 MiB |
BIN
assets/images/png/Group 58613.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/images/png/Group12.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
assets/images/png/HomeScreenBackground.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
assets/images/png/Recta12.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
assets/images/png/Rectangle 29ss.png
Normal file
|
After Width: | Height: | Size: 234 KiB |
BIN
assets/images/png/Rectangle 30aa.png
Normal file
|
After Width: | Height: | Size: 305 KiB |
BIN
assets/images/png/Rectangle 31ee.png
Normal file
|
After Width: | Height: | Size: 287 KiB |
BIN
assets/images/png/Vector (5)1.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
assets/images/png/Vector (5)aa.png
Normal file
|
After Width: | Height: | Size: 639 B |
BIN
assets/images/png/Vector (6).png
Normal file
|
After Width: | Height: | Size: 671 B |
BIN
assets/images/png/Vector ws.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/images/png/Vector1a.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/png/Vector2a.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
assets/images/png/VectorDevice.png
Normal file
|
After Width: | Height: | Size: 645 B |
BIN
assets/images/png/Vectorftt.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
assets/images/png/arrow.png
Normal file
|
After Width: | Height: | Size: 498 B |
BIN
assets/images/png/blocked.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/images/png/codicon_account.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
assets/images/png/codicon_bug.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
assets/images/png/deleteIcon (2).png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/images/png/demoimg.png
Normal file
|
After Width: | Height: | Size: 13 MiB |
BIN
assets/images/png/eyeIcon.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/images/png/file 1.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
assets/images/png/fluent_chat-20-.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/images/png/fluent_chat-20-22.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/images/png/fluent_chat-20-regular.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/images/png/fluent_person-support-20-regular.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
assets/images/png/group11.png
Normal file
|
After Width: | Height: | Size: 6.8 MiB |
BIN
assets/images/png/group111.png
Normal file
|
After Width: | Height: | Size: 8.3 MiB |
BIN
assets/images/png/iconoir_privacy-policy.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
assets/images/png/image 17.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
assets/images/png/image 18.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
assets/images/png/image 20.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
assets/images/png/octicon_question-24.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/images/png/ph_users-light.png
Normal file
|
After Width: | Height: | Size: 934 B |
BIN
assets/images/png/profileimg.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
3
assets/images/png/unactiveHomeBottomBar.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="19" height="20" viewBox="0 0 19 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.2475 0.985142C8.59165 0.675934 9.03797 0.504883 9.50062 0.504883C9.96328 0.504883 10.4096 0.675934 10.7537 0.985142L17.6287 7.16264C17.8242 7.33842 17.9805 7.55335 18.0876 7.79346C18.1946 8.03357 18.2499 8.29351 18.25 8.55639V17.3751C18.25 17.8724 18.0525 18.3493 17.7008 18.701C17.3492 19.0526 16.8723 19.2501 16.375 19.2501H13.25C12.7527 19.2501 12.2758 19.0526 11.9242 18.701C11.5725 18.3493 11.375 17.8724 11.375 17.3751V13.0001C11.375 12.8344 11.3092 12.6754 11.1919 12.5582C11.0747 12.441 10.9158 12.3751 10.75 12.3751H8.25C8.08424 12.3751 7.92527 12.441 7.80806 12.5582C7.69085 12.6754 7.625 12.8344 7.625 13.0001V17.3751C7.625 17.8724 7.42746 18.3493 7.07583 18.701C6.72419 19.0526 6.24728 19.2501 5.75 19.2501H2.625C2.12772 19.2501 1.65081 19.0526 1.29917 18.701C0.947544 18.3493 0.75 17.8724 0.75 17.3751V8.55639C0.75 8.02514 0.975 7.51889 1.3725 7.16264L8.2475 0.985142ZM9.9175 1.91514C9.80281 1.81219 9.65412 1.75524 9.5 1.75524C9.34588 1.75524 9.19719 1.81219 9.0825 1.91514L2.2075 8.09264C2.14237 8.1511 2.09025 8.22259 2.0545 8.30248C2.01876 8.38237 2.00019 8.46887 2 8.55639V17.3751C2 17.5409 2.06585 17.6999 2.18306 17.8171C2.30027 17.9343 2.45924 18.0001 2.625 18.0001H5.75C5.91576 18.0001 6.07473 17.9343 6.19194 17.8171C6.30915 17.6999 6.375 17.5409 6.375 17.3751V13.0001C6.375 12.5029 6.57254 12.0259 6.92417 11.6743C7.27581 11.3227 7.75272 11.1251 8.25 11.1251H10.75C11.2473 11.1251 11.7242 11.3227 12.0758 11.6743C12.4275 12.0259 12.625 12.5029 12.625 13.0001V17.3751C12.625 17.5409 12.6908 17.6999 12.8081 17.8171C12.9253 17.9343 13.0842 18.0001 13.25 18.0001H16.375C16.5408 18.0001 16.6997 17.9343 16.8169 17.8171C16.9342 17.6999 17 17.5409 17 17.3751V8.55639C16.9998 8.46887 16.9812 8.38237 16.9455 8.30248C16.9098 8.22259 16.8576 8.1511 16.7925 8.09264L9.9175 1.91514Z" fill="#FCFCFC" fill-opacity="0.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
5
assets/images/svg/badminton.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="46" height="46" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M31.5339 0.0352745C29.6446 0.377148 28.646 0.701031 27.3685 1.34879C26.3518 1.8706 25.3172 2.59034 24.5255 3.32807C24.0307 3.7869 23.9767 3.86787 23.9767 4.19175C23.9767 4.47964 24.0307 4.5966 24.2106 4.74055C24.6425 5.08242 24.8854 4.99246 25.794 4.17376C27.9173 2.23947 31.1831 1.15986 34.098 1.42076C36.9679 1.67268 39.2531 2.74328 41.2504 4.74055C43.4905 6.98973 44.5791 9.61676 44.5791 12.7566C44.5791 15.2937 43.8324 17.5788 42.339 19.5671C41.6192 20.5388 38.0475 24.0295 37.2288 24.5693C35.1686 25.9278 32.7485 26.6115 30.3644 26.4946C29.0778 26.4316 28.2771 26.2697 26.5498 25.7119C23.8867 24.8482 22.1144 23.4537 21.0618 21.4024C20.6209 20.5388 19.9372 18.5235 19.6853 17.3449C19.4604 16.2743 19.4604 13.9892 19.6853 12.9366C20.1351 10.8493 21.0258 9.07696 22.4023 7.53852C22.8611 7.02571 22.9871 6.82779 22.9871 6.60287C22.9871 6.22501 22.7801 5.94611 22.4563 5.87413C22.0874 5.79316 21.8445 5.94611 21.2327 6.63885C19.7752 8.28525 18.7766 10.2735 18.2998 12.4867C18.1288 13.2784 18.0929 13.7103 18.0929 15.0958C18.0929 17.0301 18.1918 17.6778 18.8036 19.5581L19.1905 20.7817L18.0659 23.1748L16.9503 25.5769L15.3399 27.1963C14.4582 28.087 13.7115 28.9057 13.6755 29.0227C13.5405 29.4725 13.9454 29.9403 14.4582 29.9403C14.5841 29.9403 15.1329 29.4635 16.0776 28.5278L17.4991 27.1064L18.2008 27.8081L18.8936 28.5008L15.4478 31.9376L12.0111 35.3833L11.3183 34.6906L10.6256 33.9888L11.7682 32.8373C12.7938 31.8026 12.9107 31.6497 12.9107 31.3618C12.9107 30.9569 12.6049 30.6601 12.191 30.6601C11.9301 30.6601 11.7502 30.795 10.6976 31.8476L9.501 33.0352L8.9612 33.0082C8.57434 32.9902 8.34042 33.0352 8.07952 33.1701C7.89059 33.2691 6.15423 34.9335 4.12097 36.9757C-0.134471 41.2402 0.000480044 41.0512 0.000480044 42.6707C0.000480044 43.5793 0.0184735 43.6963 0.252388 44.1371C0.612256 44.8119 1.12507 45.3427 1.77283 45.6935C2.32163 45.9904 2.37561 45.9994 3.32926 45.9994C4.94867 45.9994 4.75074 46.1434 9.06916 41.834C13.0457 37.8574 13.0637 37.8394 12.9827 36.9667L12.9377 36.5259L16.6804 32.7833L20.423 29.0496L22.8161 27.9251L25.2182 26.8005L26.3158 27.1603C28.2681 27.7991 28.9249 27.9071 30.8592 27.9071C32.2807 27.9071 32.7215 27.8711 33.4412 27.7091C35.1956 27.3223 36.5901 26.7375 38.0295 25.7838C38.6593 25.37 39.3791 24.7222 40.9175 23.2018C43.2746 20.8716 43.9224 20.0709 44.6691 18.5595C45.6408 16.5982 45.9197 15.4376 45.9916 13.1885C46.0546 11.2902 45.9197 10.2825 45.3888 8.6991C44.7861 6.87277 43.8774 5.35233 42.5729 3.97583C40.7376 2.03254 38.5694 0.80899 35.8973 0.206211C35.2856 0.0622635 32.0557 -0.0636902 31.5339 0.0352745ZM20.396 23.1208C20.8908 23.8585 22.0694 25.0281 22.8251 25.5319C23.158 25.7569 23.4369 25.9548 23.4369 25.9818C23.4369 26.0088 22.6902 26.3776 21.7815 26.8005L20.1261 27.5742L19.2714 26.7105L18.4167 25.8468L19.1905 24.2004C19.6133 23.3008 19.9732 22.563 19.9912 22.563C20.0002 22.563 20.1801 22.8149 20.396 23.1208ZM10.2747 35.7162C10.9855 36.4269 11.5612 37.0567 11.5612 37.1377C11.5612 37.2097 11.3093 37.5245 11.0034 37.8304L10.4367 38.3972L9.02417 36.9847L7.60269 35.5633L8.16049 35.0055C8.46638 34.6906 8.78126 34.4387 8.86223 34.4387C8.93421 34.4387 9.57297 35.0145 10.2747 35.7162ZM8.77227 40.0616L8.1425 40.6914L6.73001 39.2789L5.30854 37.8574L5.9383 37.2276L6.56807 36.5979L7.98056 38.0104L9.40204 39.4318L8.77227 40.0616ZM5.71339 40.3315L7.10788 41.726L5.84834 42.9855C4.47184 44.371 4.11197 44.6049 3.39224 44.6049C2.58253 44.6049 1.92577 44.2091 1.56591 43.5073C1.35898 43.0935 1.34099 42.3018 1.52992 41.843C1.65587 41.5551 4.12097 38.937 4.27391 38.937C4.3009 38.937 4.94867 39.5668 5.71339 40.3315Z" fill="white"/>
|
||||
<path d="M31.5613 3.53503C30.2028 3.77794 28.7274 4.40771 27.6658 5.19942C26.8561 5.8112 23.5453 9.16697 23.0774 9.86871C20.5494 13.6563 21.0712 18.7125 24.319 21.8613C25.1467 22.662 25.9024 23.1838 26.892 23.6427C29.879 25.0371 33.4057 24.7493 36.1676 22.8959C36.9144 22.3921 40.3511 18.9734 40.8819 18.1997C44.1927 13.4044 42.5733 6.93578 37.4272 4.37172C35.7178 3.51704 33.4416 3.19316 31.5613 3.53503ZM33.3337 5.51431L32.6679 6.18906L32.1011 5.63126C31.7952 5.32537 31.5613 5.05547 31.5793 5.03748C31.6783 4.93851 32.353 4.85755 33.1538 4.84855L33.9994 4.83955L33.3337 5.51431ZM37.0223 5.7932C37.2473 5.91916 37.6251 6.16207 37.868 6.333L38.3089 6.65689L37.0133 7.95241L35.7178 9.24794L34.7102 8.2403L33.6936 7.22368L34.7012 6.21605L35.6998 5.21741L36.1586 5.39735C36.4106 5.49631 36.7974 5.67624 37.0223 5.7932ZM30.7966 6.39598L31.6243 7.22368L30.2928 8.55519L28.9703 9.87771L27.9537 8.86108L26.937 7.84445L27.6388 7.1697C28.0256 6.80083 28.4755 6.39598 28.6464 6.27902C28.9613 6.0631 29.834 5.55929 29.9149 5.55929C29.9419 5.55929 30.3378 5.93715 30.7966 6.39598ZM39.8833 8.46522C40.1082 8.81609 40.4051 9.36489 40.54 9.68877L40.792 10.2826L39.7843 11.2992L38.7767 12.3068L37.7691 11.2992L36.7524 10.2826L38.03 9.00502C38.7317 8.30328 39.3435 7.75448 39.3885 7.78147C39.4334 7.80846 39.6584 8.11435 39.8833 8.46522ZM33.3607 11.6051L32.0292 12.9366L31.0215 11.929L30.0049 10.9123L31.3274 9.58981L32.6589 8.2583L33.6666 9.26593L34.6832 10.2826L33.3607 11.6051ZM26.6311 12.2168L25.3266 13.5214L24.4719 12.6667L23.6172 11.821L23.9051 11.3172C24.274 10.6514 24.6069 10.2196 25.3176 9.49085L25.9114 8.88807L26.919 9.8957L27.9357 10.9123L26.6311 12.2168ZM36.4196 14.664L35.088 15.9955L34.0804 14.9878L33.0638 13.9712L34.3863 12.6487L35.7178 11.3172L36.7254 12.3248L37.7421 13.3414L36.4196 14.664ZM29.69 15.2757L28.3855 16.5802L27.3779 15.5636L26.3612 14.556L27.6658 13.2515L28.9703 11.9469L29.9779 12.9546L30.9945 13.9712L29.69 15.2757ZM41.1338 13.0895C41.0619 14.601 41.0709 14.592 40.3871 13.9172L39.8113 13.3504L40.4591 12.6937C40.8189 12.3338 41.1248 12.0369 41.1518 12.0369C41.1698 12.0369 41.1608 12.5137 41.1338 13.0895ZM23.6622 15.1858C23.3204 15.5276 23.0055 15.8155 22.9695 15.8155C22.8615 15.8155 22.8795 14.8439 22.9965 14.0522L23.1044 13.3684L23.6982 13.9622L24.292 14.556L23.6622 15.1858ZM40.1712 16.5982C39.7843 17.291 39.4514 17.7138 38.7407 18.4516L38.1469 19.0543L37.1393 18.0467L36.1227 17.0301L37.4452 15.7076L38.7767 14.3761L39.6224 15.2217L40.4681 16.0674L40.1712 16.5982ZM32.7489 18.3346L31.4444 19.6391L30.4367 18.6225L29.4201 17.6149L30.7246 16.3103L32.0292 15.0058L33.0368 16.0135L34.0534 17.0301L32.7489 18.3346ZM26.3612 16.6252L27.3509 17.6149L26.0554 18.9104L24.7598 20.2149L24.4629 19.8281C24.0941 19.3422 23.5813 18.4066 23.4373 17.9388L23.3294 17.5969L24.301 16.6162C24.8408 16.0764 25.2996 15.6356 25.3266 15.6356C25.3536 15.6356 25.8214 16.0854 26.3612 16.6252ZM36.4196 20.7727C36.0327 21.1416 35.3759 21.6634 34.9531 21.9153L34.1884 22.3831L33.3337 21.5284L32.479 20.6737L33.7835 19.3692L35.088 18.0647L36.1047 19.0813L37.1213 20.089L36.4196 20.7727ZM29.4201 19.6841L30.4098 20.6737L29.4021 21.6814L28.4035 22.68L27.8367 22.4731C27.5218 22.3561 26.928 22.0323 26.5232 21.7624L25.7765 21.2675L27.054 19.981C27.7647 19.2703 28.3585 18.6945 28.3855 18.6945C28.4125 18.6945 28.8803 19.1443 29.4201 19.6841ZM32.0651 22.3291L32.6319 22.8959L32.2811 22.9589C31.6423 23.0579 30.4727 23.1298 30.3108 23.0669C30.1758 23.0129 30.2568 22.9049 30.7696 22.3831C31.1115 22.0323 31.4174 21.7534 31.4444 21.7534C31.4714 21.7534 31.7503 22.0143 32.0651 22.3291Z" fill="white"/>
|
||||
<path d="M33.0001 28.7798C32.3793 29.0227 31.6146 29.7245 31.3267 30.3183C31.2008 30.5792 30.4451 32.5674 29.6443 34.7446C28.5108 37.8395 28.1329 38.7752 27.89 39.0631C26.0547 41.3032 27.0083 44.668 29.7253 45.5047C31.0388 45.9185 32.6223 45.6037 33.5849 44.749C33.8548 44.5151 34.7005 44.1732 38.0113 42.9496C40.2605 42.1309 42.2397 41.3842 42.4017 41.3032C43.5532 40.7184 44.291 39.207 44.0481 37.9025C43.9941 37.6146 43.8591 37.1917 43.7512 36.9668C43.4813 36.391 42.7076 35.6623 42.1768 35.4644C41.9428 35.3834 41.7179 35.2844 41.6729 35.2485C41.637 35.2215 41.6549 34.9606 41.6999 34.6817C41.9608 33.3052 41.1871 31.8117 39.9006 31.2089C39.4597 31.002 39.2978 30.975 38.3981 30.975H37.3995L37.2016 30.5072C36.9317 29.8594 36.4189 29.3106 35.7441 28.9508C35.2313 28.6719 35.0963 28.6449 34.3226 28.6179C33.6299 28.5909 33.378 28.6269 33.0001 28.7798ZM35.0874 30.2373C35.5462 30.4982 35.924 31.047 35.996 31.5688L36.05 31.9826L33.423 35.2844C31.3897 37.8215 30.7509 38.5682 30.643 38.5233C30.562 38.4873 30.3641 38.4153 30.2021 38.3613C30.0402 38.3073 29.9232 38.2264 29.9502 38.1724C29.9682 38.1274 30.58 36.463 31.3087 34.4837C32.7032 30.6961 32.8202 30.4442 33.4679 30.1563C33.8998 29.9674 34.6735 30.0034 35.0874 30.2373ZM39.1539 32.4685C39.4687 32.5854 39.9636 33.0443 40.1435 33.4041C40.3414 33.773 40.3324 34.5017 40.1255 34.9246C39.9906 35.2035 39.2438 35.8512 36.4908 38.0464L33.0181 40.8174L32.4243 40.2326L31.8215 39.6388L34.5565 36.2021C37.5255 32.4775 37.6424 32.3695 38.4701 32.3695C38.704 32.3695 39.0099 32.4145 39.1539 32.4685ZM41.619 36.8409C42.1408 37.1108 42.4557 37.4886 42.5996 38.0464C42.7885 38.7572 42.3747 39.6568 41.6909 39.9987C41.475 40.1067 39.8196 40.7364 38.0113 41.4022C36.2029 42.068 34.6555 42.6347 34.5745 42.6707C34.4576 42.7157 34.3856 42.6347 34.2417 42.3019C34.1337 42.068 34.0617 41.861 34.0797 41.843C34.0977 41.834 35.5822 40.6465 37.3905 39.207C39.7746 37.3087 40.7283 36.598 40.8992 36.598C41.0252 36.598 41.3491 36.7059 41.619 36.8409ZM31.3717 41.2583C32.5503 42.4278 32.9731 42.9136 32.9731 43.0666C32.9731 43.3635 32.3614 43.9213 31.8395 44.1012C31.1468 44.3351 30.481 44.2901 29.8423 43.9663C29.2575 43.6784 28.9516 43.3725 28.6277 42.7697C28.4748 42.4818 28.4298 42.2479 28.4298 41.6811C28.4298 41.0513 28.4658 40.8984 28.6997 40.4845C28.9966 39.9447 29.3025 39.6568 29.5904 39.6568C29.7073 39.6568 30.3281 40.2056 31.3717 41.2583Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.5 KiB |
3
assets/images/svg/fluent_home-20-regular.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M11.2475 2.98502C11.5917 2.67581 12.038 2.50476 12.5006 2.50476C12.9633 2.50476 13.4096 2.67581 13.7537 2.98502L20.6287 9.16252C20.8242 9.3383 20.9805 9.55323 21.0876 9.79334C21.1946 10.0334 21.2499 10.2934 21.25 10.5563V19.375C21.25 19.8723 21.0525 20.3492 20.7008 20.7008C20.3492 21.0525 19.8723 21.25 19.375 21.25H16.25C15.7527 21.25 15.2758 21.0525 14.9242 20.7008C14.5725 20.3492 14.375 19.8723 14.375 19.375V15C14.375 14.8343 14.3092 14.6753 14.1919 14.5581C14.0747 14.4409 13.9158 14.375 13.75 14.375H11.25C11.0842 14.375 10.9253 14.4409 10.8081 14.5581C10.6908 14.6753 10.625 14.8343 10.625 15V19.375C10.625 19.8723 10.4275 20.3492 10.0758 20.7008C9.72419 21.0525 9.24728 21.25 8.75 21.25H5.625C5.12772 21.25 4.65081 21.0525 4.29917 20.7008C3.94754 20.3492 3.75 19.8723 3.75 19.375V10.5563C3.75 10.025 3.975 9.51877 4.3725 9.16252L11.2475 2.98502ZM12.9175 3.91502C12.8028 3.81207 12.6541 3.75512 12.5 3.75512C12.3459 3.75512 12.1972 3.81207 12.0825 3.91502L5.2075 10.0925C5.14237 10.151 5.09025 10.2225 5.0545 10.3024C5.01876 10.3822 5.00019 10.4688 5 10.5563V19.375C5 19.5408 5.06585 19.6998 5.18306 19.817C5.30027 19.9342 5.45924 20 5.625 20H8.75C8.91576 20 9.07473 19.9342 9.19194 19.817C9.30915 19.6998 9.375 19.5408 9.375 19.375V15C9.375 14.5027 9.57254 14.0258 9.92417 13.6742C10.2758 13.3226 10.7527 13.125 11.25 13.125H13.75C14.2473 13.125 14.7242 13.3226 15.0758 13.6742C15.4275 14.0258 15.625 14.5027 15.625 15V19.375C15.625 19.5408 15.6908 19.6998 15.8081 19.817C15.9253 19.9342 16.0842 20 16.25 20H19.375C19.5408 20 19.6997 19.9342 19.8169 19.817C19.9342 19.6998 20 19.5408 20 19.375V10.5563C19.9998 10.4688 19.9812 10.3822 19.9455 10.3024C19.9098 10.2225 19.8576 10.151 19.7925 10.0925L12.9175 3.91502Z" fill="#FCFCFC"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
9
assets/images/svg/social-activity 1 (1).svg
Normal file
|
After Width: | Height: | Size: 28 KiB |
9
assets/images/svg/social-activity 1.svg
Normal file
|
After Width: | Height: | Size: 28 KiB |
4
assets/images/svg/special interest.svg
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
3
assets/images/svg/weightlifting.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
@@ -21,6 +21,6 @@
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>11.0</string>
|
||||
<string>12.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||
#include "Generated.xcconfig"
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||
#include "Generated.xcconfig"
|
||||
|
||||
44
ios/Podfile
Normal file
@@ -0,0 +1,44 @@
|
||||
# Uncomment this line to define a global platform for your project
|
||||
platform :ios, '12.0'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
||||
project 'Runner', {
|
||||
'Debug' => :debug,
|
||||
'Profile' => :release,
|
||||
'Release' => :release,
|
||||
}
|
||||
|
||||
def flutter_root
|
||||
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
|
||||
unless File.exist?(generated_xcode_build_settings_path)
|
||||
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
|
||||
end
|
||||
|
||||
File.foreach(generated_xcode_build_settings_path) do |line|
|
||||
matches = line.match(/FLUTTER_ROOT\=(.*)/)
|
||||
return matches[1].strip if matches
|
||||
end
|
||||
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
|
||||
end
|
||||
|
||||
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
|
||||
|
||||
flutter_ios_podfile_setup
|
||||
|
||||
target 'Runner' do
|
||||
use_frameworks!
|
||||
use_modular_headers!
|
||||
|
||||
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
|
||||
# target 'RunnerTests' do
|
||||
# inherit! :search_paths
|
||||
# end
|
||||
end
|
||||
|
||||
post_install do |installer|
|
||||
installer.pods_project.targets.each do |target|
|
||||
flutter_additional_ios_build_settings(target)
|
||||
end
|
||||
end
|
||||
177
ios/Podfile.lock
Normal file
@@ -0,0 +1,177 @@
|
||||
PODS:
|
||||
- connectivity_plus (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- device_info_plus (0.0.1):
|
||||
- Flutter
|
||||
- DKImagePickerController/Core (4.3.9):
|
||||
- DKImagePickerController/ImageDataManager
|
||||
- DKImagePickerController/Resource
|
||||
- DKImagePickerController/ImageDataManager (4.3.9)
|
||||
- DKImagePickerController/PhotoGallery (4.3.9):
|
||||
- DKImagePickerController/Core
|
||||
- DKPhotoGallery
|
||||
- DKImagePickerController/Resource (4.3.9)
|
||||
- DKPhotoGallery (0.0.19):
|
||||
- DKPhotoGallery/Core (= 0.0.19)
|
||||
- DKPhotoGallery/Model (= 0.0.19)
|
||||
- DKPhotoGallery/Preview (= 0.0.19)
|
||||
- DKPhotoGallery/Resource (= 0.0.19)
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Core (0.0.19):
|
||||
- DKPhotoGallery/Model
|
||||
- DKPhotoGallery/Preview
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Model (0.0.19):
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Preview (0.0.19):
|
||||
- DKPhotoGallery/Model
|
||||
- DKPhotoGallery/Resource
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Resource (0.0.19):
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- FBAEMKit (16.3.1):
|
||||
- FBSDKCoreKit_Basics (= 16.3.1)
|
||||
- FBSDKCoreKit (16.3.1):
|
||||
- FBAEMKit (= 16.3.1)
|
||||
- FBSDKCoreKit_Basics (= 16.3.1)
|
||||
- FBSDKCoreKit_Basics (16.3.1)
|
||||
- FBSDKLoginKit (16.3.1):
|
||||
- FBSDKCoreKit (= 16.3.1)
|
||||
- file_picker (0.0.1):
|
||||
- DKImagePickerController/PhotoGallery
|
||||
- Flutter
|
||||
- Flutter (1.0.0)
|
||||
- flutter_facebook_auth (6.0.4):
|
||||
- FBSDKLoginKit (~> 16.3.1)
|
||||
- Flutter
|
||||
- fluttertoast (0.0.2):
|
||||
- Flutter
|
||||
- Toast
|
||||
- geolocator_apple (1.2.0):
|
||||
- Flutter
|
||||
- google_maps_flutter_ios (0.0.1):
|
||||
- Flutter
|
||||
- GoogleMaps (< 9.0)
|
||||
- GoogleMaps (6.2.1):
|
||||
- GoogleMaps/Maps (= 6.2.1)
|
||||
- GoogleMaps/Base (6.2.1)
|
||||
- GoogleMaps/Maps (6.2.1):
|
||||
- GoogleMaps/Base
|
||||
- image_cropper (0.0.4):
|
||||
- Flutter
|
||||
- TOCropViewController (~> 2.7.3)
|
||||
- image_gallery_saver (2.0.2):
|
||||
- Flutter
|
||||
- image_picker_ios (0.0.1):
|
||||
- Flutter
|
||||
- path_provider_foundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- permission_handler_apple (9.3.0):
|
||||
- Flutter
|
||||
- SDWebImage (5.19.2):
|
||||
- SDWebImage/Core (= 5.19.2)
|
||||
- SDWebImage/Core (5.19.2)
|
||||
- shared_preferences_foundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- SwiftyGif (5.4.5)
|
||||
- Toast (4.1.1)
|
||||
- TOCropViewController (2.7.4)
|
||||
|
||||
DEPENDENCIES:
|
||||
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`)
|
||||
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
|
||||
- file_picker (from `.symlinks/plugins/file_picker/ios`)
|
||||
- Flutter (from `Flutter`)
|
||||
- flutter_facebook_auth (from `.symlinks/plugins/flutter_facebook_auth/ios`)
|
||||
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
|
||||
- geolocator_apple (from `.symlinks/plugins/geolocator_apple/ios`)
|
||||
- google_maps_flutter_ios (from `.symlinks/plugins/google_maps_flutter_ios/ios`)
|
||||
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
|
||||
- image_gallery_saver (from `.symlinks/plugins/image_gallery_saver/ios`)
|
||||
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
|
||||
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
|
||||
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- DKImagePickerController
|
||||
- DKPhotoGallery
|
||||
- FBAEMKit
|
||||
- FBSDKCoreKit
|
||||
- FBSDKCoreKit_Basics
|
||||
- FBSDKLoginKit
|
||||
- GoogleMaps
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- Toast
|
||||
- TOCropViewController
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
connectivity_plus:
|
||||
:path: ".symlinks/plugins/connectivity_plus/darwin"
|
||||
device_info_plus:
|
||||
:path: ".symlinks/plugins/device_info_plus/ios"
|
||||
file_picker:
|
||||
:path: ".symlinks/plugins/file_picker/ios"
|
||||
Flutter:
|
||||
:path: Flutter
|
||||
flutter_facebook_auth:
|
||||
:path: ".symlinks/plugins/flutter_facebook_auth/ios"
|
||||
fluttertoast:
|
||||
:path: ".symlinks/plugins/fluttertoast/ios"
|
||||
geolocator_apple:
|
||||
:path: ".symlinks/plugins/geolocator_apple/ios"
|
||||
google_maps_flutter_ios:
|
||||
:path: ".symlinks/plugins/google_maps_flutter_ios/ios"
|
||||
image_cropper:
|
||||
:path: ".symlinks/plugins/image_cropper/ios"
|
||||
image_gallery_saver:
|
||||
:path: ".symlinks/plugins/image_gallery_saver/ios"
|
||||
image_picker_ios:
|
||||
:path: ".symlinks/plugins/image_picker_ios/ios"
|
||||
path_provider_foundation:
|
||||
:path: ".symlinks/plugins/path_provider_foundation/darwin"
|
||||
permission_handler_apple:
|
||||
:path: ".symlinks/plugins/permission_handler_apple/ios"
|
||||
shared_preferences_foundation:
|
||||
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db
|
||||
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
|
||||
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
|
||||
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
|
||||
FBAEMKit: 6c7b5eb77c96861bb59e040842c6e55bf39512ce
|
||||
FBSDKCoreKit: 5e4dd478947ab1bcc887e8cfadeae0727af1a942
|
||||
FBSDKCoreKit_Basics: cd7b5f5d1e8868c26706917919d058999ca672c3
|
||||
FBSDKLoginKit: 572cca0bc6c90067ef197187697cb3b584310c52
|
||||
file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
|
||||
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
||||
flutter_facebook_auth: c8700ab1770f3d8e5e7456220e4f3bbcdb831454
|
||||
fluttertoast: 9f2f8e81bb5ce18facb9748d7855bf5a756fe3db
|
||||
geolocator_apple: 6cbaf322953988e009e5ecb481f07efece75c450
|
||||
google_maps_flutter_ios: d1318b4ff711612cab16862d7a87e31a7403d458
|
||||
GoogleMaps: 20d7b12be49a14287f797e88e0e31bc4156aaeb4
|
||||
image_cropper: 2c150b3d63f4feaad31054d20381ddac0a460e63
|
||||
image_gallery_saver: cb43cc43141711190510e92c460eb1655cd343cb
|
||||
image_picker_ios: 99dfe1854b4fa34d0364e74a78448a0151025425
|
||||
path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c
|
||||
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
|
||||
SDWebImage: dfe95b2466a9823cf9f0c6d01217c06550d7b29a
|
||||
shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695
|
||||
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
||||
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
|
||||
TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
|
||||
|
||||
PODFILE CHECKSUM: 87eb8569d101acc3edb071281a9b070909b01eb4
|
||||
|
||||
COCOAPODS: 1.15.2
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
||||
2105BA461347F33698D3FD7B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC7FC30109CCD5376F6BFA0F /* Pods_Runner.framework */; };
|
||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
||||
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
|
||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||
@@ -29,12 +30,15 @@
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
01A8D59FC22474B9D47BC82F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
|
||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
|
||||
3E093EFD052120EBB5EFE242 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
||||
8DA153E7FEAC51D97681DB93 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
||||
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@@ -42,6 +46,7 @@
|
||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
DC7FC30109CCD5376F6BFA0F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -49,12 +54,23 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
2105BA461347F33698D3FD7B /* Pods_Runner.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
01448FBCAC46C16EC8BC1181 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8DA153E7FEAC51D97681DB93 /* Pods-Runner.debug.xcconfig */,
|
||||
3E093EFD052120EBB5EFE242 /* Pods-Runner.release.xcconfig */,
|
||||
01A8D59FC22474B9D47BC82F /* Pods-Runner.profile.xcconfig */,
|
||||
);
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9740EEB11CF90186004384FC /* Flutter */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -72,6 +88,8 @@
|
||||
9740EEB11CF90186004384FC /* Flutter */,
|
||||
97C146F01CF9000F007C117D /* Runner */,
|
||||
97C146EF1CF9000F007C117D /* Products */,
|
||||
01448FBCAC46C16EC8BC1181 /* Pods */,
|
||||
DE8E73CF7AB07643531FB23E /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
@@ -98,6 +116,14 @@
|
||||
path = Runner;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
DE8E73CF7AB07643531FB23E /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DC7FC30109CCD5376F6BFA0F /* Pods_Runner.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
@@ -105,12 +131,15 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||
buildPhases = (
|
||||
2427B225240D99C3274E4E9F /* [CP] Check Pods Manifest.lock */,
|
||||
9740EEB61CF901F6004384FC /* Run Script */,
|
||||
97C146EA1CF9000F007C117D /* Sources */,
|
||||
97C146EB1CF9000F007C117D /* Frameworks */,
|
||||
97C146EC1CF9000F007C117D /* Resources */,
|
||||
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
||||
193E6ECF33FCE0798A403773 /* [CP] Embed Pods Frameworks */,
|
||||
A1A5C179E86574032091061E /* [CP] Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -127,7 +156,7 @@
|
||||
97C146E61CF9000F007C117D /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1300;
|
||||
LastUpgradeCheck = 1510;
|
||||
ORGANIZATIONNAME = "";
|
||||
TargetAttributes = {
|
||||
97C146ED1CF9000F007C117D = {
|
||||
@@ -169,6 +198,45 @@
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
193E6ECF33FCE0798A403773 /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
2427B225240D99C3274E4E9F /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
@@ -176,6 +244,7 @@
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
|
||||
);
|
||||
name = "Thin Binary";
|
||||
outputPaths = (
|
||||
@@ -199,6 +268,23 @@
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
||||
};
|
||||
A1A5C179E86574032091061E /* [CP] Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
|
||||
);
|
||||
name = "[CP] Copy Pods Resources";
|
||||
outputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
@@ -274,7 +360,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@@ -289,14 +375,19 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = A89AY6VY4F;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Regroup;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.regroup;
|
||||
MARKETING_VERSION = 1;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.regroup.wdi;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
@@ -351,7 +442,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -400,7 +491,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@@ -417,14 +508,19 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = A89AY6VY4F;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Regroup;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.regroup;
|
||||
MARKETING_VERSION = 1;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.regroup.wdi;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
@@ -439,14 +535,19 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
CURRENT_PROJECT_VERSION = 8;
|
||||
DEVELOPMENT_TEAM = A89AY6VY4F;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Regroup;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.regroup;
|
||||
MARKETING_VERSION = 1;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.regroup.wdi;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1300"
|
||||
LastUpgradeVersion = "1510"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
3
ios/Runner.xcworkspace/contents.xcworkspacedata
generated
@@ -4,4 +4,7 @@
|
||||
<FileRef
|
||||
location = "group:Runner.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:Pods/Pods.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
@@ -24,6 +26,8 @@
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
@@ -43,9 +47,9 @@
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true/>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||
<string>Regroup get write-only access to the user photo library</string>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>Allow access to photo library</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
8
ios/Runner/Runner.entitlements
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>aps-environment</key>
|
||||
<string>development</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,79 +1,70 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:glassmorphism/glassmorphism.dart';
|
||||
import 'package:glassmorphism_ui/glassmorphism_ui.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/controller/MainController.dart';
|
||||
|
||||
GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
return GlassmorphicContainer(
|
||||
GlassContainer bottomnavigationbar(MainController _mainController) {
|
||||
return GlassContainer(
|
||||
width: double.infinity,
|
||||
height: 83.h,
|
||||
borderRadius: 2,
|
||||
blur: 30,
|
||||
alignment: Alignment.center,
|
||||
border: 0,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Colors.white.withOpacity(0.04),
|
||||
Color(0xFFFFFFFF).withOpacity(0.05),
|
||||
],
|
||||
stops: const [
|
||||
0.1,
|
||||
1,
|
||||
]),
|
||||
borderGradient: const LinearGradient(
|
||||
height: 100,
|
||||
borderRadius: BorderRadius.circular(2),
|
||||
blur: 2,
|
||||
opacity: 0.2,
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Colors.transparent,
|
||||
Colors.transparent,
|
||||
Color(0xFFFFFFFF).withOpacity(0.4),
|
||||
const Color(0xFFFFFFFF).withOpacity(0.5),
|
||||
],
|
||||
stops: const [
|
||||
0.1,
|
||||
1,
|
||||
],
|
||||
),
|
||||
border: Border.all(color: const Color(0xff434A53)),
|
||||
child: BottomNavigationBar(
|
||||
// backgroundColor: ,
|
||||
type: BottomNavigationBarType.fixed,
|
||||
backgroundColor: const Color(0xFFFFFFFF).withOpacity(0),
|
||||
showUnselectedLabels: true,
|
||||
selectedItemColor: Colors.white,
|
||||
unselectedItemColor: const Color(0xFF676767),
|
||||
unselectedLabelStyle: TextStyle(
|
||||
height: 3,
|
||||
fontSize: 10.sp,
|
||||
color: const Color(0xFF676767),
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'hiragino'),
|
||||
fontFamily: 'Helvetica'),
|
||||
selectedLabelStyle: TextStyle(
|
||||
fontSize: 10.sp,
|
||||
color: const Color(0xFFFFFFFF),
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'hiragino'),
|
||||
fontFamily: 'Helvetica'),
|
||||
currentIndex: _mainController.selectedIndex.value,
|
||||
onTap: (index) {
|
||||
_mainController.updateTab(index);
|
||||
},
|
||||
items: [
|
||||
BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
'assets/images/png/BottomBar/inactiveHome.png',
|
||||
height: 26.h,
|
||||
width: 26.w,
|
||||
icon: SvgPicture.asset(
|
||||
'assets/images/png/unactiveHomeBottomBar.svg',
|
||||
height: 25.h,
|
||||
// width: 25.w,
|
||||
),
|
||||
// Icon(
|
||||
// Icons.home,
|
||||
// color: Color(0xFF676767),
|
||||
// ),
|
||||
activeIcon: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
if (_mainController.selectedIndex.value == 0)
|
||||
Container(
|
||||
height: 40.h,
|
||||
width: 40.w,
|
||||
height: 25.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Color(0xFFD90B2E).withOpacity(0.16),
|
||||
color: const Color(0xFFD90B2E).withOpacity(0.5),
|
||||
spreadRadius: 15,
|
||||
blurRadius: 25,
|
||||
offset: const Offset(0, 10),
|
||||
@@ -81,17 +72,17 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
],
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
top: -15,
|
||||
child: Container(
|
||||
height: 2.h,
|
||||
width: 20.w,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
color: Color(0xFFD90B2E)),
|
||||
)),
|
||||
// Positioned(
|
||||
// left: 0,
|
||||
// right: 0,
|
||||
// top: -15,
|
||||
// child: Container(
|
||||
// height: 2.h,
|
||||
// width: 20.w,
|
||||
// decoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.circular(10.r),
|
||||
// color: const Color(0xFFD90B2E)),
|
||||
// )),
|
||||
Positioned(
|
||||
top: 0,
|
||||
bottom: 0,
|
||||
@@ -99,7 +90,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
left: 0,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/BottomBar/ActiveHome.png',
|
||||
"assets/images/png/BottomBar/ActiveHome.png",
|
||||
height: 30.h,
|
||||
width: 30.w,
|
||||
),
|
||||
@@ -107,28 +98,25 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
)
|
||||
],
|
||||
),
|
||||
|
||||
// activeIcon: SvgPicture.asset('assets/image/svg/active_home.svg'),
|
||||
label: 'Community',
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
'assets/images/png/BottomBar/inactiveGroup.png',
|
||||
height: 26.h,
|
||||
width: 26.w,
|
||||
icon: SvgPicture.asset(
|
||||
'assets/images/png/BottomBar/groupBottomBarIcon.svg',
|
||||
height: 25.h,
|
||||
// width: 25.w,
|
||||
),
|
||||
activeIcon: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
if (_mainController.selectedIndex.value == 1)
|
||||
Container(
|
||||
height: 40.h,
|
||||
width: 40.w,
|
||||
height: 25.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Color(0xFFD90B2E).withOpacity(0.16),
|
||||
color: const Color(0xFFD90B2E).withOpacity(0.5),
|
||||
spreadRadius: 15,
|
||||
blurRadius: 25,
|
||||
offset: const Offset(0, 10),
|
||||
@@ -136,17 +124,17 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
],
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
top: -15,
|
||||
child: Container(
|
||||
height: 2.h,
|
||||
width: 20.w,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
color: Color(0xFFD90B2E)),
|
||||
)),
|
||||
// Positioned(
|
||||
// left: 0,
|
||||
// right: 0,
|
||||
// //top: -20,
|
||||
// child: Container(
|
||||
// height: 2.h,
|
||||
// // width: 10.w,
|
||||
// decoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.circular(10.r),
|
||||
// color: const Color(0xFFD90B2E)),
|
||||
// )),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
@@ -168,21 +156,20 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
'assets/images/png/BottomBar/inactiveCal.png',
|
||||
height: 24.h,
|
||||
width: 24.w,
|
||||
height: 22.h,
|
||||
width: 22.w,
|
||||
),
|
||||
activeIcon: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
if (_mainController.selectedIndex.value == 2)
|
||||
Container(
|
||||
height: 40.h,
|
||||
width: 40.w,
|
||||
height: 25.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Color(0xFFD90B2E).withOpacity(0.16),
|
||||
color: const Color(0xFFD90B2E).withOpacity(0.5),
|
||||
spreadRadius: 15,
|
||||
blurRadius: 25,
|
||||
offset: const Offset(0, 10),
|
||||
@@ -190,17 +177,17 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
],
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
top: -15,
|
||||
child: Container(
|
||||
height: 2.h,
|
||||
width: 20.w,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
color: Color(0xFFD90B2E)),
|
||||
)),
|
||||
// Positioned(
|
||||
// left: 0,
|
||||
// right: 0,
|
||||
// top: -15,
|
||||
// child: Container(
|
||||
// height: 2.h,
|
||||
// width: 20.w,
|
||||
// decoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.circular(10.r),
|
||||
// color: const Color(0xFFD90B2E)),
|
||||
// )),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
@@ -209,34 +196,30 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/BottomBar/ActiveCal.png',
|
||||
height: 28.h,
|
||||
width: 28.w,
|
||||
height: 30.h,
|
||||
width: 30.w,
|
||||
),
|
||||
))
|
||||
],
|
||||
),
|
||||
|
||||
// SvgPicture.asset('assets/image/svg/active_shortTrade.svg'),
|
||||
label: 'Calender',
|
||||
label: 'Calendar',
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
'assets/images/png/BottomBar/inactiveChat.png',
|
||||
height: 24.h,
|
||||
width: 24.w,
|
||||
height: 25.h,
|
||||
),
|
||||
activeIcon: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
if (_mainController.selectedIndex.value == 3)
|
||||
Container(
|
||||
height: 40.h,
|
||||
width: 40.w,
|
||||
height: 25.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Color(0xFFD90B2E).withOpacity(0.16),
|
||||
color: const Color(0xFFD90B2E).withOpacity(0.5),
|
||||
spreadRadius: 15,
|
||||
blurRadius: 25,
|
||||
offset: const Offset(0, 10),
|
||||
@@ -244,17 +227,17 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
],
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
top: -15,
|
||||
child: Container(
|
||||
height: 2.h,
|
||||
width: 20.w,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
color: Color(0xFFD90B2E)),
|
||||
)),
|
||||
// Positioned(
|
||||
// left: 0,
|
||||
// right: 0,
|
||||
// top: -15,
|
||||
// child: Container(
|
||||
// height: 2.h,
|
||||
// width: 20.w,
|
||||
// decoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.circular(10.r),
|
||||
// color: const Color(0xFFD90B2E)),
|
||||
// )),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
@@ -263,8 +246,8 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/BottomBar/ActiveChat.png',
|
||||
height: 28.h,
|
||||
width: 28.w,
|
||||
height: 30.h,
|
||||
width: 30.w,
|
||||
),
|
||||
))
|
||||
],
|
||||
@@ -276,21 +259,20 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
'assets/images/png/BottomBar/inactivePeople.png',
|
||||
height: 26.h,
|
||||
width: 26.w,
|
||||
height: 22.h,
|
||||
width: 22.w,
|
||||
),
|
||||
activeIcon: Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
if (_mainController.selectedIndex.value == 4)
|
||||
Container(
|
||||
height: 40.h,
|
||||
width: 40.w,
|
||||
height: 25.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Color(0xFFD90B2E).withOpacity(0.16),
|
||||
color: const Color(0xFFD90B2E).withOpacity(0.5),
|
||||
spreadRadius: 15,
|
||||
blurRadius: 25,
|
||||
offset: const Offset(0, 10),
|
||||
@@ -298,17 +280,17 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
],
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
top: -15,
|
||||
child: Container(
|
||||
height: 2.h,
|
||||
width: 20.w,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
color: Color(0xFFD90B2E)),
|
||||
)),
|
||||
// Positioned(
|
||||
// left: 0,
|
||||
// right: 0,
|
||||
// top: -15,
|
||||
// child: Container(
|
||||
// height: 2.h,
|
||||
// width: 20.w,
|
||||
// decoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.circular(10.r),
|
||||
// color: const Color(0xFFD90B2E)),
|
||||
// )),
|
||||
Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
@@ -316,7 +298,7 @@ GlassmorphicContainer bottomnavigationbar(MainController _mainController) {
|
||||
bottom: 0,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/BottomBar/inactivePeople.png',
|
||||
'assets/images/png/BottomBar/activePeople.png',
|
||||
height: 30.h,
|
||||
width: 30.w,
|
||||
),
|
||||
|
||||
@@ -158,6 +158,7 @@ class CommonDropdownradioBtn extends StatefulWidget {
|
||||
const CommonDropdownradioBtn({
|
||||
required this.hint,
|
||||
required this.items,
|
||||
this.leadingIcon,
|
||||
this.textcolor = false,
|
||||
this.onItemSelected,
|
||||
this.showOtherOption = false,
|
||||
@@ -166,6 +167,7 @@ class CommonDropdownradioBtn extends StatefulWidget {
|
||||
|
||||
final String hint;
|
||||
final List<String>? items;
|
||||
final Widget? leadingIcon;
|
||||
final void Function(String)? onItemSelected;
|
||||
final bool textcolor;
|
||||
final bool showOtherOption;
|
||||
@@ -186,15 +188,19 @@ class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
|
||||
hint: Obx(() {
|
||||
return Row(
|
||||
children: [
|
||||
if (widget.leadingIcon != null)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 16),
|
||||
child: widget.leadingIcon!,
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
selectedValue.isEmpty ? widget.hint : selectedValue.value,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
fontFamily: 'hiragino',
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica'),
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
@@ -209,6 +215,7 @@ class _CommonDropdownradioBtnState extends State<CommonDropdownradioBtn> {
|
||||
return Obx(() {
|
||||
return Row(
|
||||
children: [
|
||||
if (widget.leadingIcon != null) widget.leadingIcon!,
|
||||
Expanded(
|
||||
child: Text(
|
||||
selectedValue.value,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:glassmorphism/glassmorphism.dart';
|
||||
import 'package:glassmorphism_ui/glassmorphism_ui.dart';
|
||||
|
||||
Widget commonGlassContainer({
|
||||
required double width,
|
||||
@@ -9,12 +10,13 @@ Widget commonGlassContainer({
|
||||
required double border,
|
||||
double opacity1 = 0.04,
|
||||
double opacity2 = 0.05,
|
||||
Color borderColor = const Color(0xff434A53),
|
||||
}) {
|
||||
return GlassmorphicContainer(
|
||||
width: width,
|
||||
height: height,
|
||||
borderRadius: borderradius,
|
||||
blur: 10,
|
||||
blur: 6,
|
||||
alignment: Alignment.topCenter,
|
||||
border: border,
|
||||
linearGradient: LinearGradient(
|
||||
@@ -33,49 +35,147 @@ Widget commonGlassContainer({
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xff434A53),
|
||||
Color(0xFF434A53),
|
||||
borderColor,
|
||||
borderColor,
|
||||
],
|
||||
),
|
||||
child: customWidget);
|
||||
}
|
||||
|
||||
// Widget commonGlassContainerOpacity(
|
||||
// {required double width,
|
||||
// required double height,
|
||||
// required double borderradius,
|
||||
// required Widget customWidget,
|
||||
// required double border,
|
||||
// double opacity1,
|
||||
// double opacity2,
|
||||
// }) {
|
||||
// return GlassmorphicContainer(
|
||||
// width: width,
|
||||
// height: height,
|
||||
// borderRadius: borderradius,
|
||||
// blur: 10,
|
||||
// alignment: Alignment.topCenter,
|
||||
// border: border,
|
||||
// linearGradient: LinearGradient(
|
||||
// begin: Alignment.topLeft,
|
||||
// end: Alignment.bottomRight,
|
||||
// colors: [
|
||||
// Color(0xFFFFFFFF).withOpacity(opacity1),
|
||||
// const Color(0xFFFFFFFF).withOpacity(opacity2),
|
||||
// ],
|
||||
// stops: const [
|
||||
// 0.1,
|
||||
// 1,
|
||||
// ],
|
||||
// ),
|
||||
// borderGradient: LinearGradient(
|
||||
// begin: Alignment.topLeft,
|
||||
// end: Alignment.bottomRight,
|
||||
// colors: [
|
||||
// Color(0xff434A53),
|
||||
// Color(0xFF434A53),
|
||||
// ],
|
||||
// ),
|
||||
// child: customWidget);
|
||||
// }
|
||||
Widget commonGlassContainerblue({
|
||||
required double width,
|
||||
required double height,
|
||||
required double borderradius,
|
||||
required Widget customWidget,
|
||||
required double border,
|
||||
Color borderColor = const Color(0xff434A53),
|
||||
}) {
|
||||
return GlassmorphicContainer(
|
||||
width: width,
|
||||
height: height,
|
||||
borderRadius: borderradius,
|
||||
blur: 6,
|
||||
alignment: Alignment.topCenter,
|
||||
border: border,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFF009DAB).withOpacity(0.48),
|
||||
Color(0xFF009DAB).withOpacity(0.12),
|
||||
],
|
||||
stops: const [
|
||||
0.1,
|
||||
1,
|
||||
],
|
||||
),
|
||||
borderGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
borderColor,
|
||||
borderColor,
|
||||
],
|
||||
),
|
||||
child: customWidget);
|
||||
}
|
||||
|
||||
Widget commonGlassUIBlue({
|
||||
required double width,
|
||||
required double height,
|
||||
required Widget customWidget,
|
||||
// required double border,
|
||||
double mainOpacity = 1,
|
||||
Color borderColor = const Color(0xff434A53),
|
||||
required BorderRadius? borderRadius,
|
||||
}) {
|
||||
return GlassContainer(
|
||||
width: width,
|
||||
height: height,
|
||||
borderRadius: borderRadius,
|
||||
blur: 6,
|
||||
opacity: mainOpacity,
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFF009DAB).withOpacity(0.48),
|
||||
Color(0xFF009DAB).withOpacity(0.12),
|
||||
],
|
||||
stops: const [
|
||||
0.1,
|
||||
1,
|
||||
],
|
||||
),
|
||||
border: Border.all(color: borderColor),
|
||||
child: customWidget);
|
||||
}
|
||||
|
||||
Widget commonGlassUI({
|
||||
required double width,
|
||||
required double height,
|
||||
// required double border,
|
||||
double mainOpacity = 1,
|
||||
double opacity1 = 0.04,
|
||||
double opacity2 = 0.05,
|
||||
Color borderColor = const Color(0xff434A53),
|
||||
double borderwidth = 1.0,
|
||||
required BorderRadius? borderRadius,
|
||||
required Widget customWidget,
|
||||
}) {
|
||||
return GlassContainer(
|
||||
width: width,
|
||||
height: height,
|
||||
borderRadius: borderRadius,
|
||||
blur: 2,
|
||||
opacity: mainOpacity,
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFFFFFFFF).withOpacity(opacity1),
|
||||
const Color(0xFFFFFFFF).withOpacity(opacity2),
|
||||
],
|
||||
stops: const [
|
||||
0.1,
|
||||
1,
|
||||
],
|
||||
),
|
||||
border: Border.all(color: borderColor, width: borderwidth),
|
||||
child: customWidget);
|
||||
}
|
||||
|
||||
Widget commonContainer({
|
||||
required double width,
|
||||
required double height,
|
||||
// required double border,
|
||||
// double mainOpacity = 1,
|
||||
double opacity1 = 0.04,
|
||||
double opacity2 = 0.05,
|
||||
Color borderColor = const Color(0xff434A53),
|
||||
double borderwidth = 1.0,
|
||||
BorderRadius? borderRadius,
|
||||
required Widget customWidget,
|
||||
BoxShape boxShape = BoxShape.rectangle,
|
||||
}) {
|
||||
return Container(
|
||||
width: width,
|
||||
height: height,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: borderRadius,
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFFFFFFFF).withOpacity(opacity1),
|
||||
const Color(0xFFFFFFFF).withOpacity(opacity2),
|
||||
],
|
||||
stops: const [
|
||||
0.1,
|
||||
1,
|
||||
],
|
||||
),
|
||||
shape: boxShape,
|
||||
border: Border.all(color: borderColor, width: borderwidth)),
|
||||
child: customWidget);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
import 'package:remove_emoji_input_formatter/remove_emoji_input_formatter.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
// ignore: must_be_immutable
|
||||
class TextInputField extends StatefulWidget {
|
||||
@@ -141,13 +142,75 @@ String extractFileName(String filePath) {
|
||||
return path.basename(filePath);
|
||||
}
|
||||
|
||||
Future<void> datePicker(
|
||||
BuildContext context, TextEditingController controller) async {
|
||||
final ThemeData customTheme = Theme.of(context).copyWith(
|
||||
colorScheme: const ColorScheme.light(
|
||||
primary: Color(0xFFD90B2E),
|
||||
surfaceTint: Color(0xFF222935),
|
||||
surface: Color(0xFF222935),
|
||||
onPrimary: Colors.white,
|
||||
onSurface: Colors.white,
|
||||
onSecondary: Colors.white),
|
||||
textButtonTheme: TextButtonThemeData(
|
||||
style: TextButton.styleFrom(
|
||||
foregroundColor: Color(0xFFD90B2E),
|
||||
),
|
||||
));
|
||||
final DateTime? picked = await showDatePicker(
|
||||
context: context,
|
||||
initialDate: DateTime.now(),
|
||||
firstDate: DateTime(1900),
|
||||
lastDate: DateTime(2100),
|
||||
builder: (BuildContext context, Widget? child) {
|
||||
return Theme(
|
||||
data: customTheme,
|
||||
child: child!,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
if (picked != null) {
|
||||
controller.text = DateFormat('dd-MM-yyyy').format(picked);
|
||||
}
|
||||
}
|
||||
|
||||
Future<TimeOfDay?> showCustomTimePicker(BuildContext context,
|
||||
{TimeOfDay? initialTime}) {
|
||||
final ThemeData customTheme2 = Theme.of(context).copyWith(
|
||||
colorScheme: const ColorScheme.light(
|
||||
primary: Color(0xFFD90B2E),
|
||||
surfaceTint: Color(0xFF222935),
|
||||
surface: Color(0xFF222935),
|
||||
onPrimary: Colors.white,
|
||||
onSurface: Colors.white,
|
||||
),
|
||||
textTheme: Theme.of(context).textTheme.copyWith(
|
||||
headline6: TextStyle(color: Colors.blue), // Change the title color
|
||||
),
|
||||
textButtonTheme: TextButtonThemeData(
|
||||
style: TextButton.styleFrom(
|
||||
foregroundColor: Color(0xFFD90B2E),
|
||||
),
|
||||
));
|
||||
return showTimePicker(
|
||||
context: context,
|
||||
initialTime: initialTime ?? TimeOfDay.now(),
|
||||
builder: (BuildContext context, Widget? child) {
|
||||
return Theme(
|
||||
data: customTheme2,
|
||||
child: child!,
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Widget stackContainers({
|
||||
required String number,
|
||||
required List<String> containerImages,
|
||||
}) {
|
||||
return Row(
|
||||
children: [
|
||||
SizedBox(width: 12),
|
||||
Stack(
|
||||
clipBehavior: Clip.none,
|
||||
children: [
|
||||
@@ -171,7 +234,7 @@ Widget stackContainers({
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
left: 20,
|
||||
left: 22.w,
|
||||
child: SizedBox(
|
||||
height: 30,
|
||||
width: 50,
|
||||
@@ -179,7 +242,7 @@ Widget stackContainers({
|
||||
clipBehavior: Clip.none,
|
||||
children: List.generate(containerImages.length, (index) {
|
||||
return Positioned(
|
||||
left: index * 22.0,
|
||||
left: index * 22.w,
|
||||
child: Container(
|
||||
height: 30,
|
||||
width: 30,
|
||||
@@ -249,20 +312,32 @@ Widget stackReaction({
|
||||
return Positioned(
|
||||
top: 6.h,
|
||||
left: index * 23.w,
|
||||
child: commonGlassContainer(
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.06,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
containerImages[index],
|
||||
height: 18.h,
|
||||
width: 18.w,
|
||||
child: Container(
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xFFFFFFFF).withOpacity(0.1),
|
||||
const Color(0xFFFFFFFF).withOpacity(0.06),
|
||||
],
|
||||
stops: const [
|
||||
0.1,
|
||||
1,
|
||||
],
|
||||
),
|
||||
border: Border.all(color: Color(0xFF1E3A46), width: 1.71)),
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
containerImages[index],
|
||||
height: 18.h,
|
||||
width: 18.w,
|
||||
),
|
||||
border: 1.71));
|
||||
),
|
||||
));
|
||||
}),
|
||||
),
|
||||
),
|
||||
|
||||
11
lib/Common/api_urls.dart
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
|
||||
class ApiUrls {
|
||||
|
||||
|
||||
|
||||
static const baseUrl = "https://regroup.betadelivery.com/api/v1/";
|
||||
|
||||
static const getlogin = "${baseUrl}login";
|
||||
|
||||
}
|
||||
@@ -61,7 +61,7 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
|
||||
width: double.infinity,
|
||||
height: 50.h,
|
||||
borderRadius: 30,
|
||||
blur: 10,
|
||||
blur: 6,
|
||||
alignment: Alignment.center,
|
||||
border: 1,
|
||||
linearGradient: LinearGradient(
|
||||
@@ -141,13 +141,13 @@ class _CustomTextFormFieldState extends State<CustomTextFormField> {
|
||||
),
|
||||
style: const TextStyle(color: Colors.white),
|
||||
keyboardType: widget.texttype,
|
||||
validator: widget.validator ??
|
||||
(value) {
|
||||
if (value == null || value.isEmpty) {
|
||||
return "Empty value";
|
||||
}
|
||||
return null;
|
||||
},
|
||||
// validator: widget.validator ??
|
||||
// (value) {
|
||||
// if (value == null || value.isEmpty) {
|
||||
// return "Empty value";
|
||||
// }
|
||||
// return null;
|
||||
// },
|
||||
inputFormatters: widget.inputFormatters,
|
||||
onChanged: (value) {
|
||||
widget.onInput?.call(value);
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:regroup/Feed%20Module/Main_Screens/CalenderTab/CalenderTab.dart'
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/Chats/View/chatsmainscreen.dart';
|
||||
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/Community/Community.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/GroupTab/View/GroupTab.dart';
|
||||
import 'package:regroup/Feed%20Module/Main_Screens/ProfileTab/ProfileTab.dart';
|
||||
|
||||
class MainController extends GetxController {
|
||||
@@ -12,7 +13,7 @@ class MainController extends GetxController {
|
||||
|
||||
var currentTab = [
|
||||
const CommunityScreen(),
|
||||
const CommunityScreen(),
|
||||
const GroupTab(),
|
||||
const CalenderTab(),
|
||||
const ChatsMainScreen(),
|
||||
const ProfileTab(),
|
||||
|
||||
4
lib/Common/controller/data/network/BaseApiServices.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
abstract class BaseApiServices {
|
||||
Future<dynamic> getApi(String url);
|
||||
Future<dynamic> postApi(var data, String url);
|
||||
}
|
||||
@@ -5,17 +5,25 @@ import 'package:dio/dio.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:get/get.dart' hide Response;
|
||||
import 'package:regroup/Global.dart';
|
||||
import 'package:regroup/Utils/base_manager.dart';
|
||||
import 'package:regroup/Common/base_manager.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
import 'entry_point_controller.dart';
|
||||
import '../../entry_point_controller.dart';
|
||||
|
||||
class NetworkApiServices {
|
||||
// String basicAuth = 'Basic ' +
|
||||
// base64.encode(
|
||||
// utf8.encode('RegroupUserName:71%@L%es^bUX94`J9XT*@bh,._WWM{\$%^^&&'));
|
||||
|
||||
class NetworkApi {
|
||||
Dio dio = Dio();
|
||||
final controllerEntryPoint = Get.put(EntryPointController());
|
||||
|
||||
String basicAuth = 'Basic ' +
|
||||
base64.encode(
|
||||
utf8.encode('RegroupUserName:71%@L%es^bUX94`J9XT*@bh,._WWM{\$%^^&&'));
|
||||
|
||||
Future<ResponseData> getApi(String url) async {
|
||||
if (kDebugMode) {
|
||||
print("api url is >>> $url");
|
||||
@@ -51,45 +59,136 @@ class NetworkApi {
|
||||
}
|
||||
}
|
||||
|
||||
Future<ResponseData> postApi({data, required String url}) async {
|
||||
// Future<ResponseData> postApi(
|
||||
// data,
|
||||
// String url,
|
||||
// {bool optionalpar = false}
|
||||
// ) async {
|
||||
// if (kDebugMode) {
|
||||
// print("data >>> $data");
|
||||
// print("api url is >>> $url");
|
||||
// }
|
||||
// Response response;
|
||||
// SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
// // ignore: unused_local_variable
|
||||
// String? token = prefs.getString('token').toString();
|
||||
// print("token is $token");
|
||||
// log(token.toString());
|
||||
// try {
|
||||
// response = await dio.post(url,
|
||||
// data: data,
|
||||
// options: optionalpar
|
||||
// ?
|
||||
// Options(
|
||||
// headers: {
|
||||
// "authorization": basicAuth,
|
||||
// },
|
||||
// )
|
||||
// :
|
||||
// Options(
|
||||
// headers: {'authorization': basicAuth, 'access-token': token},
|
||||
// ),
|
||||
// );
|
||||
// log(response.toString());
|
||||
// } on Exception catch (e) {
|
||||
// if (e is DioException) {
|
||||
// log(e.response.toString());
|
||||
// }
|
||||
// return ResponseData<dynamic>(
|
||||
// 'Opps something went wrong', ResponseStatus.FAILED);
|
||||
// }
|
||||
|
||||
// // if (kDebugMode) {
|
||||
// // print(response);
|
||||
// // }
|
||||
|
||||
// // print("response in post $response");
|
||||
|
||||
// if (response.statusCode == 200) {
|
||||
// // print(response.data);
|
||||
|
||||
// return ResponseData<dynamic>("success", ResponseStatus.SUCCESS,
|
||||
// data: response.data);
|
||||
// } else {
|
||||
// try {
|
||||
// return ResponseData<dynamic>(
|
||||
// response.data['message'].toString(), ResponseStatus.FAILED);
|
||||
// } catch (_) {
|
||||
// return ResponseData<dynamic>(
|
||||
// response.statusMessage!, ResponseStatus.FAILED);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
//New post api
|
||||
|
||||
Future<ResponseData> postApi(data, String url,
|
||||
{bool optionalpar = false}) async {
|
||||
if (kDebugMode) {
|
||||
print("data >>> $data");
|
||||
print("api url is >>> $url");
|
||||
}
|
||||
Response response;
|
||||
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
// ignore: unused_local_variable
|
||||
String? token = prefs.getString('token').toString();
|
||||
print("token is $token");
|
||||
String? token = prefs.getString('access-token');
|
||||
log(token.toString());
|
||||
log(basicAuth);
|
||||
try {
|
||||
response = await dio.post(url,
|
||||
data: data,
|
||||
options: Options(
|
||||
headers: {
|
||||
"authorization": "Bearer $token",
|
||||
'content-Type': 'application/json',
|
||||
"Accept": 'application/json'
|
||||
},
|
||||
));
|
||||
response = await dio.post(
|
||||
url,
|
||||
data: data,
|
||||
options: optionalpar
|
||||
? Options(
|
||||
headers: {
|
||||
"authorization": basicAuth,
|
||||
},
|
||||
)
|
||||
: Options(
|
||||
headers: {
|
||||
'authorization': basicAuth,
|
||||
// 'access-token': token
|
||||
},
|
||||
),
|
||||
);
|
||||
log(response.toString());
|
||||
} on Exception catch (e) {
|
||||
if (e is DioException) {
|
||||
log(e.response.toString());
|
||||
if (e.response == null) {
|
||||
return ResponseData<dynamic>(
|
||||
'Oops something Went Wrong, Please try again!',
|
||||
ResponseStatus.FAILED,
|
||||
);
|
||||
}
|
||||
if (e.response!.statusCode == 401) {
|
||||
prefs.remove('token');
|
||||
prefs.remove('refreshToken');
|
||||
// Get.toNamed(RouteName.login);
|
||||
return ResponseData<dynamic>(
|
||||
'Oops something Went Wrong, Please try again!',
|
||||
ResponseStatus.FAILED,
|
||||
);
|
||||
}
|
||||
if (e.response!.statusCode == 403) {
|
||||
return ResponseData<dynamic>(
|
||||
e.response!.statusMessage!, ResponseStatus.PRIVATE,
|
||||
data: e.response!.data);
|
||||
}
|
||||
}
|
||||
return ResponseData<dynamic>(
|
||||
'Opps something went wrong', ResponseStatus.FAILED);
|
||||
'Oops something Went Wrong',
|
||||
ResponseStatus.FAILED,
|
||||
);
|
||||
}
|
||||
|
||||
// if (kDebugMode) {
|
||||
// print(response);
|
||||
// }
|
||||
|
||||
// print("response in post $response");
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
// print(response.data);
|
||||
|
||||
if (response.statusCode == 200 || response.statusCode == 201) {
|
||||
return ResponseData<dynamic>("success", ResponseStatus.SUCCESS,
|
||||
data: response.data);
|
||||
} else if (response.statusCode == 203) {
|
||||
print(response.data);
|
||||
return ResponseData<dynamic>("success", ResponseStatus.PRIVATE,
|
||||
data: response.data);
|
||||
} else {
|
||||
try {
|
||||
return ResponseData<dynamic>(
|
||||
@@ -196,17 +295,18 @@ class NetworkApi {
|
||||
var resp = await response.stream.bytesToString();
|
||||
var jsonResp = jsonDecode(resp);
|
||||
print(jsonResp);
|
||||
var errorMessage = jsonResp["errors"]["email2"].join(", ") + "\n" +
|
||||
jsonResp["errors"]["contact_number2"].join(", ");
|
||||
var errorMessage = jsonResp["errors"]["email2"].join(", ") +
|
||||
"\n" +
|
||||
jsonResp["errors"]["contact_number2"].join(", ");
|
||||
// return ResponseData<dynamic>(
|
||||
// jsonResp["errors"][0]["email2"] +
|
||||
// jsonResp["errors"][0]["contact_number2"],
|
||||
// ResponseStatus.PRIVATE,
|
||||
// );
|
||||
return ResponseData<String>(
|
||||
errorMessage,
|
||||
ResponseStatus.PRIVATE,
|
||||
);
|
||||
return ResponseData<String>(
|
||||
errorMessage,
|
||||
ResponseStatus.PRIVATE,
|
||||
);
|
||||
} else if (response.statusCode == 500) {
|
||||
var resp = await response.stream.bytesToString();
|
||||
var jsonResp = jsonDecode(resp);
|
||||
41
lib/Common/global.dart
Normal file
@@ -0,0 +1,41 @@
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
LatLng? latlong;
|
||||
|
||||
getLocation() async {
|
||||
LocationPermission permission = await Geolocator.checkPermission();
|
||||
|
||||
if (permission == LocationPermission.denied ||
|
||||
permission == LocationPermission.deniedForever) {
|
||||
permission = await Geolocator.requestPermission();
|
||||
// } else {
|
||||
Position currentP = await Geolocator.getCurrentPosition(
|
||||
desiredAccuracy: LocationAccuracy.best);
|
||||
latlong = LatLng(currentP.latitude, currentP.longitude);
|
||||
} else {
|
||||
// Position currentP = await Geolocator.getCurrentPosition(
|
||||
// desiredAccuracy: LocationAccuracy.best);
|
||||
// latlong = LatLng(prefs.getDouble('lat')!, prefs.getDouble('long')!);
|
||||
Position currentP = await Geolocator.getCurrentPosition(
|
||||
desiredAccuracy: LocationAccuracy.best);
|
||||
latlong = LatLng(currentP.latitude, currentP.longitude);
|
||||
}
|
||||
print(latlong);
|
||||
print('done');
|
||||
}
|
||||
|
||||
|
||||
setname() async {
|
||||
SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||
String? token = prefs.getString('token');
|
||||
if (token != null) {
|
||||
// await ProfileAPI().getApi();
|
||||
// prefs.setString('email', getProfileObj!.data!.email!);
|
||||
// prefs.setString('profile_img', getProfileObj!.data!.profilePhoto!);
|
||||
// prefs.setString('firstName', getProfileObj!.data!.firstName!);
|
||||
// prefs.setString('phoneNo', getProfileObj!.data!.phoneNo ?? "");
|
||||
// prefs.setInt('complete', getProfileObj!.data!.profileComplete ?? 0);
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,22 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:dotted_border/dotted_border.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonButton.dart';
|
||||
import 'package:regroup/Common/CommonDropDown.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/CustomNextButton.dart';
|
||||
import 'package:regroup/Utils/Common/CustomTextformfield.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:intl/intl.dart';
|
||||
|
||||
class AddEvent extends StatefulWidget {
|
||||
const AddEvent({super.key});
|
||||
@@ -21,22 +27,40 @@ class AddEvent extends StatefulWidget {
|
||||
|
||||
class _AddEventState extends State<AddEvent> {
|
||||
RxBool isChecked = false.obs;
|
||||
List<File?> bannerPath = [];
|
||||
bool isbannerAdded = false;
|
||||
|
||||
TextEditingController dateController = TextEditingController();
|
||||
TextEditingController dateController2 = TextEditingController();
|
||||
|
||||
TimeOfDay? starttime = TimeOfDay(hour: 15, minute: 0);
|
||||
TimeOfDay? endtime = TimeOfDay(hour: 15, minute: 0);
|
||||
|
||||
String formatTimeOfDay(TimeOfDay time) {
|
||||
final now = DateTime.now();
|
||||
final dt = DateTime(now.year, now.month, now.day, time.hour, time.minute);
|
||||
final format =
|
||||
MediaQuery.of(context).alwaysUse24HourFormat ? 'HH:mm' : 'h:mm a';
|
||||
return DateFormat(format).format(dt);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
), SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(
|
||||
@@ -59,29 +83,81 @@ class _AddEventState extends State<AddEvent> {
|
||||
),
|
||||
hintText: "Tri-sport challenge",
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Event image"),
|
||||
sizedBoxHeight(20.h),
|
||||
commonGlassContainer(
|
||||
border: 0.9,
|
||||
width: double.infinity,
|
||||
height: 130.h,
|
||||
borderradius: 10.r,
|
||||
customWidget: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 16.h),
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
"assets/images/png/bi_download.png",
|
||||
height: 36.h,
|
||||
width: 36.w,
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
text14w400white("Upload event image"),
|
||||
sizedBoxHeight(8.h),
|
||||
text8w400_8A8A8A(
|
||||
"Allowed file extensions: jpg, png, gif Max file size: 10 MB"),
|
||||
],
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
ImageUploadBottomSheet().showModal(
|
||||
context,
|
||||
false,
|
||||
(result) {
|
||||
var file = File(result);
|
||||
|
||||
bannerPath.add(file);
|
||||
isbannerAdded = true;
|
||||
setState(() {});
|
||||
},
|
||||
);
|
||||
},
|
||||
child: DottedBorder(
|
||||
strokeWidth: 1,
|
||||
dashPattern: [7, 4],
|
||||
borderType: BorderType.RRect,
|
||||
radius: Radius.circular(14.r),
|
||||
color: Color(0xFF434A53),
|
||||
child: commonGlassContainer(
|
||||
border: 0,
|
||||
width: double.infinity,
|
||||
height: 130.h,
|
||||
borderradius: 10.r,
|
||||
customWidget: bannerPath.isNotEmpty && isbannerAdded
|
||||
? Stack(children: [
|
||||
Image.file(
|
||||
bannerPath[0]!,
|
||||
fit: BoxFit.cover,
|
||||
width: double.infinity,
|
||||
),
|
||||
Positioned(
|
||||
right: 5,
|
||||
bottom: 5,
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
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,
|
||||
))),
|
||||
),
|
||||
])
|
||||
: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 16.h),
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
"assets/images/png/bi_download.png",
|
||||
height: 36.h,
|
||||
width: 36.w,
|
||||
),
|
||||
sizedBoxHeight(10.h),
|
||||
text14w400white("Upload event image"),
|
||||
sizedBoxHeight(8.h),
|
||||
text8w400_8A8A8A(
|
||||
"Allowed file extensions: jpg, png, gif Max file size: 10 MB"),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -124,7 +200,7 @@ class _AddEventState extends State<AddEvent> {
|
||||
),
|
||||
),
|
||||
border: 1),
|
||||
sizedBoxHeight(16.h),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Type of event"),
|
||||
sizedBoxHeight(14.h),
|
||||
CommonDropdownBtn(
|
||||
@@ -140,7 +216,7 @@ class _AddEventState extends State<AddEvent> {
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(16.h),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Sport"),
|
||||
sizedBoxHeight(14.h),
|
||||
CommonDropdownBtn(
|
||||
@@ -156,61 +232,71 @@ class _AddEventState extends State<AddEvent> {
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(16.h),
|
||||
Row(
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white("Start date"),
|
||||
sizedBoxHeight(14.h),
|
||||
commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/calender.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white("1-4-2024")
|
||||
]),
|
||||
),
|
||||
border: 1)
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white("End date"),
|
||||
sizedBoxHeight(14.h),
|
||||
commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/calender.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white("4-4-2024")
|
||||
]),
|
||||
),
|
||||
border: 1)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white("Start date "),
|
||||
sizedBoxHeight(10.h),
|
||||
GestureDetector(
|
||||
onTap: () =>
|
||||
datePicker(context, dateController),
|
||||
child: AbsorbPointer(
|
||||
child: CustomTextFormField(
|
||||
textEditingController: dateController,
|
||||
hintText: "1-4-2024",
|
||||
leadingIcon: Container(
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/calender.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(10.h),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white("End date"),
|
||||
sizedBoxHeight(10.h),
|
||||
GestureDetector(
|
||||
onTap: () =>
|
||||
datePicker(context, dateController2),
|
||||
child: AbsorbPointer(
|
||||
child: CustomTextFormField(
|
||||
textEditingController: dateController2,
|
||||
hintText: "4-4-2024",
|
||||
leadingIcon: Container(
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/calender.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
]))
|
||||
]),
|
||||
Row(
|
||||
children: [
|
||||
Column(
|
||||
@@ -218,23 +304,36 @@ class _AddEventState extends State<AddEvent> {
|
||||
children: [
|
||||
text16400white("Start time"),
|
||||
sizedBoxHeight(14.h),
|
||||
commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/clock.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white("3:00 pm")
|
||||
]),
|
||||
),
|
||||
border: 1)
|
||||
GestureDetector(
|
||||
onTap: () async {
|
||||
final TimeOfDay? pickedTime =
|
||||
await showCustomTimePicker(context,
|
||||
initialTime: starttime);
|
||||
if (pickedTime != null) {
|
||||
setState(() {
|
||||
starttime = pickedTime;
|
||||
});
|
||||
}
|
||||
},
|
||||
child: commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/clock.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white(
|
||||
formatTimeOfDay(starttime!)),
|
||||
]),
|
||||
),
|
||||
border: 1),
|
||||
)
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
@@ -243,23 +342,36 @@ class _AddEventState extends State<AddEvent> {
|
||||
children: [
|
||||
text16400white("End time"),
|
||||
sizedBoxHeight(14.h),
|
||||
commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/clock.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white("5:00 pm")
|
||||
]),
|
||||
),
|
||||
border: 1)
|
||||
GestureDetector(
|
||||
onTap: () async {
|
||||
final TimeOfDay? pickedTime =
|
||||
await showCustomTimePicker(context,
|
||||
initialTime: endtime);
|
||||
if (pickedTime != null) {
|
||||
setState(() {
|
||||
endtime = pickedTime;
|
||||
});
|
||||
}
|
||||
},
|
||||
child: commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/clock.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white(
|
||||
formatTimeOfDay(endtime!)),
|
||||
]),
|
||||
),
|
||||
border: 1),
|
||||
)
|
||||
],
|
||||
),
|
||||
],
|
||||
@@ -293,7 +405,7 @@ class _AddEventState extends State<AddEvent> {
|
||||
text14w400_FCFCFC("Repeat event")
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(16.h),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Post in"),
|
||||
sizedBoxHeight(14.h),
|
||||
CommonDropdownBtn(
|
||||
@@ -307,7 +419,7 @@ class _AddEventState extends State<AddEvent> {
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(16.h),
|
||||
sizedBoxHeight(20.h),
|
||||
text16400white("Add Users"),
|
||||
sizedBoxHeight(14.h),
|
||||
CustomTextFormField(
|
||||
@@ -359,9 +471,8 @@ class _AddEventState extends State<AddEvent> {
|
||||
),
|
||||
hintText: "Elm street, London, United kingdom",
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
text16400white("Reminder"),
|
||||
sizedBoxHeight(22.h),
|
||||
sizedBoxHeight(14.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
@@ -398,7 +509,7 @@ class _AddEventState extends State<AddEvent> {
|
||||
sizedBoxHeight(70.h),
|
||||
]),
|
||||
),
|
||||
))
|
||||
)
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:get/get_connect/http/src/utils/utils.dart';
|
||||
import 'package:glassmorphism/glassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonTabBar.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.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';
|
||||
@@ -64,18 +63,19 @@ class _AddUsersState extends State<AddUsers> {
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
resizeToAvoidBottomInset: false,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Add users",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
), SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
@@ -124,7 +124,7 @@ class _AddUsersState extends State<AddUsers> {
|
||||
),
|
||||
),
|
||||
]))
|
||||
])))
|
||||
]))
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -395,7 +395,7 @@ class _AddUsersState extends State<AddUsers> {
|
||||
Color(0xFFD90B2E),
|
||||
],
|
||||
),
|
||||
blur: 10,
|
||||
blur: 6,
|
||||
child: Center(child: text16w400_FCFCFC("Su")),
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
|
||||
277
lib/Feed Module/Main_Screens/CalenderTab/Availabillity.dart
Normal file
@@ -0,0 +1,277 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:syncfusion_flutter_calendar/calendar.dart';
|
||||
|
||||
class Availability extends StatefulWidget {
|
||||
const Availability({super.key});
|
||||
|
||||
@override
|
||||
State<Availability> createState() => _AvailabilityState();
|
||||
}
|
||||
|
||||
CalendarController? _calendarController;
|
||||
List<Appointment>? _appointments;
|
||||
List<CalendarResource> _employeeCollection = <CalendarResource>[];
|
||||
// final List<String> _nameCollection = <String>[];
|
||||
// final List<String> _userImages = <String>[];
|
||||
|
||||
class _AvailabilityState extends State<Availability> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_calendarController = CalendarController();
|
||||
_appointments = <Appointment>[
|
||||
Appointment(
|
||||
startTime: DateTime(2024, 6, 26, 9, 0),
|
||||
endTime: DateTime(2024, 6, 26, 10, 30),
|
||||
subject: 'Development Meeting',
|
||||
resourceIds: [4],
|
||||
color: Color(0XFFFC571D)),
|
||||
Appointment(
|
||||
startTime: DateTime(2024, 6, 26, 18, 0),
|
||||
endTime: DateTime(2024, 6, 26, 18, 30),
|
||||
subject: 'GeneralMeeting',
|
||||
resourceIds: [2],
|
||||
color: Color(0xFF8B1FA9)),
|
||||
Appointment(
|
||||
startTime: DateTime(2024, 6, 28, 9, 0),
|
||||
endTime: DateTime(2024, 6, 28, 10, 30),
|
||||
subject: 'Lunch',
|
||||
resourceIds: [1],
|
||||
),
|
||||
Appointment(
|
||||
startTime: DateTime(2024, 6, 25, 10, 0),
|
||||
endTime: DateTime(2024, 6, 25, 10, 30),
|
||||
subject: 'Meeting',
|
||||
resourceIds: [2],
|
||||
),
|
||||
Appointment(
|
||||
startTime: DateTime.now(),
|
||||
endTime: DateTime.now().add(Duration(hours: 3)),
|
||||
subject: 'Match day',
|
||||
resourceIds: [3],
|
||||
),
|
||||
Appointment(
|
||||
startTime: DateTime.now(),
|
||||
endTime: DateTime.now().add(Duration(hours: 3)),
|
||||
subject: 'Muharram/Ashura',
|
||||
resourceIds: [3],
|
||||
),
|
||||
];
|
||||
_employeeCollection = <CalendarResource>[
|
||||
CalendarResource(
|
||||
id: 1,
|
||||
image: AssetImage("assets/images/png/cimg1.png"),
|
||||
displayName: 'Kaylly Vaccaro',
|
||||
color: Colors.transparent,
|
||||
),
|
||||
CalendarResource(
|
||||
id: 2,
|
||||
image: AssetImage("assets/images/png/cimg2.png"),
|
||||
displayName: 'Ryan Dorwart',
|
||||
color: Colors.transparent,
|
||||
),
|
||||
CalendarResource(
|
||||
id: 3,
|
||||
image: AssetImage("assets/images/png/cimg3.png"),
|
||||
displayName: 'Ahmad Rhiel',
|
||||
color: Colors.transparent,
|
||||
),
|
||||
CalendarResource(
|
||||
id: 4,
|
||||
image: AssetImage("assets/images/png/cimg3.png"),
|
||||
displayName: 'Ahmad Rhiel',
|
||||
color: Colors.transparent,
|
||||
),
|
||||
CalendarResource(
|
||||
id: 5,
|
||||
image: AssetImage("assets/images/png/Ellipse 52.png"),
|
||||
displayName: 'Ahmad Rhiel',
|
||||
color: Colors.transparent,
|
||||
),
|
||||
CalendarResource(
|
||||
id: 6,
|
||||
image: AssetImage("assets/images/png/Ellipse 48.png"),
|
||||
displayName: 'Ahmad Rhiel',
|
||||
color: Colors.transparent,
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Availability",
|
||||
),
|
||||
body: Stack(children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 670.h,
|
||||
borderradius: 1,
|
||||
border: 0,
|
||||
customWidget: SfCalendar(
|
||||
view: CalendarView.timelineMonth,
|
||||
appointmentTextStyle: TextStyle(color: Colors.white),
|
||||
headerStyle: CalendarHeaderStyle(
|
||||
textStyle: TextStyle(
|
||||
color: Colors.blue,
|
||||
)),
|
||||
// blackoutDatesTextStyle: TextStyle(color: Colors.white),
|
||||
|
||||
weekNumberStyle: WeekNumberStyle(
|
||||
textStyle: TextStyle(color: Colors.white)),
|
||||
viewHeaderStyle: ViewHeaderStyle(
|
||||
// backgroundColor: Colors.amber,
|
||||
dateTextStyle: TextStyle(color: Colors.white),
|
||||
dayTextStyle: TextStyle(
|
||||
color: Color(0xFFD90B2E),
|
||||
),
|
||||
),
|
||||
// blackoutDatesTextStyle: TextStyle(color: Colors.white),
|
||||
// selectionDecoration: BoxDecoration(color: Colors.amber),
|
||||
backgroundColor: Colors.transparent,
|
||||
// firstDayOfWeek: 3,
|
||||
cellBorderColor: Colors.white,
|
||||
todayHighlightColor: Color(0xFFD90B2E),
|
||||
todayTextStyle: const TextStyle(color: Colors.white),
|
||||
controller: _calendarController,
|
||||
showNavigationArrow: true,
|
||||
allowViewNavigation: true,
|
||||
showDatePickerButton: true,
|
||||
monthViewSettings: MonthViewSettings(
|
||||
navigationDirection:
|
||||
MonthNavigationDirection.horizontal,
|
||||
),
|
||||
allowDragAndDrop: true,
|
||||
allowedViews: [
|
||||
// CalendarView.month,
|
||||
// CalendarView.day,
|
||||
// CalendarView.schedule,
|
||||
CalendarView.timelineMonth,
|
||||
CalendarView.timelineDay
|
||||
],
|
||||
viewNavigationMode: ViewNavigationMode.snap,
|
||||
showCurrentTimeIndicator: true,
|
||||
dataSource: MeetingDataSource(
|
||||
_appointments!, _employeeCollection),
|
||||
onTap: calendarTapped,
|
||||
timeSlotViewSettings: TimeSlotViewSettings(
|
||||
// minimumAppointmentDuration: Duration(hours: 5),
|
||||
timeTextStyle: TextStyle(
|
||||
color: Colors.white,
|
||||
),
|
||||
timelineAppointmentHeight: 60.h,
|
||||
// timeIntervalWidth: 100,
|
||||
|
||||
// timeIntervalHeight: 50,
|
||||
timeIntervalWidth: 70,
|
||||
),
|
||||
monthCellBuilder: (context, details) {
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.transparent,
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
details.date.day.toString(),
|
||||
style: TextStyle(
|
||||
color:
|
||||
Colors.white), // Set text color to white
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
resourceViewSettings: ResourceViewSettings(
|
||||
displayNameTextStyle:
|
||||
TextStyle(color: Colors.white, fontSize: 10),
|
||||
showAvatar: true,
|
||||
),
|
||||
|
||||
// selectionDecoration: BoxDecoration(
|
||||
// borderRadius: BorderRadius.circular(20.r)),
|
||||
appointmentBuilder: (context, details) {
|
||||
final Appointment appointment =
|
||||
details.appointments.first;
|
||||
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color:
|
||||
details.appointments.first.color ?? Colors.blue,
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
appointment.subject,
|
||||
style: TextStyle(
|
||||
color: Colors.white, fontSize: 8.sp),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}),
|
||||
),
|
||||
]))
|
||||
]));
|
||||
}
|
||||
|
||||
void calendarTapped(CalendarTapDetails details) {
|
||||
if (details.targetElement == CalendarElement.appointment) {
|
||||
Appointment appointment = details.appointments![0];
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: Text('Event Details'),
|
||||
content: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
Text('Event: ${appointment.subject}'),
|
||||
Text('From: ${appointment.startTime}'),
|
||||
Text('To: ${appointment.endTime}'),
|
||||
],
|
||||
),
|
||||
actions: <Widget>[
|
||||
ElevatedButton(
|
||||
child: Text('Close'),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MeetingDataSource extends CalendarDataSource {
|
||||
MeetingDataSource(
|
||||
List<Appointment> source, List<CalendarResource> resourceColl) {
|
||||
appointments = source;
|
||||
resources = resourceColl;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,18 @@
|
||||
import 'package:calendar_date_picker2/calendar_date_picker2.dart';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonBottomNavigationBar.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonTabBar.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Common/controller/MainScreen.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:syncfusion_flutter_calendar/calendar.dart';
|
||||
|
||||
class CalenderTab extends StatefulWidget {
|
||||
const CalenderTab({super.key});
|
||||
@@ -51,10 +53,59 @@ class _CalenderTabState extends State<CalenderTab> {
|
||||
},
|
||||
];
|
||||
|
||||
CalendarController? _sessionCalController;
|
||||
CalendarController? _comCalController;
|
||||
List<Appointment>? _appointments;
|
||||
// final List<String> _nameCollection = <String>[];
|
||||
// final List<String> _userImages = <String>[];
|
||||
// DateTime? _startDate;
|
||||
// DateTime? _endDate;
|
||||
// bool _isRangeSelection = false;
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_sessionCalController = CalendarController();
|
||||
_comCalController = CalendarController();
|
||||
|
||||
_appointments = <Appointment>[
|
||||
Appointment(
|
||||
startTime: DateTime(2024, 6, 26, 9, 0),
|
||||
endTime: DateTime(2024, 6, 26, 10, 30),
|
||||
subject: 'Development Meeting',
|
||||
color: Color(0XFFFC571D)),
|
||||
Appointment(
|
||||
startTime: DateTime(2024, 6, 26, 18, 0),
|
||||
endTime: DateTime(2024, 6, 26, 18, 30),
|
||||
subject: 'GeneralMeeting',
|
||||
color: Color(0xFF8B1FA9)),
|
||||
Appointment(
|
||||
startTime: DateTime(2024, 6, 28, 9, 0),
|
||||
endTime: DateTime(2024, 6, 28, 10, 30),
|
||||
subject: 'Lunch',
|
||||
),
|
||||
Appointment(
|
||||
startTime: DateTime(2024, 6, 25, 10, 0),
|
||||
endTime: DateTime(2024, 6, 25, 10, 30),
|
||||
subject: 'Meeting',
|
||||
),
|
||||
Appointment(
|
||||
startTime: DateTime.now(),
|
||||
endTime: DateTime.now().add(Duration(hours: 3)),
|
||||
subject: 'Match day',
|
||||
),
|
||||
Appointment(
|
||||
startTime: DateTime.now(),
|
||||
endTime: DateTime.now().add(Duration(hours: 3)),
|
||||
subject: 'Muharram/Ashura',
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
DateTime selectedDate = DateTime.now();
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
@@ -113,15 +164,17 @@ class _CalenderTabState extends State<CalenderTab> {
|
||||
],
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Stack(children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 16),
|
||||
child: Column(children: [
|
||||
DefaultTabController(
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(vertical: 16),
|
||||
child: Column(children: [
|
||||
Expanded(
|
||||
child: DefaultTabController(
|
||||
length: 2,
|
||||
// initialIndex: selectedIndex.value,
|
||||
child: Column(
|
||||
@@ -134,8 +187,7 @@ class _CalenderTabState extends State<CalenderTab> {
|
||||
text: 'Community session',
|
||||
),
|
||||
]),
|
||||
SizedBox(
|
||||
height: 600.h,
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
children: [
|
||||
MySessionsTab(),
|
||||
@@ -143,11 +195,12 @@ class _CalenderTabState extends State<CalenderTab> {
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(90.h),
|
||||
],
|
||||
),
|
||||
),
|
||||
]))
|
||||
])
|
||||
),
|
||||
]))
|
||||
]),
|
||||
bottomNavigationBar: bottomnavigationbar(mainController),
|
||||
);
|
||||
@@ -193,50 +246,193 @@ class _CalenderTabState extends State<CalenderTab> {
|
||||
border: 1),
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
commonGlassContainer(
|
||||
Stack(children: [
|
||||
commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 314.h,
|
||||
height: 500.h,
|
||||
borderradius: 1,
|
||||
customWidget: CalendarDatePicker2(
|
||||
config: CalendarDatePicker2Config(
|
||||
calendarType: CalendarDatePicker2Type.range,
|
||||
weekdayLabels: [
|
||||
'Sun',
|
||||
'Mon',
|
||||
'Tue',
|
||||
'Wed',
|
||||
'Thu',
|
||||
'Fri',
|
||||
'Sat'
|
||||
border: 0,
|
||||
customWidget: SfCalendar(
|
||||
view: CalendarView.month,
|
||||
appointmentTextStyle: TextStyle(color: Colors.white),
|
||||
headerStyle: CalendarHeaderStyle(
|
||||
textStyle: TextStyle(
|
||||
color: Color(0xFFD90B2E),
|
||||
)),
|
||||
// blackoutDatesTextStyle: TextStyle(color: Colors.white),
|
||||
|
||||
weekNumberStyle: WeekNumberStyle(
|
||||
textStyle: TextStyle(color: Colors.white)),
|
||||
viewHeaderStyle: ViewHeaderStyle(
|
||||
// backgroundColor: Colors.amber,
|
||||
dateTextStyle: TextStyle(color: Colors.white),
|
||||
dayTextStyle: TextStyle(
|
||||
color: Color(0xFFD90B2E),
|
||||
),
|
||||
),
|
||||
// blackoutDatesTextStyle: TextStyle(color: Colors.white),
|
||||
// selectionDecoration: BoxDecoration(color: Colors.amber),
|
||||
backgroundColor: Colors.transparent,
|
||||
// firstDayOfWeek: 3,
|
||||
cellBorderColor: Colors.white,
|
||||
todayHighlightColor: Color(0xFFD90B2E),
|
||||
todayTextStyle: const TextStyle(color: Colors.white),
|
||||
controller: _sessionCalController,
|
||||
showNavigationArrow: true,
|
||||
allowViewNavigation: true,
|
||||
allowDragAndDrop: true,
|
||||
showDatePickerButton: true,
|
||||
monthViewSettings: MonthViewSettings(
|
||||
navigationDirection: MonthNavigationDirection.horizontal,
|
||||
),
|
||||
allowedViews: [
|
||||
CalendarView.month,
|
||||
// CalendarView.day,
|
||||
CalendarView.schedule,
|
||||
],
|
||||
selectedYearTextStyle: TextStyle(color: Colors.white),
|
||||
yearTextStyle: TextStyle(color: Colors.white),
|
||||
selectedDayHighlightColor: Color(0xFFD90B2E),
|
||||
controlsTextStyle: TextStyle(color: Colors.white),
|
||||
dayTextStyle: TextStyle(color: Colors.white),
|
||||
monthTextStyle: TextStyle(color: Colors.white),
|
||||
weekdayLabelTextStyle: TextStyle(color: Colors.white),
|
||||
nextMonthIcon: Icon(
|
||||
Icons.arrow_forward_ios,
|
||||
color: Colors.white,
|
||||
viewNavigationMode: ViewNavigationMode.snap,
|
||||
showCurrentTimeIndicator: true,
|
||||
dataSource: MeetingDataSource(_appointments!),
|
||||
onTap: calendarTapped,
|
||||
timeSlotViewSettings: TimeSlotViewSettings(
|
||||
// minimumAppointmentDuration: Duration(hours: 5),
|
||||
timeTextStyle: TextStyle(
|
||||
color: Colors.white,
|
||||
),
|
||||
timelineAppointmentHeight: 60.h,
|
||||
// timeIntervalWidth: 100,
|
||||
|
||||
// timeIntervalHeight: 50,
|
||||
timeIntervalWidth: 70,
|
||||
),
|
||||
lastMonthIcon: Icon(
|
||||
Icons.arrow_back_ios_new,
|
||||
color: Colors.white,
|
||||
monthCellBuilder: (context, details) {
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.transparent,
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
details.date.day.toString(),
|
||||
style: TextStyle(
|
||||
color: Colors.white), // Set text color to white
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
resourceViewSettings: ResourceViewSettings(
|
||||
displayNameTextStyle:
|
||||
TextStyle(color: Colors.white, fontSize: 10),
|
||||
showAvatar: true,
|
||||
),
|
||||
),
|
||||
value: [selectedDate],
|
||||
),
|
||||
border: 0.9),
|
||||
// scheduleViewSettings: ScheduleViewSettings(
|
||||
// appointmentTextStyle: TextStyle(color: Colors.red)),
|
||||
|
||||
scheduleViewSettings: ScheduleViewSettings(
|
||||
placeholderTextStyle: TextStyle(color: Colors.white),
|
||||
dayHeaderSettings: DayHeaderSettings(
|
||||
dateTextStyle: TextStyle(color: Colors.white),
|
||||
dayTextStyle: TextStyle(color: Colors.white),
|
||||
)),
|
||||
appointmentBuilder: (context, details) {
|
||||
final Appointment appointment = details.appointments.first;
|
||||
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: details.appointments.first.color ?? Colors.blue,
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
appointment.subject,
|
||||
style: TextStyle(
|
||||
color: Colors.white, fontSize: 8.sp),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}),
|
||||
),
|
||||
Positioned(
|
||||
top: 6.h,
|
||||
left: 100.w,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.availability);
|
||||
},
|
||||
child: Container(
|
||||
height: 25.h,
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(
|
||||
color: Color(0xFFD90B2E),
|
||||
),
|
||||
borderRadius: BorderRadius.circular(15.r)),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 10.w,
|
||||
),
|
||||
child:
|
||||
Center(child: text10400white("view availability")),
|
||||
),
|
||||
)
|
||||
|
||||
// Image.asset(
|
||||
// "assets/images/png/calender.png",
|
||||
// color: Colors.blue,
|
||||
// height: 18.h,
|
||||
// width: 18.w,
|
||||
// ),
|
||||
))
|
||||
]),
|
||||
|
||||
// commonGlassContainer(
|
||||
// width: double.infinity,
|
||||
// height: 314.h,
|
||||
// borderradius: 1,
|
||||
// customWidget: CalendarDatePicker2(
|
||||
// config: CalendarDatePicker2Config(
|
||||
// calendarType: CalendarDatePicker2Type.range,
|
||||
// weekdayLabels: [
|
||||
// 'Sun',
|
||||
// 'Mon',
|
||||
// 'Tue',
|
||||
// 'Wed',
|
||||
// 'Thu',
|
||||
// 'Fri',
|
||||
// 'Sat'
|
||||
// ],
|
||||
// selectedYearTextStyle: TextStyle(color: Colors.white),
|
||||
// yearTextStyle: TextStyle(color: Colors.white),
|
||||
// selectedDayHighlightColor: Color(0xFFD90B2E),
|
||||
// controlsTextStyle: TextStyle(color: Colors.white),
|
||||
// dayTextStyle: TextStyle(color: Colors.white),
|
||||
// monthTextStyle: TextStyle(color: Colors.white),
|
||||
// weekdayLabelTextStyle: TextStyle(color: Colors.white),
|
||||
// nextMonthIcon: Icon(
|
||||
// Icons.arrow_forward_ios,
|
||||
// color: Colors.white,
|
||||
// ),
|
||||
// lastMonthIcon: Icon(
|
||||
// Icons.arrow_back_ios_new,
|
||||
// color: Colors.white,
|
||||
// ),
|
||||
// ),
|
||||
// value: [selectedDate],
|
||||
// ),
|
||||
// border: 0.9),
|
||||
sizedBoxHeight(25.h),
|
||||
Column(
|
||||
children: List.generate(3, (index) {
|
||||
return sessionCard(
|
||||
imagePath: sessionData[index]["imagePath"],
|
||||
names: sessionData[index]["names"],
|
||||
title: sessionData[index]["title"]);
|
||||
}),
|
||||
)
|
||||
// Column(
|
||||
// children: List.generate(3, (index) {
|
||||
// return sessionCard(
|
||||
// imagePath: sessionData[index]["imagePath"],
|
||||
// names: sessionData[index]["names"],
|
||||
// title: sessionData[index]["title"]);
|
||||
// }),
|
||||
// )
|
||||
],
|
||||
),
|
||||
);
|
||||
@@ -350,204 +546,309 @@ class _CalenderTabState extends State<CalenderTab> {
|
||||
return SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: CustomTextFormField(
|
||||
leadingIcon: SizedBox(
|
||||
height: 23,
|
||||
width: 23,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/ion_search-outline.png",
|
||||
height: 23,
|
||||
width: 23,
|
||||
),
|
||||
),
|
||||
),
|
||||
hintText: "Search community sessions",
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 136.h,
|
||||
borderradius: 10.r,
|
||||
customWidget: Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 16.w),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
SizedBox(
|
||||
width: 171.w,
|
||||
child: text14w400_FCFCFC(
|
||||
"Are you looking for resources ? We might have a solution"),
|
||||
),
|
||||
sizedBoxHeight(12.h),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.resourcepool);
|
||||
},
|
||||
child: text16w700_FCFCFCline("View resources"))
|
||||
],
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset("assets/images/png/Rectangle 45.png")
|
||||
],
|
||||
),
|
||||
border: 1),
|
||||
),
|
||||
sizedBoxHeight(25.h),
|
||||
commonGlassContainer(
|
||||
|
||||
Stack(children: [
|
||||
commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 314.h,
|
||||
height: 530.h,
|
||||
borderradius: 1,
|
||||
customWidget: CalendarDatePicker2(
|
||||
config: CalendarDatePicker2Config(
|
||||
calendarType: CalendarDatePicker2Type.range,
|
||||
weekdayLabels: [
|
||||
'Sun',
|
||||
'Mon',
|
||||
'Tue',
|
||||
'Wed',
|
||||
'Thu',
|
||||
'Fri',
|
||||
'Sat'
|
||||
border: 0,
|
||||
customWidget: SfCalendar(
|
||||
view: CalendarView.month,
|
||||
appointmentTextStyle: TextStyle(color: Colors.white),
|
||||
headerStyle: CalendarHeaderStyle(
|
||||
textStyle: TextStyle(
|
||||
color: Color(0xFFD90B2E),
|
||||
)),
|
||||
// blackoutDatesTextStyle: TextStyle(color: Colors.white),
|
||||
|
||||
weekNumberStyle: WeekNumberStyle(
|
||||
textStyle: TextStyle(color: Colors.white)),
|
||||
viewHeaderStyle: ViewHeaderStyle(
|
||||
// backgroundColor: Colors.amber,
|
||||
dateTextStyle: TextStyle(color: Colors.white),
|
||||
dayTextStyle: TextStyle(
|
||||
color: Color(0xFFD90B2E),
|
||||
),
|
||||
),
|
||||
// blackoutDatesTextStyle: TextStyle(color: Colors.white),
|
||||
// selectionDecoration: BoxDecoration(color: Colors.amber),
|
||||
backgroundColor: Colors.transparent,
|
||||
// firstDayOfWeek: 3,
|
||||
cellBorderColor: Colors.white,
|
||||
todayHighlightColor: Color(0xFFD90B2E),
|
||||
todayTextStyle: const TextStyle(color: Colors.white),
|
||||
controller: _comCalController,
|
||||
showNavigationArrow: true,
|
||||
allowViewNavigation: true,
|
||||
allowDragAndDrop: true,
|
||||
showDatePickerButton: true,
|
||||
monthViewSettings: MonthViewSettings(
|
||||
navigationDirection: MonthNavigationDirection.horizontal,
|
||||
),
|
||||
allowedViews: [
|
||||
CalendarView.month,
|
||||
// CalendarView.day,
|
||||
CalendarView.schedule,
|
||||
],
|
||||
selectedYearTextStyle: TextStyle(color: Colors.white),
|
||||
yearTextStyle: TextStyle(color: Colors.white),
|
||||
selectedDayHighlightColor: Color(0xFFD90B2E),
|
||||
controlsTextStyle: TextStyle(color: Colors.white),
|
||||
dayTextStyle: TextStyle(color: Colors.white),
|
||||
monthTextStyle: TextStyle(color: Colors.white),
|
||||
weekdayLabelTextStyle: TextStyle(color: Colors.white),
|
||||
nextMonthIcon: Icon(
|
||||
Icons.arrow_forward_ios,
|
||||
color: Colors.white,
|
||||
viewNavigationMode: ViewNavigationMode.snap,
|
||||
showCurrentTimeIndicator: true,
|
||||
dataSource: MeetingDataSource(_appointments!),
|
||||
onTap: calendarTapped,
|
||||
timeSlotViewSettings: TimeSlotViewSettings(
|
||||
// minimumAppointmentDuration: Duration(hours: 5),
|
||||
timeTextStyle: TextStyle(
|
||||
color: Colors.white,
|
||||
),
|
||||
timelineAppointmentHeight: 60.h,
|
||||
// timeIntervalWidth: 100,
|
||||
|
||||
// timeIntervalHeight: 50,
|
||||
timeIntervalWidth: 70,
|
||||
),
|
||||
lastMonthIcon: Icon(
|
||||
Icons.arrow_back_ios_new,
|
||||
color: Colors.white,
|
||||
monthCellBuilder: (context, details) {
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.transparent,
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
details.date.day.toString(),
|
||||
style: TextStyle(
|
||||
color: Colors.white), // Set text color to white
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
resourceViewSettings: ResourceViewSettings(
|
||||
displayNameTextStyle:
|
||||
TextStyle(color: Colors.white, fontSize: 10),
|
||||
showAvatar: true,
|
||||
),
|
||||
),
|
||||
value: [selectedDate],
|
||||
),
|
||||
border: 0.9),
|
||||
appointmentBuilder: (context, details) {
|
||||
final Appointment appointment = details.appointments.first;
|
||||
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: details.appointments.first.color ?? Colors.blue,
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
appointment.subject,
|
||||
style: TextStyle(
|
||||
color: Colors.white, fontSize: 8.sp),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}),
|
||||
),
|
||||
]),
|
||||
|
||||
// SfCalendar(
|
||||
// view: CalendarView.month,
|
||||
// controller: _calendarController,
|
||||
// onSelectionChanged: (CalendarSelectionDetails details) {
|
||||
// setState(() {
|
||||
// _startDate = details.date!;
|
||||
// _endDate = details.date!
|
||||
// .add(Duration(days: 6)); // assuming a week range
|
||||
// });
|
||||
// },
|
||||
// monthViewSettings: MonthViewSettings(
|
||||
// showAgenda: true,
|
||||
// ),
|
||||
// ),
|
||||
|
||||
// commonGlassContainer(
|
||||
// width: double.infinity,
|
||||
// height: 314.h,
|
||||
// borderradius: 1,
|
||||
// customWidget: CalendarDatePicker2(
|
||||
// config: CalendarDatePicker2Config(
|
||||
// calendarType: CalendarDatePicker2Type.range,
|
||||
// weekdayLabels: [
|
||||
// 'Sun',
|
||||
// 'Mon',
|
||||
// 'Tue',
|
||||
// 'Wed',
|
||||
// 'Thu',
|
||||
// 'Fri',
|
||||
// 'Sat'
|
||||
// ],
|
||||
// selectedYearTextStyle: TextStyle(color: Colors.white),
|
||||
// yearTextStyle: TextStyle(color: Colors.white),
|
||||
// selectedDayHighlightColor: Color(0xFFD90B2E),
|
||||
// controlsTextStyle: TextStyle(color: Colors.white),
|
||||
// dayTextStyle: TextStyle(color: Colors.white),
|
||||
// monthTextStyle: TextStyle(color: Colors.white),
|
||||
// weekdayLabelTextStyle: TextStyle(color: Colors.white),
|
||||
// nextMonthIcon: Icon(
|
||||
// Icons.arrow_forward_ios,
|
||||
// color: Colors.white,
|
||||
// ),
|
||||
// lastMonthIcon: Icon(
|
||||
// Icons.arrow_back_ios_new,
|
||||
// color: Colors.white,
|
||||
// ),
|
||||
// ),
|
||||
// value: [selectedDate],
|
||||
// ),
|
||||
// border: 0.9),
|
||||
sizedBoxHeight(25.h),
|
||||
Column(
|
||||
children: List.generate(communityData.length, (index) {
|
||||
return communitysessionCard(
|
||||
imagePath: communityData[index]["imagePath"],
|
||||
names: communityData[index]["names"],
|
||||
title: communityData[index]["title"]);
|
||||
}),
|
||||
)
|
||||
// Column(
|
||||
// children: List.generate(communityData.length, (index) {
|
||||
// return communitysessionCard(
|
||||
// imagePath: communityData[index]["imagePath"],
|
||||
// names: communityData[index]["names"],
|
||||
// title: communityData[index]["title"]);
|
||||
// }),
|
||||
// )
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Widget communitysessionCard({
|
||||
required String title,
|
||||
required String imagePath,
|
||||
required String names,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text18w700_FCFCFC(title),
|
||||
sizedBoxHeight(25.h),
|
||||
commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 290.h,
|
||||
borderradius: 10.r,
|
||||
customWidget: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
height: 151.h,
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.only(
|
||||
topRight: Radius.circular(10.r),
|
||||
topLeft: Radius.circular(10.r))),
|
||||
child: Image.asset(
|
||||
imagePath,
|
||||
fit: BoxFit.cover,
|
||||
)),
|
||||
Row(
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(16.h),
|
||||
Row(
|
||||
children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/calender.png",
|
||||
color: Colors.white.withOpacity(0.8),
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text10w400_FCFCFC_blur("29th april 2024"),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(15.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 16.w),
|
||||
child: text18w700_FCFCFC(names),
|
||||
),
|
||||
sizedBoxHeight(15.h),
|
||||
Row(
|
||||
children: [
|
||||
sizedBoxWidth(16.w),
|
||||
CircleAvatar(
|
||||
radius: 12.r,
|
||||
backgroundImage: AssetImage(
|
||||
"assets/images/png/Ellipse 52.png"),
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text14w400_FCFCFC("Ryan dorwat"),
|
||||
],
|
||||
),
|
||||
]),
|
||||
Spacer(),
|
||||
Container(
|
||||
height: 138.h,
|
||||
width: 143.w,
|
||||
Widget communitysessionCard({
|
||||
required String title,
|
||||
required String imagePath,
|
||||
required String names,
|
||||
}) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text18w700_FCFCFC(title),
|
||||
sizedBoxHeight(25.h),
|
||||
commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 290.h,
|
||||
borderradius: 10.r,
|
||||
customWidget: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
height: 151.h,
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
borderRadius: BorderRadius.only(
|
||||
bottomRight: Radius.circular(10.r),
|
||||
borderRadius: BorderRadius.only(
|
||||
topRight: Radius.circular(10.r),
|
||||
topLeft: Radius.circular(10.r))),
|
||||
child: Image.asset(
|
||||
imagePath,
|
||||
fit: BoxFit.cover,
|
||||
)),
|
||||
Row(
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(16.h),
|
||||
Row(
|
||||
children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/calender.png",
|
||||
color: Colors.white.withOpacity(0.8),
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text10w400_FCFCFC_blur("29th april 2024"),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(15.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 16.w),
|
||||
child: text18w700_FCFCFC(names),
|
||||
),
|
||||
sizedBoxHeight(15.h),
|
||||
Row(
|
||||
children: [
|
||||
sizedBoxWidth(16.w),
|
||||
CircleAvatar(
|
||||
radius: 12.r,
|
||||
backgroundImage: AssetImage(
|
||||
"assets/images/png/Ellipse 52.png"),
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text14w400_FCFCFC("Ryan dorwat"),
|
||||
],
|
||||
),
|
||||
]),
|
||||
Spacer(),
|
||||
Container(
|
||||
height: 138.h,
|
||||
width: 143.w,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
borderRadius: BorderRadius.only(
|
||||
bottomRight: Radius.circular(10.r),
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
text25700FCFCFC("14"),
|
||||
text16w700_FCFCFCblur("April 2024"),
|
||||
sizedBoxHeight(12.h),
|
||||
text16w700_FCFCFC("3:00 pm")
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
text25700FCFCFC("14"),
|
||||
text16w700_FCFCFCblur("April 2024"),
|
||||
sizedBoxHeight(12.h),
|
||||
text16w700_FCFCFC("3:00 pm")
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
border: 1)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void calendarTapped(CalendarTapDetails details) {
|
||||
if (details.targetElement == CalendarElement.appointment) {
|
||||
Appointment appointment = details.appointments![0];
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: Text('Event Details'),
|
||||
content: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
Text('Event: ${appointment.subject}'),
|
||||
Text('From: ${appointment.startTime}'),
|
||||
Text('To: ${appointment.endTime}'),
|
||||
],
|
||||
),
|
||||
border: 1)
|
||||
],
|
||||
),
|
||||
);
|
||||
actions: <Widget>[
|
||||
ElevatedButton(
|
||||
child: Text('Close'),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MeetingDataSource extends CalendarDataSource {
|
||||
MeetingDataSource(
|
||||
List<Appointment> source,
|
||||
) {
|
||||
appointments = source;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ class _EventDetailsState extends State<EventDetails> {
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "",
|
||||
customActionWidget: Row(
|
||||
@@ -64,12 +65,12 @@ class _EventDetailsState extends State<EventDetails> {
|
||||
),
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
), SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
Padding(
|
||||
@@ -361,7 +362,7 @@ class _EventDetailsState extends State<EventDetails> {
|
||||
),
|
||||
),
|
||||
],
|
||||
)))
|
||||
))
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ import 'package:get/get.dart';
|
||||
import 'package:glassmorphism/glassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.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';
|
||||
@@ -62,6 +62,7 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Manage members",
|
||||
customActionWidget: InkWell(
|
||||
@@ -88,15 +89,16 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
),
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(10.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
@@ -133,7 +135,7 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
);
|
||||
},
|
||||
),
|
||||
])))
|
||||
]))
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -191,6 +193,8 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
commonGlassContainer(
|
||||
width: 25.w,
|
||||
height: 25.h,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
borderradius: 100.r,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
@@ -204,6 +208,8 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
commonGlassContainer(
|
||||
width: 25.w,
|
||||
height: 25.h,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
borderradius: 100.r,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
@@ -354,7 +360,7 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
Color(0xFFD90B2E),
|
||||
],
|
||||
),
|
||||
blur: 10,
|
||||
blur: 6,
|
||||
child: Center(child: text16w400_FCFCFC("Su")),
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
@@ -369,5 +375,4 @@ class _ManageMembersCalState extends State<ManageMembersCal> {
|
||||
),
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.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';
|
||||
@@ -47,13 +47,14 @@ class _ResourcePoolState extends State<ResourcePool> {
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Resource pool",
|
||||
),
|
||||
resizeToAvoidBottomInset: false,
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: Padding(
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
), Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(10.h),
|
||||
@@ -85,7 +86,7 @@ class _ResourcePoolState extends State<ResourcePool> {
|
||||
),
|
||||
)
|
||||
]),
|
||||
))
|
||||
)
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -281,4 +282,6 @@ class _ResourcePoolState extends State<ResourcePool> {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -37,158 +37,159 @@ class _SetAvailabillityState extends State<SetAvailabillity> {
|
||||
// key: _scaffoldKey1,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Set availability",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(10.h),
|
||||
text16400white("Select event type"),
|
||||
sizedBoxHeight(15.h),
|
||||
CommonDropdownBtn(hint: "", items: []),
|
||||
sizedBoxHeight(18.h),
|
||||
text16400white("Select sport"),
|
||||
sizedBoxHeight(15.h),
|
||||
CommonDropdownBtn(hint: "", items: []),
|
||||
sizedBoxHeight(18.h),
|
||||
text16400white("Select role "),
|
||||
sizedBoxHeight(15.h),
|
||||
CommonDropdownBtn(hint: "", items: []),
|
||||
sizedBoxHeight(18.h),
|
||||
text16400white("Space selection"),
|
||||
sizedBoxHeight(15.h),
|
||||
CommonDropdownBtn(hint: "", items: []),
|
||||
sizedBoxHeight(18.h),
|
||||
Row(
|
||||
children: [
|
||||
sizedBoxHeight(10.h),
|
||||
text16400white("Select event type"),
|
||||
sizedBoxHeight(15.h),
|
||||
CommonDropdownBtn(hint: "", items: []),
|
||||
sizedBoxHeight(18.h),
|
||||
text16400white("Select sport"),
|
||||
sizedBoxHeight(15.h),
|
||||
CommonDropdownBtn(hint: "", items: []),
|
||||
sizedBoxHeight(18.h),
|
||||
text16400white("Select role "),
|
||||
sizedBoxHeight(15.h),
|
||||
CommonDropdownBtn(hint: "", items: []),
|
||||
sizedBoxHeight(18.h),
|
||||
text16400white("Space selection"),
|
||||
sizedBoxHeight(15.h),
|
||||
CommonDropdownBtn(hint: "", items: []),
|
||||
sizedBoxHeight(18.h),
|
||||
Row(
|
||||
text16w400_white("Availability"),
|
||||
Spacer(),
|
||||
Transform.scale(
|
||||
scaleY: 1,
|
||||
child: CupertinoSwitch(
|
||||
value: swichvalue,
|
||||
trackColor: Colors.white.withOpacity(0.4),
|
||||
activeColor: Color(0xFF3192D8),
|
||||
onChanged: (bool? value) {
|
||||
setState(() {
|
||||
swichvalue = value ?? false;
|
||||
});
|
||||
}))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
text16400white("Select days"),
|
||||
sizedBoxHeight(15.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
commondayContainer(text: "M", index: 1),
|
||||
commondayContainer(text: "Tu", index: 2),
|
||||
commondayContainer(text: "W", index: 3),
|
||||
commondayContainer(text: "Th", index: 4),
|
||||
commondayContainer(text: "F", index: 5),
|
||||
commondayContainer(text: "Sa", index: 6),
|
||||
commondayContainer(text: "Su", index: 7),
|
||||
// GlassmorphicContainer(
|
||||
// width: 40.w,
|
||||
// height: 40.h,
|
||||
// borderRadius: 100,
|
||||
// blur: 10,
|
||||
// alignment: Alignment.topCenter,
|
||||
// border: 0.5,
|
||||
// linearGradient: LinearGradient(
|
||||
// begin: Alignment.topLeft,
|
||||
// end: Alignment.bottomRight,
|
||||
// colors: [
|
||||
// Color(0xFFD90B2E).withOpacity(0.18),
|
||||
// const Color(0xFFD90B2E).withOpacity(0.4),
|
||||
// ],
|
||||
// stops: const [
|
||||
// 0.1,
|
||||
// 1,
|
||||
// ],
|
||||
// ),
|
||||
// borderGradient: LinearGradient(
|
||||
// begin: Alignment.topLeft,
|
||||
// end: Alignment.bottomRight,
|
||||
// colors: [
|
||||
// Color(0xffD90B2E),
|
||||
// Color(0xFFD90B2E),
|
||||
// ],
|
||||
// ),
|
||||
// child: Center(child: text16w400_FCFCFC("Su")),
|
||||
// ),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Row(
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16w400_white("Availability"),
|
||||
Spacer(),
|
||||
Transform.scale(
|
||||
scaleY: 1,
|
||||
child: CupertinoSwitch(
|
||||
value: swichvalue,
|
||||
trackColor:
|
||||
Colors.white.withOpacity(0.4),
|
||||
activeColor: Color(0xFF3192D8),
|
||||
onChanged: (bool? value) {
|
||||
setState(() {
|
||||
swichvalue = value ?? false;
|
||||
});
|
||||
}))
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
text16400white("Select days"),
|
||||
sizedBoxHeight(15.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
commondayContainer(text: "M", index: 1),
|
||||
commondayContainer(text: "Tu", index: 2),
|
||||
commondayContainer(text: "W", index: 3),
|
||||
commondayContainer(text: "Th", index: 4),
|
||||
commondayContainer(text: "F", index: 5),
|
||||
commondayContainer(text: "Sa", index: 6),
|
||||
commondayContainer(text: "Su", index: 7),
|
||||
// GlassmorphicContainer(
|
||||
// width: 40.w,
|
||||
// height: 40.h,
|
||||
// borderRadius: 100,
|
||||
// blur: 10,
|
||||
// alignment: Alignment.topCenter,
|
||||
// border: 0.5,
|
||||
// linearGradient: LinearGradient(
|
||||
// begin: Alignment.topLeft,
|
||||
// end: Alignment.bottomRight,
|
||||
// colors: [
|
||||
// Color(0xFFD90B2E).withOpacity(0.18),
|
||||
// const Color(0xFFD90B2E).withOpacity(0.4),
|
||||
// ],
|
||||
// stops: const [
|
||||
// 0.1,
|
||||
// 1,
|
||||
// ],
|
||||
// ),
|
||||
// borderGradient: LinearGradient(
|
||||
// begin: Alignment.topLeft,
|
||||
// end: Alignment.bottomRight,
|
||||
// colors: [
|
||||
// Color(0xffD90B2E),
|
||||
// Color(0xFFD90B2E),
|
||||
// ],
|
||||
// ),
|
||||
// child: Center(child: text16w400_FCFCFC("Su")),
|
||||
// ),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Row(
|
||||
children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white("Start time"),
|
||||
sizedBoxHeight(14.h),
|
||||
commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/clock.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white("3:00 pm")
|
||||
]),
|
||||
text16400white("Start time"),
|
||||
sizedBoxHeight(14.h),
|
||||
commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/clock.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
border: 1)
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white("End time"),
|
||||
sizedBoxHeight(14.h),
|
||||
commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/clock.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white("5:00 pm")
|
||||
]),
|
||||
),
|
||||
border: 1)
|
||||
],
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white("3:00 pm")
|
||||
]),
|
||||
),
|
||||
border: 1)
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
CommonBtn(text: "Send"),
|
||||
sizedBoxHeight(30.h),
|
||||
]))))
|
||||
Spacer(),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white("End time"),
|
||||
sizedBoxHeight(14.h),
|
||||
commonGlassContainer(
|
||||
width: 174.w,
|
||||
height: 50.h,
|
||||
borderradius: 30.r,
|
||||
customWidget: Center(
|
||||
child: Row(children: [
|
||||
sizedBoxWidth(16.w),
|
||||
Image.asset(
|
||||
"assets/images/png/clock.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
),
|
||||
sizedBoxWidth(8.w),
|
||||
text16w400_white("5:00 pm")
|
||||
]),
|
||||
),
|
||||
border: 1)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
CommonBtn(text: "Send"),
|
||||
sizedBoxHeight(30.h),
|
||||
])))
|
||||
]));
|
||||
}
|
||||
|
||||
|
||||
@@ -117,7 +117,7 @@ class _ChatsMainScreenState extends State<ChatsMainScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||
child: Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
key: _scaffoldKey1,
|
||||
@@ -149,71 +149,64 @@ class _ChatsMainScreenState extends State<ChatsMainScreen> {
|
||||
child: Image.asset('assets/images/png/editicon.png')),
|
||||
)
|
||||
],
|
||||
bottom: PreferredSize(
|
||||
preferredSize: Size.fromHeight(90),
|
||||
child: Column(
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: CustomTextFormField(
|
||||
textEditingController: searchcontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Search chats",
|
||||
leadingIcon: 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(),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
// bottom: PreferredSize(
|
||||
// preferredSize: Size.fromHeight(90),
|
||||
// child:
|
||||
// ),
|
||||
),
|
||||
body: Stack(
|
||||
children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Stack(
|
||||
children: [
|
||||
SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
vertical: 0,
|
||||
),
|
||||
child: Column(children: [
|
||||
DefaultTabController(
|
||||
length: 3,
|
||||
// initialIndex: selectedIndex.value,
|
||||
child: Column(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: MyTabBar(),
|
||||
),
|
||||
SizedBox(
|
||||
height: 600.h,
|
||||
child: TabBarView(
|
||||
children: [feedTab(), clubsTab(), teamsTab()],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
Column(children: [
|
||||
Column(
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: CustomTextFormField(
|
||||
textEditingController: searchcontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Search chats",
|
||||
leadingIcon: 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(25.h)
|
||||
],
|
||||
),
|
||||
Expanded(
|
||||
child: DefaultTabController(
|
||||
length: 3,
|
||||
// initialIndex: selectedIndex.value,
|
||||
child: Column(
|
||||
children: [
|
||||
MyTabBar(),
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
children: [feedTab(), clubsTab(), teamsTab()],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
])
|
||||
],
|
||||
),
|
||||
bottomNavigationBar: bottomnavigationbar(mainController),
|
||||
@@ -225,6 +218,7 @@ class _ChatsMainScreenState extends State<ChatsMainScreen> {
|
||||
return SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
ListView.separated(
|
||||
separatorBuilder: (context, index) {
|
||||
return Divider(
|
||||
@@ -264,6 +258,7 @@ class _ChatsMainScreenState extends State<ChatsMainScreen> {
|
||||
return SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
ListView.separated(
|
||||
separatorBuilder: (context, index) {
|
||||
return Divider(
|
||||
@@ -298,6 +293,7 @@ class _ChatsMainScreenState extends State<ChatsMainScreen> {
|
||||
return SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
ListView.separated(
|
||||
separatorBuilder: (context, index) {
|
||||
return Divider(
|
||||
@@ -488,12 +484,11 @@ class _ChatListState extends State<ChatList> {
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 5.h),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Stack(children: [
|
||||
Container(
|
||||
width: 55,
|
||||
height: 55,
|
||||
width: 55.w,
|
||||
height: 55.h,
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage(widget.imageurl),
|
||||
@@ -502,42 +497,42 @@ class _ChatListState extends State<ChatList> {
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
top: 40,
|
||||
left: 45,
|
||||
top: 40.h,
|
||||
left: 45.w,
|
||||
child: widget.activestatus == true
|
||||
? Container(
|
||||
width: 10,
|
||||
height: 10,
|
||||
width: 10.w,
|
||||
height: 10.h,
|
||||
decoration: ShapeDecoration(
|
||||
color: Color(0xFF32D74B),
|
||||
shape: OvalBorder(),
|
||||
),
|
||||
)
|
||||
: Container(
|
||||
width: 10,
|
||||
height: 10,
|
||||
width: 10.w,
|
||||
height: 10.h,
|
||||
decoration: ShapeDecoration(
|
||||
color: Color(0xFFFF453A),
|
||||
shape: OvalBorder(),
|
||||
)),
|
||||
)
|
||||
]),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 5),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white(widget.name),
|
||||
sizedBoxHeight(3.h),
|
||||
Row(
|
||||
children: [
|
||||
widget.isMessageRead == true
|
||||
? Image.asset(
|
||||
'assets/images/png/messagereadcheckmark.png')
|
||||
: Image.asset(
|
||||
'assets/images/png/messagedelivered.png'),
|
||||
sizedBoxWidth(5.w),
|
||||
Text(
|
||||
sizedBoxWidth(8.w),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16400white(widget.name),
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
widget.isMessageRead == true
|
||||
? Image.asset(
|
||||
'assets/images/png/messagereadcheckmark.png')
|
||||
: Image.asset('assets/images/png/messagedelivered.png'),
|
||||
sizedBoxWidth(5.w),
|
||||
SizedBox(
|
||||
width: 170.w,
|
||||
child: Text(
|
||||
widget.message,
|
||||
style: TextStyle(
|
||||
color: Color(0xCCFCFCFC),
|
||||
@@ -546,52 +541,49 @@ class _ChatListState extends State<ChatList> {
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 5),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
text12400white('Yesterday'),
|
||||
sizedBoxHeight(5.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
widget.ispinned == true
|
||||
? Image.asset('assets/images/png/pin.png')
|
||||
: SizedBox(
|
||||
width: 25,
|
||||
Spacer(),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
text12400white('Yesterday'),
|
||||
sizedBoxHeight(5.h),
|
||||
Row(
|
||||
children: [
|
||||
widget.ispinned == true
|
||||
? Image.asset('assets/images/png/pin.png')
|
||||
: SizedBox(
|
||||
width: 25,
|
||||
),
|
||||
sizedBoxWidth(3.w),
|
||||
widget.count == true
|
||||
? Container(
|
||||
width: 18,
|
||||
height: 18,
|
||||
decoration: ShapeDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
shape: OvalBorder(),
|
||||
),
|
||||
sizedBoxWidth(3.w),
|
||||
widget.count == true
|
||||
? Container(
|
||||
width: 18,
|
||||
height: 18,
|
||||
decoration: ShapeDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
shape: OvalBorder(),
|
||||
child: Text(
|
||||
'1',
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Color(0xFFFCFCFC),
|
||||
fontSize: 12.sp,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
child: Text(
|
||||
'1',
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Color(0xFFFCFCFC),
|
||||
fontSize: 12.sp,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
),
|
||||
)
|
||||
: SizedBox()
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
: SizedBox()
|
||||
],
|
||||
)
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
@@ -721,8 +713,8 @@ class _SecondChatListState extends State<SecondChatList> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
width: 55,
|
||||
height: 55,
|
||||
width: 55.w,
|
||||
height: 55.h,
|
||||
decoration: BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage(widget.imageurl),
|
||||
@@ -801,7 +793,6 @@ class _SecondChatListState extends State<SecondChatList> {
|
||||
// String message;
|
||||
// bool isMessageRead;
|
||||
|
||||
|
||||
// SecondChatList({
|
||||
// Key? key,
|
||||
// required this.name,
|
||||
|
||||
@@ -269,6 +269,8 @@ class _GroupChatPageState extends State<GroupChatPage> {
|
||||
border: 0.9,
|
||||
width: 40.w,
|
||||
height: 40.h,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
@@ -293,7 +295,7 @@ class _GroupChatPageState extends State<GroupChatPage> {
|
||||
image: DecorationImage(
|
||||
image:
|
||||
AssetImage("assets/images/png/groupchat.png"),
|
||||
fit: BoxFit.fill)),
|
||||
fit: BoxFit.cover)),
|
||||
),
|
||||
SizedBox(
|
||||
width: 12.w,
|
||||
@@ -348,16 +350,19 @@ class _GroupChatPageState extends State<GroupChatPage> {
|
||||
),
|
||||
body: Stack(
|
||||
children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
GlassmorphicContainer(
|
||||
width: MediaQuery.of(context).size.width,
|
||||
height:
|
||||
// 500.h,
|
||||
MediaQuery.of(context).size.height,
|
||||
borderRadius: 2,
|
||||
blur: 10,
|
||||
blur: 6,
|
||||
alignment: Alignment.bottomLeft,
|
||||
border: 2,
|
||||
linearGradient: LinearGradient(
|
||||
@@ -561,17 +566,17 @@ class _GroupChatPageState extends State<GroupChatPage> {
|
||||
Expanded(
|
||||
child: GlassmorphicContainer(
|
||||
width: double.infinity,
|
||||
height: 48.h,
|
||||
height: 50.h,
|
||||
borderRadius: 30.r,
|
||||
blur: 10,
|
||||
blur: 6,
|
||||
alignment: Alignment.bottomCenter,
|
||||
border: 0.8,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
const Color(0xFFffffff).withOpacity(0.50),
|
||||
const Color(0xFFFFFFFF).withOpacity(0.50),
|
||||
const Color(0xFFffffff).withOpacity(0.24),
|
||||
const Color(0xFFFFFFFF).withOpacity(0.24),
|
||||
],
|
||||
stops: [
|
||||
0.1,
|
||||
@@ -585,103 +590,107 @@ class _GroupChatPageState extends State<GroupChatPage> {
|
||||
Color(0xFF434A53),
|
||||
],
|
||||
),
|
||||
child: TextFormField(
|
||||
controller: messageController,
|
||||
inputFormatters: [
|
||||
RemoveEmojiInputFormatter(),
|
||||
],
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
),
|
||||
autovalidateMode:
|
||||
AutovalidateMode.onUserInteraction,
|
||||
decoration: InputDecoration(
|
||||
contentPadding: const EdgeInsets.all(10.0),
|
||||
filled: true,
|
||||
fillColor: Color(0XFF434A53),
|
||||
border: InputBorder.none,
|
||||
hintStyle: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color:
|
||||
Color(0XFFFCFCFC).withOpacity(0.80),
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica'),
|
||||
hintText: "Type your message",
|
||||
suffixIcon: messageController
|
||||
.text.isNotEmpty ||
|
||||
isImageAdded == true
|
||||
? GestureDetector(
|
||||
// onTap: () => _chatItemsAdd(),
|
||||
onTap: _sendMessage,
|
||||
// () {
|
||||
// setState(() {
|
||||
// // UploadData();
|
||||
// messageController.clear();
|
||||
// });
|
||||
// },
|
||||
// => UploadData(),
|
||||
child: Center(
|
||||
child: TextFormField(
|
||||
controller: messageController,
|
||||
inputFormatters: [
|
||||
RemoveEmojiInputFormatter(),
|
||||
],
|
||||
obscureText: false,
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
),
|
||||
autovalidateMode:
|
||||
AutovalidateMode.onUserInteraction,
|
||||
decoration: InputDecoration(
|
||||
contentPadding:
|
||||
const EdgeInsets.all(10.0),
|
||||
// filled: true,
|
||||
// fillColor: Color(0XFF434A53),
|
||||
border: InputBorder.none,
|
||||
hintStyle: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: Color(0XFFFCFCFC)
|
||||
.withOpacity(0.80),
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica'),
|
||||
hintText: "Type your message",
|
||||
suffixIcon: messageController
|
||||
.text.isNotEmpty ||
|
||||
isImageAdded == true
|
||||
? GestureDetector(
|
||||
// onTap: () => _chatItemsAdd(),
|
||||
onTap: _sendMessage,
|
||||
// () {
|
||||
// setState(() {
|
||||
// // UploadData();
|
||||
// messageController.clear();
|
||||
// });
|
||||
// },
|
||||
// => UploadData(),
|
||||
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
right: 8.w,
|
||||
top: 2.h,
|
||||
bottom: 2.h),
|
||||
child: Container(
|
||||
width: 45.w,
|
||||
height: 30.h,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
borderRadius:
|
||||
BorderRadius.circular(
|
||||
30.r)),
|
||||
child: Center(
|
||||
child: Icon(
|
||||
Icons.send_outlined,
|
||||
color: Colors.white,
|
||||
)
|
||||
// Text(
|
||||
// 'Send',
|
||||
// style: TextStyle(
|
||||
// color: Colors.white,
|
||||
// fontSize: 16.sp),
|
||||
// )
|
||||
)),
|
||||
),
|
||||
)
|
||||
: IconButton(
|
||||
onPressed: () {
|
||||
ImageUploadBottomSheet()
|
||||
.showModal(
|
||||
context,
|
||||
true,
|
||||
(result) {
|
||||
attachimage = result;
|
||||
var filenameresult =
|
||||
extractFileName(result);
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
right: 8.w,
|
||||
top: 2.h,
|
||||
bottom: 2.h),
|
||||
child: Container(
|
||||
width: 45.w,
|
||||
height: 30.h,
|
||||
decoration: BoxDecoration(
|
||||
color:
|
||||
Color(0xFFD90B2E),
|
||||
borderRadius:
|
||||
BorderRadius
|
||||
.circular(
|
||||
30.r)),
|
||||
child: Center(
|
||||
child: Icon(
|
||||
Icons.send_outlined,
|
||||
color: Colors.white,
|
||||
)
|
||||
// Text(
|
||||
// 'Send',
|
||||
// style: TextStyle(
|
||||
// color: Colors.white,
|
||||
// fontSize: 16.sp),
|
||||
// )
|
||||
)),
|
||||
),
|
||||
)
|
||||
: IconButton(
|
||||
onPressed: () {
|
||||
ImageUploadBottomSheet()
|
||||
.showModal(
|
||||
context,
|
||||
true,
|
||||
(result) {
|
||||
attachimage = result;
|
||||
var filenameresult =
|
||||
extractFileName(result);
|
||||
|
||||
messageController.text =
|
||||
filenameresult;
|
||||
setState(() {
|
||||
isImageAdded = true;
|
||||
});
|
||||
},
|
||||
);
|
||||
},
|
||||
icon: Icon(
|
||||
Icons.attach_file,
|
||||
color: Colors.white,
|
||||
size: 23.h,
|
||||
messageController.text =
|
||||
filenameresult;
|
||||
setState(() {
|
||||
isImageAdded = true;
|
||||
});
|
||||
},
|
||||
);
|
||||
},
|
||||
icon: Icon(
|
||||
Icons.attach_file,
|
||||
color: Colors.white,
|
||||
size: 23.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
minLines: 1,
|
||||
maxLines: 1,
|
||||
onChanged: (text) {
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
minLines: 1,
|
||||
maxLines: 1,
|
||||
onChanged: (text) {
|
||||
setState(() {
|
||||
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
@@ -71,154 +71,123 @@ class _NewChatPageState extends State<NewChatPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||
child: Scaffold(
|
||||
// backgroundColor: Color(0xFF222935),
|
||||
backgroundColor: Color.fromARGB(255, 18, 32, 47),
|
||||
|
||||
|
||||
appBar: CommonAppbar(titleTxt: 'New chat'),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
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: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: CustomTextFormField(
|
||||
textEditingController: searchcontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Search people",
|
||||
leadingIcon: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Icon(
|
||||
Icons.search,
|
||||
size: 35,
|
||||
color: Colors.white,
|
||||
),
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
ListView(children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: CustomTextFormField(
|
||||
textEditingController: searchcontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Search people",
|
||||
leadingIcon: 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(),
|
||||
),
|
||||
// validatorText: "Enter your full name",
|
||||
inputFormatters: [
|
||||
// LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter(),
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.newgrouppage);
|
||||
},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
width: 50,
|
||||
height: 50,
|
||||
decoration: ShapeDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage(
|
||||
'assets/images/png/chatgroup.png'),
|
||||
),
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment(0.71, -0.70),
|
||||
end: Alignment(-0.71, 0.7),
|
||||
colors: [
|
||||
Colors.white
|
||||
.withOpacity(0.30000001192092896),
|
||||
Colors.white
|
||||
.withOpacity(0.30000001192092896)
|
||||
],
|
||||
),
|
||||
shape: OvalBorder(
|
||||
side: BorderSide(
|
||||
width: 0.50, color: Color(0xFF434A53)),
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(10.w),
|
||||
text18w400white('New group')
|
||||
],
|
||||
),
|
||||
Image.asset('assets/images/png/arrow-left (2).png')
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.newgrouppage);
|
||||
},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
width: 50,
|
||||
height: 50,
|
||||
decoration: ShapeDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage(
|
||||
'assets/images/png/chatgroup.png'),
|
||||
),
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment(0.71, -0.70),
|
||||
end: Alignment(-0.71, 0.7),
|
||||
colors: [
|
||||
Colors.white.withOpacity(0.30000001192092896),
|
||||
Colors.white.withOpacity(0.30000001192092896)
|
||||
],
|
||||
),
|
||||
shape: OvalBorder(
|
||||
side: BorderSide(
|
||||
width: 0.50, color: Color(0xFF434A53)),
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(10.w),
|
||||
text18w400white('New group')
|
||||
],
|
||||
),
|
||||
Image.asset('assets/images/png/arrow-left (2).png')
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: text18w700_FCFCFC('Contacts'),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
ListView.separated(
|
||||
separatorBuilder: (context, index) {
|
||||
return Divider(
|
||||
thickness: 0.6.h,
|
||||
color: Color(0xffFFFFFF).withOpacity(0.72),
|
||||
);
|
||||
},
|
||||
itemCount: chatcontents.length,
|
||||
shrinkWrap: true,
|
||||
padding: const EdgeInsets.only(top: 10.0),
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (context, index) {
|
||||
return GestureDetector(
|
||||
onTap: () {},
|
||||
child: SecondChatList(
|
||||
name: chatcontents[index]['tittle'],
|
||||
imageurl: chatcontents[index]['image'],
|
||||
message: chatcontents[index]['subtittle'],
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(30.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: text18w700_FCFCFC('Contacts'),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
ListView.separated(
|
||||
separatorBuilder: (context, index) {
|
||||
return Divider(
|
||||
thickness: 0.6.h,
|
||||
color: Color(0xffFFFFFF).withOpacity(0.72),
|
||||
);
|
||||
},
|
||||
itemCount: chatcontents.length,
|
||||
shrinkWrap: true,
|
||||
padding: const EdgeInsets.only(top: 10.0),
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (context, index) {
|
||||
return GestureDetector(
|
||||
onTap: () {},
|
||||
child: SecondChatList(
|
||||
name: chatcontents[index]['tittle'],
|
||||
imageurl: chatcontents[index]['image'],
|
||||
message: chatcontents[index]['subtittle'],
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
],
|
||||
),
|
||||
]),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
],
|
||||
),
|
||||
]),
|
||||
]),
|
||||
),
|
||||
);
|
||||
|
||||
@@ -78,194 +78,170 @@ class _NewGroupPageState extends State<NewGroupPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GestureDetector(
|
||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||
child: Scaffold(
|
||||
backgroundColor: Color.fromARGB(255, 18, 32, 47),
|
||||
appBar: CommonAppbar(titleTxt: 'New group'),
|
||||
body: Stack(
|
||||
children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
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),
|
||||
],
|
||||
),
|
||||
borderGradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
colors: [
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
],
|
||||
),
|
||||
child: ListView(children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.h),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
ImageUploadBottomSheet().showModal(
|
||||
context,
|
||||
false,
|
||||
(result) {
|
||||
var file = File(result);
|
||||
filePath.add(file);
|
||||
|
||||
setState(() {});
|
||||
},
|
||||
);
|
||||
},
|
||||
child: Container(
|
||||
width: 50,
|
||||
height: 50,
|
||||
decoration: ShapeDecoration(
|
||||
// image: DecorationImage(
|
||||
// image: AssetImage('assets/images/png/camera1.png'),
|
||||
// ),
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment(0.71, -0.70),
|
||||
end: Alignment(-0.71, 0.7),
|
||||
colors: [
|
||||
Colors.white.withOpacity(0.30000001192092896),
|
||||
Colors.white.withOpacity(0.30000001192092896)
|
||||
],
|
||||
),
|
||||
shape: OvalBorder(
|
||||
side: BorderSide(
|
||||
width: 0.50, color: Color(0xFF434A53)),
|
||||
),
|
||||
),
|
||||
child:
|
||||
// Obx(
|
||||
// () =>
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
// addgroupImage.profilePicPath.value != ''
|
||||
filePath.isNotEmpty
|
||||
? ClipOval(
|
||||
child: SizedBox.fromSize(
|
||||
size: Size.fromRadius(24.r),
|
||||
child: Image.file(
|
||||
filePath[0]!,
|
||||
fit: BoxFit.cover,
|
||||
width: double.infinity,
|
||||
),
|
||||
),
|
||||
)
|
||||
: Image.asset(
|
||||
'assets/images/png/camera1.png')
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
ListView(children: [
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.h),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
ImageUploadBottomSheet().showModal(
|
||||
context,
|
||||
false,
|
||||
(result) {
|
||||
var file = File(result);
|
||||
filePath.add(file);
|
||||
|
||||
setState(() {});
|
||||
},
|
||||
);
|
||||
},
|
||||
child: Container(
|
||||
width: 50,
|
||||
height: 50,
|
||||
decoration: ShapeDecoration(
|
||||
// image: DecorationImage(
|
||||
// image: AssetImage('assets/images/png/camera1.png'),
|
||||
// ),
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment(0.71, -0.70),
|
||||
end: Alignment(-0.71, 0.7),
|
||||
colors: [
|
||||
Colors.white.withOpacity(0.30000001192092896),
|
||||
Colors.white.withOpacity(0.30000001192092896)
|
||||
],
|
||||
),
|
||||
// ),
|
||||
shape: OvalBorder(
|
||||
side: BorderSide(
|
||||
width: 0.50, color: Color(0xFF434A53)),
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
width: 298,
|
||||
child: CustomTextFormField(
|
||||
textEditingController: groupnamecontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Group name",
|
||||
|
||||
// validatorText: "Enter your full name",
|
||||
inputFormatters: [
|
||||
// LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter(),
|
||||
child:
|
||||
// Obx(
|
||||
// () =>
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
// addgroupImage.profilePicPath.value != ''
|
||||
filePath.isNotEmpty
|
||||
? ClipOval(
|
||||
child: SizedBox.fromSize(
|
||||
size: Size.fromRadius(24.r),
|
||||
child: Image.file(
|
||||
filePath[0]!,
|
||||
fit: BoxFit.cover,
|
||||
width: double.infinity,
|
||||
),
|
||||
),
|
||||
)
|
||||
: Image.asset(
|
||||
'assets/images/png/camera1.png')
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: text18w700_FCFCFC('Select contacts to add to group'),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: CustomTextFormField(
|
||||
textEditingController: searchcontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Search people",
|
||||
leadingIcon: 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(20.h),
|
||||
ListView.separated(
|
||||
separatorBuilder: (context, index) {
|
||||
return Divider(
|
||||
thickness: 0.6.h,
|
||||
color: Color(0xffFFFFFF).withOpacity(0.72),
|
||||
);
|
||||
},
|
||||
itemCount: chatcontents.length,
|
||||
shrinkWrap: true,
|
||||
padding: const EdgeInsets.only(top: 10.0),
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (context, index) {
|
||||
return GestureDetector(
|
||||
onTap: () {},
|
||||
child: GroupsList(
|
||||
name: chatcontents[index]['tittle'],
|
||||
imageurl: chatcontents[index]['image'],
|
||||
message: chatcontents[index]['subtittle'],
|
||||
sizedBoxWidth(10.w),
|
||||
Expanded(
|
||||
child: CustomTextFormField(
|
||||
textEditingController: groupnamecontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Group name",
|
||||
|
||||
// validatorText: "Enter your full name",
|
||||
inputFormatters: [
|
||||
// LengthLimitingTextInputFormatter(20),
|
||||
RemoveEmojiInputFormatter(),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
CustomButton(
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: text18w700_FCFCFC('Select contacts to add to group'),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: CustomTextFormField(
|
||||
textEditingController: searchcontroller,
|
||||
texttype: TextInputType.text,
|
||||
hintText: "Search people",
|
||||
leadingIcon: 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(20.h),
|
||||
ListView.separated(
|
||||
separatorBuilder: (context, index) {
|
||||
return Divider(
|
||||
thickness: 0.6.h,
|
||||
color: Color(0xffFFFFFF).withOpacity(0.72),
|
||||
);
|
||||
},
|
||||
itemCount: chatcontents.length,
|
||||
shrinkWrap: true,
|
||||
padding: const EdgeInsets.only(top: 10.0),
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (context, index) {
|
||||
return GestureDetector(
|
||||
onTap: () {},
|
||||
child: GroupsList(
|
||||
name: chatcontents[index]['tittle'],
|
||||
imageurl: chatcontents[index]['image'],
|
||||
message: chatcontents[index]['subtittle'],
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: CustomButton(
|
||||
text: 'Create group',
|
||||
onPressed: () {
|
||||
// Get.toNamed(RouteName.mainscreen);
|
||||
Get.offUntil(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MainScreen()),
|
||||
(Route<dynamic> route) => false)
|
||||
;
|
||||
}
|
||||
),
|
||||
sizedBoxHeight(20.h)
|
||||
],
|
||||
),
|
||||
]),
|
||||
),
|
||||
MaterialPageRoute(
|
||||
builder: (context) => MainScreen()),
|
||||
(Route<dynamic> route) => false);
|
||||
}),
|
||||
),
|
||||
sizedBoxHeight(20.h)
|
||||
],
|
||||
),
|
||||
]),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -225,7 +225,7 @@ class _UserChatPageState extends State<UserChatPage> {
|
||||
}
|
||||
}
|
||||
|
||||
void _sendMessage() {
|
||||
void _sendMessage() {
|
||||
if (messageController.text.isNotEmpty) {
|
||||
setState(() {
|
||||
messages.add(ChatMessage(
|
||||
@@ -270,6 +270,8 @@ class _UserChatPageState extends State<UserChatPage> {
|
||||
border: 0.9,
|
||||
width: 40.w,
|
||||
height: 40.h,
|
||||
opacity1: 0.24,
|
||||
opacity2: 0.24,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
@@ -342,321 +344,265 @@ class _UserChatPageState extends State<UserChatPage> {
|
||||
),
|
||||
body: Stack(
|
||||
children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
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),
|
||||
],
|
||||
),
|
||||
borderGradient: LinearGradient(
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
colors: [
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
Color(0XFF222935).withOpacity(0.60),
|
||||
],
|
||||
),
|
||||
child: Stack(
|
||||
children: [
|
||||
ListView.builder(
|
||||
controller: myController,
|
||||
itemCount: messages.length,
|
||||
padding: const EdgeInsets.only(top: 10.0, bottom: 70.0),
|
||||
physics: const BouncingScrollPhysics(),
|
||||
itemBuilder: (context, index) {
|
||||
return messages[index].messageType == "receiver"
|
||||
? Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
left: 16.0,
|
||||
top: 5.0,
|
||||
bottom: 5.0,
|
||||
right: 90.0),
|
||||
child: Align(
|
||||
alignment: Alignment.topLeft,
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
ListView.builder(
|
||||
controller: myController,
|
||||
itemCount: messages.length,
|
||||
padding: const EdgeInsets.only(top: 10.0, bottom: 70.0),
|
||||
physics: const BouncingScrollPhysics(),
|
||||
itemBuilder: (context, index) {
|
||||
return messages[index].messageType == "receiver"
|
||||
? Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
left: 16.0, top: 5.0, bottom: 5.0, right: 90.0),
|
||||
child: Align(
|
||||
alignment: Alignment.topLeft,
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
Flexible(
|
||||
child: Container(
|
||||
decoration: ShapeDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment(1.00, -0.03),
|
||||
end: Alignment(-1, 0.03),
|
||||
colors: [
|
||||
Colors.white
|
||||
.withOpacity(0.05999999865889549),
|
||||
Colors.white
|
||||
.withOpacity(0.07999999821186066)
|
||||
],
|
||||
),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(20),
|
||||
topRight: Radius.circular(20),
|
||||
bottomRight: Radius.circular(20),
|
||||
),
|
||||
),
|
||||
),
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.start,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.end,
|
||||
children: [
|
||||
Flexible(
|
||||
child: Container(
|
||||
decoration: ShapeDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment(1.00, -0.03),
|
||||
end: Alignment(-1, 0.03),
|
||||
colors: [
|
||||
Colors.white.withOpacity(
|
||||
0.05999999865889549),
|
||||
Colors.white.withOpacity(
|
||||
0.07999999821186066)
|
||||
],
|
||||
),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius:
|
||||
BorderRadius.only(
|
||||
topLeft:
|
||||
Radius.circular(20),
|
||||
topRight:
|
||||
Radius.circular(20),
|
||||
bottomRight:
|
||||
Radius.circular(20),
|
||||
),
|
||||
),
|
||||
),
|
||||
padding:
|
||||
const EdgeInsets.all(10.0),
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
messages[index].messageContent,
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica',
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(2.h),
|
||||
messages[index].isread == true
|
||||
? Image.asset(
|
||||
'assets/images/png/messagereadcheckmark.png')
|
||||
: Image.asset(
|
||||
'assets/images/png/messagedelivered.png'),
|
||||
],
|
||||
),
|
||||
Text(
|
||||
messages[index].messageContent,
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica',
|
||||
),
|
||||
)
|
||||
),
|
||||
sizedBoxHeight(2.h),
|
||||
messages[index].isread == true
|
||||
? Image.asset(
|
||||
'assets/images/png/messagereadcheckmark.png')
|
||||
: Image.asset(
|
||||
'assets/images/png/messagedelivered.png'),
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
right: 16.0,
|
||||
top: 5.0,
|
||||
bottom: 5.0,
|
||||
left: 90.0),
|
||||
child: Align(
|
||||
alignment: Alignment.topRight,
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.start,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.end,
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
right: 16.0, top: 5.0, bottom: 5.0, left: 90.0),
|
||||
child: Align(
|
||||
alignment: Alignment.topRight,
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
Flexible(
|
||||
child: Container(
|
||||
decoration: ShapeDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment(1.00, 0.05),
|
||||
end: Alignment(-1, -0.05),
|
||||
colors: [
|
||||
Color(0xFFD90B2E),
|
||||
Color(0x38D90B2E)
|
||||
],
|
||||
),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.only(
|
||||
topLeft: Radius.circular(20),
|
||||
topRight: Radius.circular(20),
|
||||
bottomLeft: Radius.circular(20),
|
||||
)),
|
||||
),
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
Flexible(
|
||||
child: Container(
|
||||
decoration: ShapeDecoration(
|
||||
gradient: LinearGradient(
|
||||
begin: Alignment(1.00, 0.05),
|
||||
end: Alignment(-1, -0.05),
|
||||
colors: [
|
||||
Color(0xFFD90B2E),
|
||||
Color(0x38D90B2E)
|
||||
],
|
||||
),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius:
|
||||
BorderRadius.only(
|
||||
topLeft: Radius.circular(20),
|
||||
topRight: Radius.circular(20),
|
||||
bottomLeft:
|
||||
Radius.circular(20),
|
||||
)),
|
||||
),
|
||||
padding:
|
||||
const EdgeInsets.all(10.0),
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.end,
|
||||
children: [
|
||||
Text(
|
||||
messages[index].messageContent,
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(2.h),
|
||||
messages[index].isread == true
|
||||
? Image.asset(
|
||||
'assets/images/png/messagereadcheckmark.png')
|
||||
: Image.asset(
|
||||
'assets/images/png/messagedelivered.png'),
|
||||
],
|
||||
),
|
||||
Text(
|
||||
messages[index].messageContent,
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontFamily: 'Helvetica',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(2.h),
|
||||
messages[index].isread == true
|
||||
? Image.asset(
|
||||
'assets/images/png/messagereadcheckmark.png')
|
||||
: Image.asset(
|
||||
'assets/images/png/messagedelivered.png'),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(top: 15, bottom: 15),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
sizedBoxWidth(16.w),
|
||||
Expanded(
|
||||
child: GlassmorphicContainer(
|
||||
width: double.infinity,
|
||||
height: 48.h,
|
||||
borderRadius: 30.r,
|
||||
blur: 10,
|
||||
alignment: Alignment.bottomCenter,
|
||||
border: 0.8,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
const Color(0xFFffffff).withOpacity(0.50),
|
||||
const Color(0xFFFFFFFF).withOpacity(0.50),
|
||||
],
|
||||
stops: [
|
||||
0.1,
|
||||
1,
|
||||
]),
|
||||
borderGradient: const LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xff434A53),
|
||||
Color(0xFF434A53),
|
||||
],
|
||||
),
|
||||
child: TextFormField(
|
||||
controller: messageController,
|
||||
inputFormatters: [
|
||||
RemoveEmojiInputFormatter(),
|
||||
],
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
),
|
||||
autovalidateMode:
|
||||
AutovalidateMode.onUserInteraction,
|
||||
decoration: InputDecoration(
|
||||
contentPadding: const EdgeInsets.all(10.0),
|
||||
filled: true,
|
||||
fillColor: Color(0XFF434A53),
|
||||
border: InputBorder.none,
|
||||
hintStyle: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color:
|
||||
Color(0XFFFCFCFC).withOpacity(0.80),
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica'),
|
||||
hintText: "Type your message",
|
||||
suffixIcon: messageController
|
||||
.text.isNotEmpty ||
|
||||
isImageAdded == true
|
||||
? GestureDetector(
|
||||
// onTap: () => _chatItemsAdd(),
|
||||
onTap: _sendMessage,
|
||||
// () {
|
||||
// setState(() {
|
||||
// // UploadData();
|
||||
// messageController.clear();
|
||||
// });
|
||||
// },
|
||||
// => UploadData(),
|
||||
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
right: 8.w,
|
||||
top: 2.h,
|
||||
bottom: 2.h),
|
||||
child: Container(
|
||||
width: 45.w,
|
||||
height: 30.h,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
borderRadius:
|
||||
BorderRadius.circular(
|
||||
30.r)),
|
||||
child: Center(
|
||||
child: Icon(
|
||||
Icons.send_outlined,
|
||||
color: Colors.white,
|
||||
)
|
||||
// Text(
|
||||
// 'Send',
|
||||
// style: TextStyle(
|
||||
// color: Colors.white,
|
||||
// fontSize: 16.sp),
|
||||
// )
|
||||
)),
|
||||
),
|
||||
)
|
||||
: IconButton(
|
||||
onPressed: () {
|
||||
ImageUploadBottomSheet()
|
||||
.showModal(
|
||||
context,
|
||||
true,
|
||||
(result) {
|
||||
attachimage = result;
|
||||
var filenameresult =
|
||||
extractFileName(result);
|
||||
|
||||
messageController.text =
|
||||
filenameresult;
|
||||
setState(() {
|
||||
isImageAdded = true;
|
||||
});
|
||||
},
|
||||
);
|
||||
},
|
||||
icon: Icon(
|
||||
Icons.attach_file,
|
||||
color: Colors.white,
|
||||
size: 23.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
minLines: 1,
|
||||
maxLines: 1,
|
||||
onChanged: (text) {
|
||||
setState(() {
|
||||
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(top: 15, bottom: 15),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
sizedBoxWidth(16.w),
|
||||
Expanded(
|
||||
child: GlassmorphicContainer(
|
||||
width: double.infinity,
|
||||
height: 48.h,
|
||||
borderRadius: 30.r,
|
||||
blur: 6,
|
||||
alignment: Alignment.bottomCenter,
|
||||
border: 0.8,
|
||||
linearGradient: LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
const Color(0xFFffffff).withOpacity(0.24),
|
||||
const Color(0xFFFFFFFF).withOpacity(0.24),
|
||||
],
|
||||
stops: [
|
||||
0.1,
|
||||
1,
|
||||
]),
|
||||
borderGradient: const LinearGradient(
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
colors: [
|
||||
Color(0xff434A53),
|
||||
Color(0xFF434A53),
|
||||
],
|
||||
),
|
||||
child: TextFormField(
|
||||
controller: messageController,
|
||||
inputFormatters: [
|
||||
RemoveEmojiInputFormatter(),
|
||||
],
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
),
|
||||
autovalidateMode: AutovalidateMode.onUserInteraction,
|
||||
decoration: InputDecoration(
|
||||
contentPadding: const EdgeInsets.all(10.0),
|
||||
// filled: true,
|
||||
// fillColor: Color(0XFF434A53),
|
||||
border: InputBorder.none,
|
||||
hintStyle: TextStyle(
|
||||
fontSize: 14.sp,
|
||||
color: Color(0XFFFCFCFC).withOpacity(0.80),
|
||||
fontWeight: FontWeight.w400,
|
||||
fontFamily: 'Helvetica'),
|
||||
hintText: "Type your message",
|
||||
suffixIcon: messageController.text.isNotEmpty ||
|
||||
isImageAdded == true
|
||||
? GestureDetector(
|
||||
// onTap: () => _chatItemsAdd(),
|
||||
onTap: _sendMessage,
|
||||
// () {
|
||||
// setState(() {
|
||||
// // UploadData();
|
||||
// messageController.clear();
|
||||
// });
|
||||
// },
|
||||
// => UploadData(),
|
||||
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
right: 8.w, top: 2.h, bottom: 2.h),
|
||||
child: Container(
|
||||
width: 45.w,
|
||||
height: 30.h,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD90B2E),
|
||||
borderRadius:
|
||||
BorderRadius.circular(30.r)),
|
||||
child: Center(
|
||||
child: Icon(
|
||||
Icons.send_outlined,
|
||||
color: Colors.white,
|
||||
)
|
||||
// Text(
|
||||
// 'Send',
|
||||
// style: TextStyle(
|
||||
// color: Colors.white,
|
||||
// fontSize: 16.sp),
|
||||
// )
|
||||
)),
|
||||
),
|
||||
)
|
||||
: IconButton(
|
||||
onPressed: () {
|
||||
ImageUploadBottomSheet().showModal(
|
||||
context,
|
||||
true,
|
||||
(result) {
|
||||
attachimage = result;
|
||||
var filenameresult =
|
||||
extractFileName(result);
|
||||
|
||||
messageController.text =
|
||||
filenameresult;
|
||||
setState(() {
|
||||
isImageAdded = true;
|
||||
});
|
||||
},
|
||||
);
|
||||
},
|
||||
icon: Icon(
|
||||
Icons.attach_file,
|
||||
color: Colors.white,
|
||||
size: 23.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
minLines: 1,
|
||||
maxLines: 1,
|
||||
onChanged: (text) {
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
],
|
||||
)),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -25,6 +25,7 @@ class _CycleScreenState extends State<CycleScreen> {
|
||||
return Scaffold(
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
resizeToAvoidBottomInset: false,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Cycle",
|
||||
customActionWidget: Image.asset(
|
||||
@@ -33,12 +34,12 @@ class _CycleScreenState extends State<CycleScreen> {
|
||||
width: 26.w,
|
||||
)),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned(
|
||||
child: Column(children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
), Column(children: [
|
||||
sizedBoxHeight(10.h),
|
||||
DefaultTabController(
|
||||
length: 2,
|
||||
@@ -64,7 +65,7 @@ class _CycleScreenState extends State<CycleScreen> {
|
||||
),
|
||||
],
|
||||
))
|
||||
]))
|
||||
])
|
||||
]));
|
||||
}
|
||||
}
|
||||
@@ -72,6 +73,7 @@ class _CycleScreenState extends State<CycleScreen> {
|
||||
Widget CyclepopularTab() {
|
||||
return SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(20.h),
|
||||
normalcardtile(
|
||||
profileImg: 'assets/images/png/Ellipse 52.png',
|
||||
title: 'Ryan Dorwat',
|
||||
@@ -102,6 +104,7 @@ Widget CyclepopularTab() {
|
||||
Widget CyclelatestTab() {
|
||||
return SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
sizedBoxHeight(20.h),
|
||||
normalcardtile(
|
||||
profileImg: 'assets/images/png/Ellipse 43.png',
|
||||
title: 'Edward Hackket',
|
||||
@@ -134,344 +137,328 @@ Widget normalcardtile({
|
||||
}
|
||||
}
|
||||
|
||||
return Column(
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
CircleAvatar(
|
||||
foregroundImage: AssetImage(profileImg),
|
||||
radius: 25.r,
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
Column(
|
||||
return commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 570.h,
|
||||
border: 0,
|
||||
borderradius: 1,
|
||||
customWidget: Column(
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16w400_FCFCFC(title),
|
||||
sizedBoxHeight(5.h),
|
||||
Row(
|
||||
CircleAvatar(
|
||||
foregroundImage: AssetImage(profileImg),
|
||||
radius: 25.r,
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/community 1 (traced).png',
|
||||
height: 14.w,
|
||||
width: 14.w,
|
||||
),
|
||||
sizedBoxWidth(7.w),
|
||||
text12w400_FCFCFC('Active alliance network'),
|
||||
sizedBoxWidth(7.w),
|
||||
Icon(
|
||||
Icons.circle,
|
||||
color: Color(0xFFFCFCFC),
|
||||
size: 4.sp,
|
||||
),
|
||||
sizedBoxWidth(6.w),
|
||||
text12w400_FCFCFC('1 Hour ago'),
|
||||
text16w400_FCFCFC(title),
|
||||
sizedBoxHeight(5.h),
|
||||
Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/community 1 (traced).png',
|
||||
height: 14.w,
|
||||
width: 14.w,
|
||||
),
|
||||
sizedBoxWidth(7.w),
|
||||
text12w400_FCFCFC('Active alliance network'),
|
||||
sizedBoxWidth(7.w),
|
||||
Icon(
|
||||
Icons.circle,
|
||||
color: Color(0xFFFCFCFC),
|
||||
size: 4.sp,
|
||||
),
|
||||
sizedBoxWidth(6.w),
|
||||
text12w400_FCFCFC('1 Hour ago'),
|
||||
],
|
||||
)
|
||||
],
|
||||
)
|
||||
),
|
||||
Spacer(),
|
||||
PopupMenuButton(
|
||||
surfaceTintColor: Color(0xFF222935),
|
||||
constraints: BoxConstraints.tightFor(width: 176.w),
|
||||
offset: Offset(0, 50),
|
||||
color: Color(0xFF222935),
|
||||
tooltip: "",
|
||||
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Report Post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/Vector (5).png",
|
||||
height: 15.h,
|
||||
width: 15.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Share post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/share.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Pin',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/f7_pin-fill (2).png",
|
||||
height: 25.h,
|
||||
width: 25.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Image.asset(
|
||||
'assets/images/png/Group 1000004071.png',
|
||||
width: 16.w,
|
||||
height: 18.h,
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(5.w)
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
PopupMenuButton(
|
||||
surfaceTintColor: Color(0xFF222935),
|
||||
constraints: BoxConstraints.tightFor(width: 176.w),
|
||||
offset: Offset(0, 50),
|
||||
color: Color(0xFF222935),
|
||||
tooltip: "",
|
||||
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Report Post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/Vector (5).png",
|
||||
height: 15.h,
|
||||
width: 15.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Share post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/share.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Pin',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/f7_pin-fill (2).png",
|
||||
height: 25.h,
|
||||
width: 25.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Image.asset(
|
||||
'assets/images/png/Group 1000004071.png',
|
||||
width: 16.w,
|
||||
height: 18.h,
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(5.w)
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.postdetailsScreen);
|
||||
},
|
||||
child: Container(
|
||||
height: 163.h,
|
||||
width: double.infinity,
|
||||
child: Image.asset(
|
||||
mainImg,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
)),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(children: [
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
child: ListView.builder(
|
||||
scrollDirection: Axis.horizontal,
|
||||
shrinkWrap: true,
|
||||
itemCount: containerTitle.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(right: 12.w),
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.cyclescreen);
|
||||
},
|
||||
child: containertile(text: containerTitle[index])),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16w400_FCFCFC(
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
|
||||
Row(children: [
|
||||
stackReaction(number: '20', containerImages: [
|
||||
'assets/images/png/f7_hand-thumbsup.png',
|
||||
'assets/images/png/heart 2.png',
|
||||
'assets/images/png/party-popper 2.png'
|
||||
]),
|
||||
Spacer(),
|
||||
commonGlassContainer(
|
||||
border: 0.9,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: ReactionButton<String>(
|
||||
itemSize: Size.fromHeight(20),
|
||||
onReactionChanged: (Reaction<String>? reaction) {
|
||||
debugPrint('Selected value: ${reaction?.value}');
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.postdetailsScreen);
|
||||
},
|
||||
child: Container(
|
||||
height: 163.h,
|
||||
width: double.infinity,
|
||||
child: Image.asset(
|
||||
mainImg,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
)),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(children: [
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
child: ListView.builder(
|
||||
scrollDirection: Axis.horizontal,
|
||||
shrinkWrap: true,
|
||||
itemCount: containerTitle.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(right: 12.w),
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.cyclescreen);
|
||||
},
|
||||
child: containertile(text: containerTitle[index])),
|
||||
);
|
||||
},
|
||||
reactions: <Reaction<String>>[
|
||||
Reaction<String>(
|
||||
value: 'message',
|
||||
icon: Image.asset(
|
||||
'assets/images/png/Vector.png',
|
||||
height: 13.h,
|
||||
width: 13.w,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('20'),
|
||||
sizedBoxWidth(20.w),
|
||||
commonGlassContainer(
|
||||
border: 0.9,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: ReactionButton<String>(
|
||||
itemSize: Size.fromHeight(20),
|
||||
onReactionChanged: (Reaction<String>? reaction) {
|
||||
debugPrint('Selected value: ${reaction?.value}');
|
||||
sizedBoxHeight(20.h),
|
||||
text16w400_FCFCFC(
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
|
||||
Row(children: [
|
||||
InkWell(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.reactionview);
|
||||
},
|
||||
reactions: <Reaction<String>>[
|
||||
Reaction<String>(
|
||||
value: 'message',
|
||||
icon: Image.asset(
|
||||
'assets/images/png/Vector (1).png',
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
),
|
||||
),
|
||||
],
|
||||
child: stackReaction(number: '20', containerImages: [
|
||||
'assets/images/png/f7_hand-thumbsup.png',
|
||||
'assets/images/png/heart 2.png',
|
||||
'assets/images/png/party-popper 2.png'
|
||||
]),
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('10'),
|
||||
]),
|
||||
sizedBoxHeight(30.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
Column(
|
||||
Spacer(),
|
||||
commonGlassContainer(
|
||||
border: 0.43,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.06,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/Frame 1000004088.png',
|
||||
height: 13.h,
|
||||
width: 13.w,
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('20'),
|
||||
sizedBoxWidth(20.w),
|
||||
commonGlassContainer(
|
||||
border: 0.43,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.06,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/Vector (1).png',
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('10'),
|
||||
]),
|
||||
sizedBoxHeight(12.h),
|
||||
commonDivider(),
|
||||
sizedBoxHeight(12.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Obx(() {
|
||||
return ReactionButton<String>(
|
||||
onReactionChanged: (reaction) {
|
||||
updateImage(reaction?.value ?? 'like');
|
||||
debugPrint(
|
||||
'Selected value: ${reaction?.value}');
|
||||
},
|
||||
reactions: <Reaction<String>?>[
|
||||
Reaction<String>(
|
||||
value: 'like',
|
||||
previewIcon: _buildReactionsPreviewIcon(
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
),
|
||||
Reaction<String>(
|
||||
value: 'heart',
|
||||
previewIcon: _buildReactionsPreviewIcon(
|
||||
'assets/images/png/heart 2.png'),
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/heart 2.png'),
|
||||
),
|
||||
Reaction<String>(
|
||||
value: 'party',
|
||||
previewIcon: _buildReactionsPreviewIcon(
|
||||
'assets/images/png/party-popper 2.png'),
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/party-popper 2.png'),
|
||||
),
|
||||
],
|
||||
selectedReaction: Reaction<String>(
|
||||
value: 'like',
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
),
|
||||
boxColor: Colors.white,
|
||||
boxElevation: 5,
|
||||
boxRadius: 50,
|
||||
itemsSpacing: 8,
|
||||
itemScale: 0.3,
|
||||
itemSize: Size(40.0, 40.0),
|
||||
boxPadding: EdgeInsets.all(4),
|
||||
boxAnimationDuration: Duration(milliseconds: 200),
|
||||
itemAnimationDuration:
|
||||
Duration(milliseconds: 100),
|
||||
hoverDuration: Duration(milliseconds: 400),
|
||||
toggle: false,
|
||||
direction: ReactionsBoxAlignment.ltr,
|
||||
child: _buildReactionsIcon(mainImage.value),
|
||||
);
|
||||
})
|
||||
],
|
||||
),
|
||||
Obx(() {
|
||||
return ReactionButton<String>(
|
||||
onReactionChanged: (reaction) {
|
||||
updateImage(reaction?.value ?? 'like');
|
||||
debugPrint('Selected value: ${reaction?.value}');
|
||||
},
|
||||
reactions: <Reaction<String>?>[
|
||||
Reaction<String>(
|
||||
value: 'like',
|
||||
previewIcon: _buildReactionsPreviewIcon(
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
),
|
||||
Reaction<String>(
|
||||
value: 'heart',
|
||||
previewIcon: _buildReactionsPreviewIcon(
|
||||
'assets/images/png/heart 2.png'),
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/heart 2.png'),
|
||||
),
|
||||
Reaction<String>(
|
||||
value: 'party',
|
||||
previewIcon: _buildReactionsPreviewIcon(
|
||||
'assets/images/png/party-popper 2.png'),
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/party-popper 2.png'),
|
||||
),
|
||||
],
|
||||
selectedReaction: Reaction<String>(
|
||||
value: 'like',
|
||||
icon: _buildReactionsIcon(
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
),
|
||||
boxColor: Colors.white,
|
||||
boxElevation: 9,
|
||||
boxRadius: 30,
|
||||
itemsSpacing: 8,
|
||||
itemScale: 0.4,
|
||||
itemSize: Size(45, 45),
|
||||
boxPadding: EdgeInsets.all(8),
|
||||
boxAnimationDuration: Duration(milliseconds: 200),
|
||||
itemAnimationDuration: Duration(milliseconds: 500),
|
||||
hoverDuration: Duration(milliseconds: 700),
|
||||
// toggle: false,
|
||||
|
||||
child: _buildReactionsIcon(mainImage.value),
|
||||
);
|
||||
})
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Like')
|
||||
],
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.postdetailsScreen);
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Vector.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.postdetailsScreen);
|
||||
},
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Frame 1000004088.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Comment')
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Comment')
|
||||
],
|
||||
),
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Frame 1000004089.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Save')
|
||||
Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Frame 1000004089.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Save')
|
||||
],
|
||||
)
|
||||
],
|
||||
)
|
||||
],
|
||||
)
|
||||
]),
|
||||
),
|
||||
],
|
||||
);
|
||||
),
|
||||
sizedBoxHeight(12.h),
|
||||
commonDivider(),
|
||||
sizedBoxHeight(12.h),
|
||||
]),
|
||||
),
|
||||
],
|
||||
));
|
||||
}
|
||||
|
||||
Widget _buildReactionsPreviewIcon(String assetPath) {
|
||||
@@ -486,9 +473,15 @@ Widget _buildReactionsPreviewIcon(String assetPath) {
|
||||
}
|
||||
|
||||
Widget _buildReactionsIcon(String assetPath) {
|
||||
return Image.asset(
|
||||
assetPath,
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
return Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
assetPath,
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Like')
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Common/controller/CommonTextFormField.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.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';
|
||||
@@ -22,21 +22,23 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
resizeToAvoidBottomInset: false,
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Post",
|
||||
),
|
||||
body: Stack(children: [
|
||||
const CommonBlurLeftRed(),
|
||||
const CommonBlurRightRed(),
|
||||
const CommonBlurLeft(),
|
||||
const CommonBlurRight(),
|
||||
Positioned.fill(
|
||||
child: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
),
|
||||
SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
postCards(
|
||||
profileImg: 'assets/images/png/Ellipse 52.png',
|
||||
title: 'Ryan Dorwat',
|
||||
@@ -48,13 +50,10 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
'Marathon',
|
||||
'Events'
|
||||
]),
|
||||
sizedBoxHeight(30.h),
|
||||
commonDivider(),
|
||||
sizedBoxHeight(30.h),
|
||||
sizedBoxHeight(35.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(
|
||||
children: [
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
@@ -79,25 +78,34 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(50.h),
|
||||
CustomTextFormField(
|
||||
hintText: "Add comment",
|
||||
suffixIcon: Container(
|
||||
height: 20.h,
|
||||
width: 25.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/iconoir_send.png",
|
||||
height: 20.h,
|
||||
width: 25.w,
|
||||
Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(top: 15, bottom: 15),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: CustomTextFormField(
|
||||
hintText: "Add comment",
|
||||
suffixIcon: Container(
|
||||
height: 20.h,
|
||||
width: 25.w,
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/iconoir_send.png",
|
||||
height: 20.h,
|
||||
width: 25.w,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(85.h)
|
||||
])))
|
||||
)),
|
||||
sizedBoxHeight(85.h)
|
||||
]))
|
||||
]))
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -118,245 +126,247 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
}
|
||||
}
|
||||
|
||||
return Column(
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
CircleAvatar(
|
||||
foregroundImage: AssetImage(profileImg),
|
||||
radius: 25.r,
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
Column(
|
||||
return commonGlassContainer(
|
||||
width: double.infinity,
|
||||
height: 570.h,
|
||||
border: 0,
|
||||
borderradius: 0,
|
||||
customWidget: Column(
|
||||
children: [
|
||||
sizedBoxHeight(25.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
text16w400_FCFCFC(title),
|
||||
sizedBoxHeight(5.h),
|
||||
Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/community 1 (traced).png',
|
||||
height: 14.w,
|
||||
width: 14.w,
|
||||
),
|
||||
sizedBoxWidth(7.w),
|
||||
text12w400_FCFCFC('Active alliance network'),
|
||||
sizedBoxWidth(7.w),
|
||||
Icon(
|
||||
Icons.circle,
|
||||
color: Color(0xFFFCFCFC),
|
||||
size: 4.sp,
|
||||
),
|
||||
sizedBoxWidth(6.w),
|
||||
text12w400_FCFCFC('1 Hour ago'),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
Spacer(),
|
||||
PopupMenuButton(
|
||||
surfaceTintColor: Color(0xFF222935),
|
||||
constraints: BoxConstraints.tightFor(width: 176.w),
|
||||
offset: Offset(0, 50),
|
||||
color: Color(0xFF222935),
|
||||
tooltip: "",
|
||||
itemBuilder: (BuildContext context) => <PopupMenuEntry>[
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Report Post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/Vector (5).png",
|
||||
height: 15.h,
|
||||
width: 15.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
CircleAvatar(
|
||||
foregroundImage: AssetImage(profileImg),
|
||||
radius: 25.r,
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Share post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
sizedBoxWidth(12.w),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
text16w400_FCFCFC(title),
|
||||
Spacer(),
|
||||
commonGlassContainer(
|
||||
width: 72.w,
|
||||
height: 26.h,
|
||||
borderradius: 5.r,
|
||||
borderColor: Color(0xFFD90B2E),
|
||||
customWidget:
|
||||
Center(child: text14400white("Follow")),
|
||||
border: 1),
|
||||
sizedBoxWidth(6.w),
|
||||
PopupMenuButton(
|
||||
surfaceTintColor: Color(0xFF222935),
|
||||
constraints:
|
||||
BoxConstraints.tightFor(width: 176.w),
|
||||
offset: Offset(0, 50),
|
||||
color: Color(0xFF222935),
|
||||
tooltip: "",
|
||||
itemBuilder: (BuildContext context) =>
|
||||
<PopupMenuEntry>[
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Report Post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/Vector (5).png",
|
||||
height: 15.h,
|
||||
width: 15.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Share post',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/share.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Pin',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/f7_pin-fill (2).png",
|
||||
height: 25.h,
|
||||
width: 25.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Image.asset(
|
||||
'assets/images/png/Group 1000004071.png',
|
||||
width: 16.w,
|
||||
height: 18.h,
|
||||
),
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/share.png",
|
||||
height: 20.h,
|
||||
width: 20.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(),
|
||||
PopupMenuItem(
|
||||
onTap: () {},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
||||
child: Row(
|
||||
children: [
|
||||
Text(
|
||||
'Pin',
|
||||
style: TextStyle(
|
||||
fontSize: 16.sp,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w800,
|
||||
fontFamily: "Nunito Sans",
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(5.h),
|
||||
Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/community 1 (traced).png',
|
||||
height: 14.w,
|
||||
width: 14.w,
|
||||
),
|
||||
),
|
||||
Spacer(),
|
||||
Image.asset(
|
||||
"assets/images/png/f7_pin-fill (2).png",
|
||||
height: 25.h,
|
||||
width: 25.w,
|
||||
)
|
||||
],
|
||||
),
|
||||
sizedBoxWidth(7.w),
|
||||
text12w400_FCFCFC('Active alliance network'),
|
||||
sizedBoxWidth(7.w),
|
||||
Icon(
|
||||
Icons.circle,
|
||||
color: Color(0xFFFCFCFC),
|
||||
size: 4.sp,
|
||||
),
|
||||
sizedBoxWidth(6.w),
|
||||
text12w400_FCFCFC('1 Hour ago'),
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
child: Image.asset(
|
||||
'assets/images/png/Group 1000004071.png',
|
||||
width: 16.w,
|
||||
height: 18.h,
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(5.w)
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.postdetailsScreen);
|
||||
},
|
||||
child: Container(
|
||||
height: 163.h,
|
||||
width: double.infinity,
|
||||
child: Image.asset(
|
||||
mainImg,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
)),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(children: [
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
child: ListView.builder(
|
||||
scrollDirection: Axis.horizontal,
|
||||
shrinkWrap: true,
|
||||
itemCount: containerTitle.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(right: 12.w),
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.cyclescreen);
|
||||
},
|
||||
child: containertile(text: containerTitle[index])),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16w400_FCFCFC(
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
|
||||
Row(children: [
|
||||
stackReaction(number: '20', containerImages: [
|
||||
'assets/images/png/f7_hand-thumbsup.png',
|
||||
'assets/images/png/heart 2.png',
|
||||
'assets/images/png/party-popper 2.png'
|
||||
]),
|
||||
Spacer(),
|
||||
commonGlassContainer(
|
||||
border: 0.9,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: ReactionButton<String>(
|
||||
itemSize: Size.fromHeight(20),
|
||||
onReactionChanged: (Reaction<String>? reaction) {
|
||||
debugPrint('Selected value: ${reaction?.value}');
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.postdetailsScreen);
|
||||
},
|
||||
child: Container(
|
||||
height: 163.h,
|
||||
width: double.infinity,
|
||||
child: Image.asset(
|
||||
mainImg,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
)),
|
||||
sizedBoxHeight(20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w),
|
||||
child: Column(children: [
|
||||
SizedBox(
|
||||
height: 30.h,
|
||||
child: ListView.builder(
|
||||
scrollDirection: Axis.horizontal,
|
||||
shrinkWrap: true,
|
||||
itemCount: containerTitle.length,
|
||||
itemBuilder: (context, index) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(right: 12.w),
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
Get.toNamed(RouteName.cyclescreen);
|
||||
},
|
||||
child: containertile(text: containerTitle[index])),
|
||||
);
|
||||
},
|
||||
reactions: <Reaction<String>>[
|
||||
Reaction<String>(
|
||||
value: 'message',
|
||||
icon: Image.asset(
|
||||
'assets/images/png/Vector.png',
|
||||
height: 13.h,
|
||||
width: 13.w,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('20'),
|
||||
sizedBoxWidth(20.w),
|
||||
commonGlassContainer(
|
||||
border: 0.9,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: ReactionButton<String>(
|
||||
itemSize: Size.fromHeight(20),
|
||||
onReactionChanged: (Reaction<String>? reaction) {
|
||||
debugPrint('Selected value: ${reaction?.value}');
|
||||
},
|
||||
reactions: <Reaction<String>>[
|
||||
Reaction<String>(
|
||||
value: 'message',
|
||||
icon: Image.asset(
|
||||
'assets/images/png/Vector (1).png',
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
),
|
||||
sizedBoxHeight(20.h),
|
||||
text16w400_FCFCFC(
|
||||
"Lorem Ipsum has been the industry's standard dummy text ever since the 1500s . . ."),
|
||||
Row(children: [
|
||||
stackReaction(number: '20', containerImages: [
|
||||
'assets/images/png/f7_hand-thumbsup.png',
|
||||
'assets/images/png/heart 2.png',
|
||||
'assets/images/png/party-popper 2.png'
|
||||
]),
|
||||
Spacer(),
|
||||
commonGlassContainer(
|
||||
border: 0.9,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/Frame 1000004088.png',
|
||||
height: 13.h,
|
||||
width: 13.w,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('10'),
|
||||
]),
|
||||
sizedBoxHeight(30.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
Column(
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('20'),
|
||||
sizedBoxWidth(20.w),
|
||||
commonGlassContainer(
|
||||
border: 0.9,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
'assets/images/png/Vector (1).png',
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
),
|
||||
),
|
||||
),
|
||||
sizedBoxWidth(12.w),
|
||||
text14w400_FCFCFC('10'),
|
||||
]),
|
||||
sizedBoxHeight(12.h),
|
||||
commonDivider(),
|
||||
sizedBoxHeight(12.h),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
@@ -400,19 +410,19 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
'assets/images/png/f7_hand-thumbsup.png'),
|
||||
),
|
||||
boxColor: Colors.white,
|
||||
boxElevation: 5,
|
||||
boxRadius: 50,
|
||||
boxElevation: 9,
|
||||
boxRadius: 30,
|
||||
itemsSpacing: 8,
|
||||
itemScale: 0.3,
|
||||
itemSize: Size(40.0, 40.0),
|
||||
boxPadding: EdgeInsets.all(4),
|
||||
itemScale: 0.4,
|
||||
itemSize: Size(45, 45),
|
||||
boxPadding: EdgeInsets.all(8),
|
||||
boxAnimationDuration:
|
||||
Duration(milliseconds: 200),
|
||||
itemAnimationDuration:
|
||||
Duration(milliseconds: 100),
|
||||
hoverDuration: Duration(milliseconds: 400),
|
||||
toggle: false,
|
||||
direction: ReactionsBoxAlignment.ltr,
|
||||
Duration(milliseconds: 500),
|
||||
hoverDuration: Duration(milliseconds: 700),
|
||||
// toggle: false,
|
||||
|
||||
child: _buildReactionsIcon(mainImage.value),
|
||||
);
|
||||
})
|
||||
@@ -420,27 +430,26 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
),
|
||||
],
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Like')
|
||||
Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Frame 1000004089.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Save')
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
'assets/images/png/Frame 1000004089.png',
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Save')
|
||||
],
|
||||
)
|
||||
],
|
||||
)
|
||||
]),
|
||||
),
|
||||
],
|
||||
);
|
||||
sizedBoxHeight(12.h),
|
||||
commonDivider(),
|
||||
sizedBoxHeight(12.h),
|
||||
]),
|
||||
),
|
||||
],
|
||||
));
|
||||
}
|
||||
|
||||
Widget containertile({required String text}) {
|
||||
@@ -449,6 +458,7 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
width: 100.w,
|
||||
height: 30.h,
|
||||
borderradius: 30.r,
|
||||
borderColor: Color(0xFFD90B2E),
|
||||
customWidget: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
||||
child: Center(child: text14w400_FCFCFC(text)),
|
||||
@@ -467,10 +477,16 @@ class _PostDetailsScreenState extends State<PostDetailsScreen> {
|
||||
}
|
||||
|
||||
Widget _buildReactionsIcon(String assetPath) {
|
||||
return Image.asset(
|
||||
assetPath,
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
return Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
assetPath,
|
||||
height: 19.h,
|
||||
width: 19.w,
|
||||
),
|
||||
sizedBoxHeight(8.h),
|
||||
text11w400_FCFCFC('Like')
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,316 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:regroup/Common/CommonGlassmorphism.dart';
|
||||
import 'package:regroup/Common/CommonTabBar.dart';
|
||||
import 'package:regroup/Common/CommonWidget.dart';
|
||||
import 'package:regroup/Utils/Common/CommonAppbar.dart';
|
||||
import 'package:regroup/Utils/Common/blureffect.dart';
|
||||
import 'package:regroup/Utils/Common/sized_box.dart';
|
||||
import 'package:regroup/Utils/texts.dart';
|
||||
|
||||
class ReactionView extends StatefulWidget {
|
||||
const ReactionView({super.key});
|
||||
|
||||
@override
|
||||
State<ReactionView> createState() => _ReactionViewState();
|
||||
}
|
||||
|
||||
class _ReactionViewState extends State<ReactionView> {
|
||||
List allTabData = [
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg1.png",
|
||||
"reactionimg": "assets/images/png/f7_hand-thumbsup.png",
|
||||
"title": "Edward Hackket"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg2.png",
|
||||
"reactionimg": "assets/images/png/heart 2.png",
|
||||
"title": "Dulce Vaccaro"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg3.png",
|
||||
"reactionimg": "assets/images/png/party-popper 2.png",
|
||||
"title": "Edward Hackket"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg4.png",
|
||||
"reactionimg": "assets/images/png/f7_hand-thumbsup.png",
|
||||
"title": "Dulce Vaccaro"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Rectangle 65.png",
|
||||
"reactionimg": "assets/images/png/heart 2.png",
|
||||
"title": "Edward Hackket"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/Ellipse 43.png",
|
||||
"reactionimg": "assets/images/png/party-popper 2.png",
|
||||
"title": "Dulce Vaccaro"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg4.png",
|
||||
"reactionimg": "assets/images/png/f7_hand-thumbsup.png",
|
||||
"title": "Dulce Vaccaro"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg3.png",
|
||||
"reactionimg": "assets/images/png/party-popper 2.png",
|
||||
"title": "Edward Hackket"
|
||||
},
|
||||
{
|
||||
"imagePath": "assets/images/png/cimg4.png",
|
||||
"reactionimg": "assets/images/png/f7_hand-thumbsup.png",
|
||||
"title": "Dulce Vaccaro"
|
||||
},
|
||||
];
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Color(0xFF222935),
|
||||
extendBody: true,
|
||||
appBar: CommonAppbar(
|
||||
titleTxt: "Post",
|
||||
),
|
||||
resizeToAvoidBottomInset: false,
|
||||
body: Stack(children: [
|
||||
Container(
|
||||
decoration: const BoxDecoration(
|
||||
image: DecorationImage(
|
||||
image: AssetImage("assets/images/png/Ellipse 1496.png"),
|
||||
fit: BoxFit.fill)),
|
||||
), Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
sizedBoxHeight(10.h),
|
||||
Expanded(
|
||||
child: DefaultTabController(
|
||||
length: 4,
|
||||
// initialIndex: selectedIndex.value,
|
||||
child: Column(children: [
|
||||
CommonTabBar(tabs: [
|
||||
Tab(
|
||||
text: 'All',
|
||||
),
|
||||
Tab(
|
||||
child: Row(children: [
|
||||
commonGlassContainer(
|
||||
borderColor: Color(0xFF1E3A46),
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.06,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/f7_hand-thumbsup.png",
|
||||
height: 17.h,
|
||||
width: 17.w,
|
||||
),
|
||||
),
|
||||
border: 1.71),
|
||||
Spacer(),
|
||||
text14400white("110K"),
|
||||
]),
|
||||
),
|
||||
Tab(
|
||||
child: Row(children: [
|
||||
commonGlassContainer(
|
||||
borderColor: Color(0xFF1E3A46),
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.06,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/heart 2.png",
|
||||
height: 17.h,
|
||||
width: 17.w,
|
||||
),
|
||||
),
|
||||
border: 1.71),
|
||||
Spacer(),
|
||||
text14400white("9.7K"),
|
||||
]),
|
||||
),
|
||||
Tab(
|
||||
child: Row(children: [
|
||||
commonGlassContainer(
|
||||
borderColor: Color(0xFF1E3A46),
|
||||
opacity1: 0.05,
|
||||
opacity2: 0.06,
|
||||
width: 30.w,
|
||||
height: 30.h,
|
||||
borderradius: 100,
|
||||
customWidget: Center(
|
||||
child: Image.asset(
|
||||
"assets/images/png/party-popper 2.png",
|
||||
height: 17.h,
|
||||
width: 17.w,
|
||||
),
|
||||
),
|
||||
border: 1.71),
|
||||
Spacer(),
|
||||
text14400white("7.4K"),
|
||||
]),
|
||||
),
|
||||
]),
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
children: [
|
||||
allTab(),
|
||||
likeTab(),
|
||||
favouriteTab(),
|
||||
partyTab(),
|
||||
],
|
||||
),
|
||||
),
|
||||
sizedBoxHeight(20.h)
|
||||
])),
|
||||
)
|
||||
])
|
||||
]));
|
||||
}
|
||||
|
||||
Widget allTab() {
|
||||
return Column(
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
Expanded(
|
||||
child: ListView.builder(
|
||||
itemCount: allTabData.length,
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
commonReaction(
|
||||
imagePath: allTabData[index]["imagePath"],
|
||||
reactionimg: allTabData[index]["reactionimg"],
|
||||
title: allTabData[index]["title"]),
|
||||
if (allTabData.length - 1 != index) commonDivider(),
|
||||
],
|
||||
);
|
||||
},
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget likeTab() {
|
||||
return Column(
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
Expanded(
|
||||
child: ListView.builder(
|
||||
itemCount: allTabData.length,
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
commonReaction(
|
||||
imagePath: allTabData[index]["imagePath"],
|
||||
reactionimg: allTabData[index]["reactionimg"],
|
||||
title: allTabData[index]["title"]),
|
||||
if (allTabData.length - 1 != index) commonDivider(),
|
||||
],
|
||||
);
|
||||
},
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget favouriteTab() {
|
||||
return Column(
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
Expanded(
|
||||
child: ListView.builder(
|
||||
itemCount: allTabData.length,
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
commonReaction(
|
||||
imagePath: allTabData[index]["imagePath"],
|
||||
reactionimg: allTabData[index]["reactionimg"],
|
||||
title: allTabData[index]["title"]),
|
||||
if (allTabData.length - 1 != index) commonDivider(),
|
||||
],
|
||||
);
|
||||
},
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget partyTab() {
|
||||
return Column(
|
||||
children: [
|
||||
sizedBoxHeight(20.h),
|
||||
Expanded(
|
||||
child: ListView.builder(
|
||||
itemCount: allTabData.length,
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (context, index) {
|
||||
return Column(
|
||||
children: [
|
||||
commonReaction(
|
||||
imagePath: allTabData[index]["imagePath"],
|
||||
reactionimg: allTabData[index]["reactionimg"],
|
||||
title: allTabData[index]["title"]),
|
||||
if (allTabData.length - 1 != index) commonDivider(),
|
||||
],
|
||||
);
|
||||
},
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget commonReaction(
|
||||
{required String imagePath,
|
||||
required String reactionimg,
|
||||
required String title}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 25.w, vertical: 18.h),
|
||||
child: Row(
|
||||
children: [
|
||||
Stack(children: [
|
||||
CircleAvatar(
|
||||
radius: 25.r,
|
||||
backgroundImage: AssetImage(imagePath),
|
||||
),
|
||||
Positioned(
|
||||
bottom: 0,
|
||||
right: 0,
|
||||
child: Container(
|
||||
height: 22.h,
|
||||
width: 22.w,
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Color(0xFF1E3A46),
|
||||
border: Border.all(
|
||||
color: Color(0xFFFCFCFC).withOpacity(0.18),
|
||||
width: 0.6)),
|
||||
child: Center(
|
||||
child: Image.asset(
|
||||
reactionimg,
|
||||
height: 12.h,
|
||||
width: 12.w,
|
||||
),
|
||||
),
|
||||
)),
|
||||
]),
|
||||
sizedBoxWidth(10.w),
|
||||
text17400white(title),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||