Skip to content

Commit 09594a1

Browse files
committed
improve thank you screen
1 parent ac3cd0c commit 09594a1

File tree

2 files changed

+99
-61
lines changed

2 files changed

+99
-61
lines changed

app/src/main/kotlin/com/dergoogler/mmrl/ui/screens/home/screens/ThankYouScreen.kt

Lines changed: 70 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import androidx.compose.foundation.layout.Arrangement
44
import androidx.compose.foundation.layout.Column
55
import androidx.compose.foundation.layout.PaddingValues
66
import androidx.compose.foundation.layout.WindowInsets
7-
import androidx.compose.foundation.layout.fillMaxWidth
87
import androidx.compose.foundation.layout.padding
9-
import androidx.compose.foundation.rememberScrollState
10-
import androidx.compose.foundation.verticalScroll
8+
import androidx.compose.foundation.lazy.grid.GridCells
9+
import androidx.compose.foundation.lazy.grid.GridItemSpan
10+
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
11+
import androidx.compose.foundation.lazy.grid.itemsIndexed
1112
import androidx.compose.material3.MaterialTheme
1213
import androidx.compose.material3.Scaffold
1314
import androidx.compose.material3.Text
@@ -24,7 +25,6 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
2425
import com.dergoogler.mmrl.R
2526
import com.dergoogler.mmrl.ui.component.HorizontalDividerWithText
2627
import com.dergoogler.mmrl.ui.component.NavigateUpTopBar
27-
import com.dergoogler.mmrl.ui.component.NonLazyGrid
2828
import com.dergoogler.mmrl.ui.providable.LocalNavController
2929
import com.dergoogler.mmrl.ui.screens.repositories.screens.exploreRepositories.items.MemberCard
3030
import com.dergoogler.mmrl.ui.utils.none
@@ -53,73 +53,84 @@ fun ThankYouScreen(
5353
},
5454
contentWindowInsets = WindowInsets.none
5555
) { innerPadding ->
56-
Column(
57-
modifier = Modifier
58-
.padding(innerPadding)
59-
.fillMaxWidth()
60-
.verticalScroll(rememberScrollState()),
61-
horizontalAlignment = Alignment.CenterHorizontally,
62-
verticalArrangement = Arrangement.spacedBy(16.dp)
56+
LazyVerticalGrid(
57+
modifier = Modifier.padding(innerPadding),
58+
columns = GridCells.Fixed(2),
59+
contentPadding = PaddingValues(16.dp),
60+
horizontalArrangement = Arrangement.spacedBy(16.dp),
61+
verticalArrangement = Arrangement.spacedBy(16.dp),
6362
) {
64-
6563
if (sponsors.isNotNullOrEmpty()) {
66-
HorizontalDividerWithText(
67-
text = stringResource(
68-
R.string.sponsors
69-
),
70-
thickness = 0.9.dp
71-
)
64+
item(span = { GridItemSpan(2) }) {
65+
Column(
66+
verticalArrangement = Arrangement.Center,
67+
horizontalAlignment = Alignment.CenterHorizontally
68+
) {
69+
HorizontalDividerWithText(
70+
text = stringResource(
71+
R.string.sponsors
72+
),
73+
thickness = 0.9.dp
74+
)
7275

73-
Text(
74-
text = stringResource(
75-
R.string.have_been_total_sponsored,
76-
vm.totalSponsorAmount.toDollars()
77-
),
78-
style = MaterialTheme.typography.titleSmall.copy(
79-
color = MaterialTheme.colorScheme.outline
80-
)
81-
)
76+
Text(
77+
text = stringResource(
78+
R.string.have_been_total_sponsored,
79+
vm.totalSponsorAmount.toDollars()
80+
),
81+
style = MaterialTheme.typography.titleSmall.copy(
82+
color = MaterialTheme.colorScheme.outline
83+
)
84+
)
85+
}
86+
}
8287

83-
NonLazyGrid(
84-
columns = 2,
85-
itemCount = sponsors.size,
86-
itemPaddingValues = PaddingValues(16.dp)
87-
) {
88-
MemberCard(member = sponsors[it])
88+
itemsIndexed(
89+
items = sponsors,
90+
key = { _, it -> it.name }
91+
) { index, it ->
92+
MemberCard(
93+
member = it,
94+
index = index
95+
)
8996
}
9097
}
9198

9299
if (contributors.isNotNullOrEmpty()) {
93-
HorizontalDividerWithText(
94-
text = stringResource(
95-
R.string.contributors
96-
),
97-
thickness = 0.9.dp
98-
)
100+
item(span = { GridItemSpan(2) }) {
101+
Column(
102+
verticalArrangement = Arrangement.Center,
103+
horizontalAlignment = Alignment.CenterHorizontally
104+
) {
105+
HorizontalDividerWithText(
106+
text = stringResource(
107+
R.string.contributors
108+
),
109+
thickness = 0.9.dp
110+
)
99111

100-
Text(
101-
text = stringResource(
102-
R.string.total_community_contributions,
103-
vm.totalContributionsCount
104-
),
105-
style = MaterialTheme.typography.titleSmall.copy(
106-
color = MaterialTheme.colorScheme.outline
107-
)
108-
)
112+
Text(
113+
text = stringResource(
114+
R.string.total_community_contributions,
115+
vm.totalContributionsCount
116+
),
117+
style = MaterialTheme.typography.titleSmall.copy(
118+
color = MaterialTheme.colorScheme.outline
119+
)
120+
)
121+
}
122+
}
109123

110-
NonLazyGrid(
111-
columns = 2,
112-
itemCount = contributors.size,
113-
itemPaddingValues = PaddingValues(16.dp)
114-
) {
115-
MemberCard(member = contributors[it])
124+
itemsIndexed(
125+
items = contributors,
126+
key = { _, it -> it.name }
127+
) { index, it ->
128+
MemberCard(
129+
member = it,
130+
index = index
131+
)
116132
}
117133
}
118-
119134
}
120-
121-
122135
}
123-
124-
125136
}

app/src/main/kotlin/com/dergoogler/mmrl/ui/screens/repositories/screens/exploreRepositories/items/MemberCard.kt

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import androidx.compose.foundation.lazy.items
1212
import androidx.compose.foundation.shape.RoundedCornerShape
1313
import androidx.compose.material3.Icon
1414
import androidx.compose.material3.MaterialTheme
15+
import androidx.compose.material3.Surface
1516
import androidx.compose.material3.Text
1617
import androidx.compose.material3.ripple
1718
import androidx.compose.runtime.Composable
@@ -31,13 +32,40 @@ import dev.dergoogler.mmrl.compat.ext.nullable
3132
import dev.dergoogler.mmrl.compat.ext.toDecodedUrl
3233

3334
@Composable
34-
fun MemberCard(member: ExploreRepositoryMember) {
35+
fun MemberCard(
36+
member: ExploreRepositoryMember,
37+
index: Int? = null,
38+
) {
3539
val browser = LocalUriHandler.current
3640
val interactionSource = remember { MutableInteractionSource() }
3741

3842
Card(
3943
modifier = {
4044
column = Modifier.padding(horizontal = 32.dp, vertical = 48.dp)
45+
},
46+
absolute = {
47+
index.nullable {
48+
if (it < 3) {
49+
Surface(
50+
shape = RoundedCornerShape(
51+
topEnd = 20.dp,
52+
bottomStart = 15.dp,
53+
bottomEnd = 0.dp
54+
),
55+
color = MaterialTheme.colorScheme.primary,
56+
modifier = Modifier
57+
.align(Alignment.TopEnd)
58+
) {
59+
Text(
60+
text = "#${it + 1}",
61+
style = MaterialTheme.typography.bodySmall,
62+
color = MaterialTheme.colorScheme.onPrimary,
63+
modifier = Modifier
64+
.padding(horizontal = 16.dp, vertical = 8.dp)
65+
)
66+
}
67+
}
68+
}
4169
}
4270
) {
4371
Column(
@@ -111,6 +139,5 @@ fun MemberCard(member: ExploreRepositoryMember) {
111139
}
112140
}
113141
}
114-
115142
}
116143
}

0 commit comments

Comments
 (0)