Skip to content

Commit 82b1a32

Browse files
committed
pull results lazycolumn out into separate component
1 parent de3f5f8 commit 82b1a32

4 files changed

Lines changed: 64 additions & 51 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.cornellappdev.score.components.highlights
2+
3+
import androidx.compose.foundation.layout.Arrangement
4+
import androidx.compose.foundation.layout.Spacer
5+
import androidx.compose.foundation.layout.height
6+
import androidx.compose.foundation.layout.padding
7+
import androidx.compose.foundation.layout.width
8+
import androidx.compose.foundation.lazy.LazyColumn
9+
import androidx.compose.foundation.lazy.items
10+
import androidx.compose.runtime.Composable
11+
import androidx.compose.ui.Modifier
12+
import androidx.compose.ui.tooling.preview.Preview
13+
import androidx.compose.ui.unit.dp
14+
import com.cornellappdev.score.components.ScorePreview
15+
import com.cornellappdev.score.model.HighlightData
16+
import com.cornellappdev.score.util.highlightsList
17+
18+
@Composable
19+
fun HighlightsCardLazyColumn(
20+
highlightsList: List<HighlightData>
21+
){
22+
LazyColumn(
23+
modifier = Modifier.padding(top = 16.dp),
24+
verticalArrangement = Arrangement.spacedBy(16.dp)
25+
) {
26+
items(highlightsList) { item ->
27+
when (item) {
28+
is HighlightData.Video -> VideoHighlightCard(item.data, true)
29+
is HighlightData.Article -> ArticleHighlightCard(item.data, true)
30+
}
31+
}
32+
}
33+
Spacer(modifier = Modifier.height(24.dp))
34+
}
35+
36+
@Preview
37+
@Composable
38+
private fun HighlightsCardLazyColumnPreview(){
39+
ScorePreview {
40+
HighlightsCardLazyColumn(highlightsList)
41+
}
42+
}

app/src/main/java/com/cornellappdev/score/components/highlights/HighlightsScreeSearchFilterBar.kt renamed to app/src/main/java/com/cornellappdev/score/components/highlights/HighlightsScreenSearchFilterBar.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import androidx.compose.foundation.layout.Spacer
88
import androidx.compose.foundation.layout.fillMaxWidth
99
import androidx.compose.foundation.layout.height
1010
import androidx.compose.foundation.layout.padding
11-
import androidx.compose.foundation.layout.width
1211
import androidx.compose.foundation.shape.RoundedCornerShape
1312
import androidx.compose.material3.Text
1413
import androidx.compose.runtime.Composable
@@ -20,7 +19,6 @@ import androidx.compose.ui.unit.dp
2019
import com.cornellappdev.score.components.ScorePreview
2120
import com.cornellappdev.score.model.Sport
2221
import com.cornellappdev.score.theme.Style.bodyMedium
23-
import com.cornellappdev.score.theme.Style.bodyNormal
2422
import com.cornellappdev.score.util.sportList
2523

2624
@Composable

app/src/main/java/com/cornellappdev/score/screen/HighlightsSearchScreen.kt

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import androidx.compose.ui.unit.dp
2020
import com.cornellappdev.score.R
2121
import com.cornellappdev.score.components.EmptyStateBox
2222
import com.cornellappdev.score.components.highlights.ArticleHighlightCard
23+
import com.cornellappdev.score.components.highlights.HighlightsCardLazyColumn
2324
import com.cornellappdev.score.components.highlights.HighlightsScreenSearchFilterBar
2425
import com.cornellappdev.score.components.highlights.RecentSearches
2526
import com.cornellappdev.score.components.highlights.VideoHighlightCard
@@ -69,21 +70,8 @@ fun HighlightsSearchScreen(
6970
)
7071
} else {
7172
Text("${filteredList.size} Results", style = bodyNormal)
72-
LazyColumn(
73-
verticalArrangement = Arrangement.spacedBy(16.dp)
74-
) {
75-
item { Spacer(Modifier.width(8.dp)) }
76-
items(filteredList) { item ->
77-
when (item) {
78-
is HighlightData.Video -> VideoHighlightCard(item.data, true)
79-
is HighlightData.Article -> ArticleHighlightCard(item.data, true)
80-
}
81-
}
82-
item { Spacer(Modifier.width(8.dp)) }
83-
}
84-
Spacer(modifier = Modifier.height(24.dp))
73+
HighlightsCardLazyColumn(filteredList)
8574
}
86-
8775
}
8876
}
8977
}

app/src/main/java/com/cornellappdev/score/screen/HighlightsSubScreen.kt

Lines changed: 20 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
package com.cornellappdev.score.screen
22

