Skip to content

Commit

Permalink
Added callback on scenario click
Browse files Browse the repository at this point in the history
  • Loading branch information
vooft committed Nov 11, 2024
1 parent 608c265 commit efe78ad
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package io.github.vooft.pepper
import androidx.compose.material.MaterialTheme
import androidx.compose.runtime.Composable
import io.github.vooft.pepper.configuration.koinConfiguration
import io.github.vooft.pepper.suite.PepperSuiteScreen
import io.github.vooft.pepper.suite.PepperSuitesListScreen
import org.jetbrains.compose.ui.tooling.preview.Preview
import org.koin.compose.KoinApplication
import org.koin.core.KoinApplication
Expand All @@ -13,7 +13,7 @@ import org.koin.core.KoinApplication
fun App() {
KoinApplication(KoinApplication::koinConfiguration) {
MaterialTheme {
PepperSuiteScreen()
PepperSuitesListScreen()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import io.github.vooft.pepper.reports.api.PepperTestScenario
import io.github.vooft.pepper.suiteitem.PepperTestScenarioList
import org.koin.compose.viewmodel.koinViewModel

@Composable
fun PepperSuiteScreen(viewModel: PepperSuiteViewModel = koinViewModel()) {
fun PepperSuitesListScreen(viewModel: PepperSuiteViewModel = koinViewModel(), onScenarioClicked: (PepperTestScenario) -> Unit = {}) {
val viewModelState by viewModel.state.collectAsState()

Column(modifier = Modifier.fillMaxSize()) {
Expand All @@ -38,7 +39,11 @@ fun PepperSuiteScreen(viewModel: PepperSuiteViewModel = koinViewModel()) {
}

is PepperSuiteViewModel.ModelState.ScenariosLoaded -> {
PepperTestScenarioList(modifier = Modifier.fillMaxSize(), scenarios = state.scenarios)
PepperTestScenarioList(
modifier = Modifier.fillMaxSize(),
scenarios = state.scenarios,
onScenarioClicked = onScenarioClicked
)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import androidx.compose.ui.unit.dp
import io.github.vooft.pepper.reports.api.PepperTestScenario

@Composable
fun PepperTestScenarioList(modifier: Modifier = Modifier, scenarios: List<PepperTestScenario>) {
fun PepperTestScenarioList(modifier: Modifier = Modifier, scenarios: List<PepperTestScenario>, onScenarioClicked: (PepperTestScenario) -> Unit = {}) {
LazyColumn(modifier = modifier.padding(vertical = 4.dp)) {
items(scenarios) { scenario ->
PepperTestScenarioListItem(scenario = scenario)
PepperTestScenarioListItem(scenario = scenario, onClicked = { onScenarioClicked(scenario) })
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.github.vooft.pepper.suiteitem

import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Card
Expand All @@ -12,10 +13,19 @@ import io.github.vooft.pepper.reports.api.PepperScenarioStatus
import io.github.vooft.pepper.reports.api.PepperTestScenario

@Composable
fun PepperTestScenarioListItem(modifier: Modifier = Modifier, scenario: PepperTestScenario) {
Card(
fun PepperTestScenarioListItem(modifier: Modifier = Modifier, scenario: PepperTestScenario, onClicked: () -> Unit = {}) {
ScenarioListItemContainer(
modifier = modifier.clickable { onClicked() },
backgroundColor = scenario.status.color,
modifier = modifier.padding(vertical = 4.dp, horizontal = 8.dp)
scenario = scenario
)
}

@Composable
fun ScenarioListItemContainer(modifier: Modifier = Modifier, backgroundColor: Color, scenario: PepperTestScenario) {
Card(
backgroundColor = backgroundColor,
modifier = modifier.padding(vertical = 4.dp, horizontal = 8.dp).clickable { }
) {
ScenarioListItemContent(scenario = scenario)
}
Expand Down

0 comments on commit efe78ad

Please sign in to comment.