refactor: rename Details to MatchDetails

This commit is contained in:
Leonardo Murça 2025-07-18 22:47:36 -03:00
parent 07d20aba86
commit e36defeec1
7 changed files with 24 additions and 29 deletions

View file

@ -33,7 +33,7 @@ import xyz.leomurca.csgomatches.domain.model.League
import xyz.leomurca.csgomatches.domain.model.Match import xyz.leomurca.csgomatches.domain.model.Match
import xyz.leomurca.csgomatches.domain.model.MatchStatus import xyz.leomurca.csgomatches.domain.model.MatchStatus
import xyz.leomurca.csgomatches.domain.model.Opponent import xyz.leomurca.csgomatches.domain.model.Opponent
import xyz.leomurca.csgomatches.ui.navigation.DetailsRoute import xyz.leomurca.csgomatches.ui.navigation.MatchDetailsRoute
import xyz.leomurca.csgomatches.ui.theme.LiveRed import xyz.leomurca.csgomatches.ui.theme.LiveRed
import xyz.leomurca.csgomatches.ui.theme.White_20 import xyz.leomurca.csgomatches.ui.theme.White_20
import xyz.leomurca.csgomatches.ui.theme.White_50 import xyz.leomurca.csgomatches.ui.theme.White_50
@ -43,7 +43,7 @@ import java.time.ZonedDateTime
@Composable @Composable
fun MatchCard( fun MatchCard(
match: Match, match: Match,
onTapCard: (DetailsRoute) -> Unit, onTapCard: (MatchDetailsRoute) -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
Box(modifier = modifier.fillMaxWidth()) { Box(modifier = modifier.fillMaxWidth()) {
@ -54,7 +54,7 @@ fun MatchCard(
Card( Card(
modifier = Modifier.fillMaxWidth(), shape = RoundedCornerShape(16.dp), onClick = { modifier = Modifier.fillMaxWidth(), shape = RoundedCornerShape(16.dp), onClick = {
onTapCard( onTapCard(
DetailsRoute( MatchDetailsRoute(
leftOpponentId = leftOpponent.id, leftOpponentId = leftOpponent.id,
rightOpponentId = rightOpponent.id, rightOpponentId = rightOpponent.id,
leagueAndSerieName = leagueAndSerieName, leagueAndSerieName = leagueAndSerieName,

View file

@ -4,19 +4,19 @@ import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable import androidx.navigation.compose.composable
import androidx.navigation.toRoute import androidx.navigation.toRoute
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import xyz.leomurca.csgomatches.ui.screens.details.DetailsScreen import xyz.leomurca.csgomatches.ui.screens.matchdetails.MatchDetailsScreen
@Serializable @Serializable
data class DetailsRoute( data class MatchDetailsRoute(
val leftOpponentId: Long, val leftOpponentId: Long,
val rightOpponentId: Long, val rightOpponentId: Long,
val leagueAndSerieName: String, val leagueAndSerieName: String,
val scheduleString: String val scheduleString: String
) )
fun NavGraphBuilder.detailsScreen(onBackClick: () -> Unit) { fun NavGraphBuilder.matchDetailsScreen(onBackClick: () -> Unit) {
composable<DetailsRoute> { composable<MatchDetailsRoute> {
val details: DetailsRoute = it.toRoute() val matchDetails: MatchDetailsRoute = it.toRoute()
DetailsScreen(details = details, onBackClick = onBackClick) MatchDetailsScreen(matchDetails = matchDetails, onBackClick = onBackClick)
} }
} }

View file

@ -2,15 +2,13 @@ package xyz.leomurca.csgomatches.ui.navigation
import androidx.navigation.NavGraphBuilder import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable import androidx.navigation.compose.composable
import androidx.navigation.toRoute
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import xyz.leomurca.csgomatches.domain.model.Match
import xyz.leomurca.csgomatches.ui.screens.matches.MatchesScreen import xyz.leomurca.csgomatches.ui.screens.matches.MatchesScreen
@Serializable @Serializable
object MatchesRoute object MatchesRoute
fun NavGraphBuilder.matchesScreen(onTapCard: (DetailsRoute) -> Unit) { fun NavGraphBuilder.matchesScreen(onTapCard: (MatchDetailsRoute) -> Unit) {
composable<MatchesRoute> { composable<MatchesRoute> {
MatchesScreen(onTapCard = onTapCard) MatchesScreen(onTapCard = onTapCard)
} }

View file

@ -14,7 +14,7 @@ fun RootNavHost() {
matchesScreen { matchesScreen {
navController.navigate(it) navController.navigate(it)
} }
detailsScreen { matchDetailsScreen {
navController.popBackStack() navController.popBackStack()
} }
} }

View file

@ -1,4 +1,4 @@
package xyz.leomurca.csgomatches.ui.screens.details package xyz.leomurca.csgomatches.ui.screens.matchdetails
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
@ -10,7 +10,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@ -24,21 +23,20 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import xyz.leomurca.csgomatches.ui.components.LoadingIndicator import xyz.leomurca.csgomatches.ui.components.LoadingIndicator
import xyz.leomurca.csgomatches.ui.navigation.DetailsRoute import xyz.leomurca.csgomatches.ui.navigation.MatchDetailsRoute
import xyz.leomurca.csgomatches.ui.theme.White import xyz.leomurca.csgomatches.ui.theme.White
@OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun DetailsScreen( fun MatchDetailsScreen(
viewModel: DetailsViewModel = hiltViewModel(), viewModel: MatchDetailsViewModel = hiltViewModel(),
details: DetailsRoute, matchDetails: MatchDetailsRoute,
onBackClick: () -> Unit onBackClick: () -> Unit
) { ) {
val uiState = viewModel.uiState.collectAsState() val uiState = viewModel.uiState.collectAsState()
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
viewModel.loadTeam(details.leftOpponentId.toString(), isLeft = true) viewModel.loadTeam(matchDetails.leftOpponentId.toString(), isLeft = true)
viewModel.loadTeam(details.rightOpponentId.toString(), isLeft = false) viewModel.loadTeam(matchDetails.rightOpponentId.toString(), isLeft = false)
} }
Box( Box(
@ -47,7 +45,7 @@ fun DetailsScreen(
.background(MaterialTheme.colorScheme.background), .background(MaterialTheme.colorScheme.background),
contentAlignment = Alignment.Center contentAlignment = Alignment.Center
) { ) {
TopBar(details.leagueAndSerieName, onBackClick) TopBar(matchDetails.leagueAndSerieName, onBackClick)
val value = uiState.value val value = uiState.value
when { when {

View file

@ -1,6 +1,5 @@
package xyz.leomurca.csgomatches.ui.screens.details package xyz.leomurca.csgomatches.ui.screens.matchdetails
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
@ -15,7 +14,7 @@ import xyz.leomurca.csgomatches.domain.repository.MatchRepository
import javax.inject.Inject import javax.inject.Inject
@HiltViewModel @HiltViewModel
class DetailsViewModel @Inject constructor( class MatchDetailsViewModel @Inject constructor(
private val matchRepository: MatchRepository, private val matchRepository: MatchRepository,
) : ViewModel() { ) : ViewModel() {

View file

@ -24,7 +24,7 @@ import androidx.hilt.navigation.compose.hiltViewModel
import xyz.leomurca.csgomatches.domain.model.Match import xyz.leomurca.csgomatches.domain.model.Match
import xyz.leomurca.csgomatches.ui.components.LoadingIndicator import xyz.leomurca.csgomatches.ui.components.LoadingIndicator
import xyz.leomurca.csgomatches.ui.components.MatchCard import xyz.leomurca.csgomatches.ui.components.MatchCard
import xyz.leomurca.csgomatches.ui.navigation.DetailsRoute import xyz.leomurca.csgomatches.ui.navigation.MatchDetailsRoute
import xyz.leomurca.csgomatches.ui.screens.matches.MatchesViewModel.MatchesUiState import xyz.leomurca.csgomatches.ui.screens.matches.MatchesViewModel.MatchesUiState
import xyz.leomurca.csgomatches.ui.theme.White import xyz.leomurca.csgomatches.ui.theme.White
@ -32,7 +32,7 @@ import xyz.leomurca.csgomatches.ui.theme.White
@Composable @Composable
fun MatchesScreen( fun MatchesScreen(
viewModel: MatchesViewModel = hiltViewModel(), viewModel: MatchesViewModel = hiltViewModel(),
onTapCard: (DetailsRoute) -> Unit onTapCard: (MatchDetailsRoute) -> Unit
) { ) {
val uiState = viewModel.uiState.collectAsState() val uiState = viewModel.uiState.collectAsState()
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior() val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
@ -72,7 +72,7 @@ fun MatchesScreen(
} }
@Composable @Composable
private fun MatchesList(matches: List<Match>, onTapCard: (DetailsRoute) -> Unit) { private fun MatchesList(matches: List<Match>, onTapCard: (MatchDetailsRoute) -> Unit) {
LazyColumn( LazyColumn(
Modifier Modifier
.padding(horizontal = 24.dp), .padding(horizontal = 24.dp),