33
import androidx.compose.foundation.background
4+
import androidx.compose.foundation.clickable
45
import androidx.compose.foundation.layout.Arrangement
5-
import androidx.compose.foundation.layout.Box
66
import androidx.compose.foundation.layout.Column
77
import androidx.compose.foundation.layout.Row
88
import androidx.compose.foundation.layout.Spacer
99
import androidx.compose.foundation.layout.fillMaxSize
1010
import androidx.compose.foundation.layout.fillMaxWidth
1111
import androidx.compose.foundation.layout.height
1212
import androidx.compose.foundation.layout.padding
13-
import androidx.compose.foundation.layout.width
1413
import androidx.compose.foundation.layout.wrapContentSize
15-
import androidx.compose.foundation.lazy.LazyColumn
16-
import androidx.compose.foundation.lazy.items
1714
import androidx.compose.material3.Icon
1815
import androidx.compose.material3.Surface
1916
import androidx.compose.material3.Text
@@ -30,21 +27,20 @@ import androidx.compose.ui.unit.dp
3027
import com.cornellappdev.score.R
3128
import com.cornellappdev.score.components.EmptyStateBox
3229
import com.cornellappdev.score.components.ScorePreview
33-
import com.cornellappdev.score.components.highlights.ArticleHighlightCard
30+
import com.cornellappdev.score.components.highlights.HighlightsCardLazyColumn
3431
import com.cornellappdev.score.components.highlights.HighlightsScreenSearchFilterBar
3532
import com.cornellappdev.score.components.highlights.RecentSearches
36-
import com.cornellappdev.score.components.highlights.VideoHighlightCard
3733
import com.cornellappdev.score.model.HighlightData
3834
import com.cornellappdev.score.model.Sport
39-
import com.cornellappdev.score.theme.Style.bodyNormal
4035
import com.cornellappdev.score.theme.Style.heading2
4136
import com.cornellappdev.score.theme.White
4237
import com.cornellappdev.score.util.highlightsList
4338
import com.cornellappdev.score.util.sportList
4439

4540
@Composable
4641
fun HighlightsSubScreenHeader(
47-
header: String
42+
header: String,
43+
navigateBack: () -> Unit
4844
) {
4945
Row(
5046
modifier = Modifier
@@ -54,7 +50,8 @@ fun HighlightsSubScreenHeader(
5450
) {
5551
Icon(
5652
painter = painterResource(R.drawable.ic_left_arrowhead),
57-
contentDescription = "back arrow"
53+
contentDescription = "back arrow",
54+
modifier = Modifier.clickable(onClick = { navigateBack() })
5855
)
5956
Text(header, style = heading2)
6057
}
@@ -64,7 +61,7 @@ fun HighlightsSubScreenHeader(
6461
@Composable
6562
private fun HighlightsSubScreenHeader() {
6663
ScorePreview {
67-
HighlightsSubScreenHeader("Past 3 Days")
64+
HighlightsSubScreenHeader("Past 3 Days", {})
6865
}
6966
}
7067

@@ -83,25 +80,27 @@ fun HighlightsSubScreen(
8380
.padding(top = 24.dp)
8481
) {
8582
Surface(
86-
modifier = Modifier.wrapContentSize().dropShadow(
87-
shape = RectangleShape,
88-
shadow = Shadow(
89-
radius = 2.dp,
90-
color = Color.Black.copy(alpha = 0.05f),
91-
offset = DpOffset(0.dp, (2).dp)
92-
)
93-
),
83+
modifier = Modifier
84+
.wrapContentSize()
85+
.dropShadow(
86+
shape = RectangleShape,
87+
shadow = Shadow(
88+
radius = 2.dp,
89+
color = Color.Black.copy(alpha = 0.05f),
90+
offset = DpOffset(0.dp, (2).dp)
91+
)
92+
),
9493
color = White
9594
) {
96-
HighlightsSubScreenHeader(header)
95+
HighlightsSubScreenHeader(header, {})
9796
}
9897
Spacer(modifier = Modifier.height(16.dp))
9998
HighlightsScreenSearchFilterBar(
10099
sportList,
101100

102101
false
103102
) //need viewmodel to handle comms between composables
104-
Spacer(modifier = Modifier.height(24.dp))
103+
Spacer(modifier = Modifier.height(8.dp))
105104
Column(
106105
modifier = Modifier.padding(horizontal = 24.dp)
107106
) {
@@ -117,22 +116,8 @@ fun HighlightsSubScreen(
117116
title = "No results yet.",
118117
)
119118
} else {
120-
Text("${filteredList.size} Results", style = bodyNormal)
121-
LazyColumn(
122-
verticalArrangement = Arrangement.spacedBy(16.dp)
123-
) {
124-
item { Spacer(Modifier.width(8.dp)) }
125-
items(filteredList) { item ->
126-
when (item) {
127-
is HighlightData.Video -> VideoHighlightCard(item.data, true)
128-
is HighlightData.Article -> ArticleHighlightCard(item.data, true)
129-
}
130-
}
131-
item { Spacer(Modifier.width(8.dp)) }
132-
}
133-
Spacer(modifier = Modifier.height(24.dp))
119+
HighlightsCardLazyColumn(filteredList)
134120
}
135-
136121
}
137122
}
138123
}

0 commit comments

Comments
 (0)