22
33package com.example.rocketreserver
44
5+ import android.R.attr.onClick
56import androidx.compose.foundation.Image
67import androidx.compose.foundation.clickable
78import androidx.compose.foundation.layout.Box
@@ -10,32 +11,43 @@ import androidx.compose.foundation.layout.fillMaxWidth
1011import androidx.compose.foundation.layout.padding
1112import androidx.compose.foundation.layout.size
1213import androidx.compose.foundation.lazy.LazyColumn
14+ import androidx.compose.foundation.lazy.items
1315import androidx.compose.material3.CircularProgressIndicator
1416import androidx.compose.material3.ExperimentalMaterial3Api
1517import androidx.compose.material3.ListItem
1618import androidx.compose.material3.Text
1719import androidx.compose.runtime.Composable
20+ import androidx.compose.runtime.LaunchedEffect
21+ import androidx.compose.runtime.getValue
22+ import androidx.compose.runtime.mutableStateOf
23+ import androidx.compose.runtime.remember
24+ import androidx.compose.runtime.setValue
1825import androidx.compose.ui.Alignment
1926import androidx.compose.ui.Modifier
2027import androidx.compose.ui.res.painterResource
2128import androidx.compose.ui.unit.dp
2229
2330@Composable
2431fun LaunchList (onLaunchClick : (launchId: String ) -> Unit ) {
32+ var launchList by remember { mutableStateOf(emptyList<LaunchListQuery .Launch >()) }
33+ LaunchedEffect (Unit ) {
34+ val resp = apolloClient.query(LaunchListQuery ()).execute()
35+ launchList = resp.data?.launches?.launches?.filterNotNull() ? : emptyList()
36+ }
2537 LazyColumn (modifier = Modifier .fillMaxSize()) {
26- items(20 ) {
27- LaunchItem (launchId = it.toString(), onClick = onLaunchClick)
38+ items(launchList ) { launch ->
39+ LaunchItem (launch, onLaunchClick)
2840 }
2941 }
3042}
3143
3244@Composable
33- private fun LaunchItem (launchId : String , onClick : (launchId: String ) -> Unit ) {
45+ private fun LaunchItem (launch : LaunchListQuery . Launch , onClick : (launchId: String ) -> Unit ) {
3446 ListItem (
35- modifier = Modifier .clickable { onClick(launchId ) },
47+ modifier = Modifier .clickable { onClick(launch.id ) },
3648 headlineContent = {
3749 // Mission name
38- Text (text = " Launch $launchId " )
50+ Text (text = " Launch ${launch.id} " )
3951 },
4052 supportingContent = {
4153 // Site
0 commit comments