Found 14 matches for pattern "error|Snackbar" in path "app/src/main/java/com/servicebook/ui/records/VehicleDetailScreen.kt": --- File: VehicleDetailScreen.kt L36- import androidx.compose.material3.Icon L37- import androidx.compose.material3.IconButton L38- import androidx.compose.material3.LocalContentColor L39- import androidx.compose.material3.MaterialTheme L40- import androidx.compose.material3.Scaffold L41: import androidx.compose.material3.SnackbarHost L42: import androidx.compose.material3.SnackbarHostState L43- import androidx.compose.material3.Text L44- import androidx.compose.material3.TopAppBar L45- import androidx.compose.runtime.Composable L46- import androidx.compose.runtime.LaunchedEffect L47- import androidx.compose.runtime.getValue L69- import com.servicebook.domain.model.RecordWithCategory L70- import com.servicebook.ui.components.ChromeLikeMenu L71- import com.servicebook.ui.components.ChromeLikeMenuItem L72- import com.servicebook.ui.components.ConfirmDeleteDialog L73- import com.servicebook.ui.components.EmptyStateView L74: import com.servicebook.ui.components.ErrorListItem L75- import com.servicebook.ui.components.shimmerBrush L76- import com.servicebook.ui.navigation.AddRecord L77- import com.servicebook.ui.navigation.EditVehicle L78- import com.servicebook.ui.navigation.RecordDetail L79- import com.servicebook.ui.theme.appTopAppBarColors L94- extraParams = mapOf("vehicleId" to vehicleId), L95- ), L96- ), L97- ) { L98- val state by viewModel.state.collectAsStateWithLifecycle() L99: val snackbarHostState = remember { SnackbarHostState() } L100- L101: LaunchedEffect(state.error) { L102: state.error?.let { L103: snackbarHostState.showSnackbar(it) L104: viewModel.onEvent(VehicleDetailEvent.DismissError) L105- } L106- } L107- L108- LaunchedEffect(Unit) { L109- viewModel.effects.collect { effect -> L197- containerColor = MaterialTheme.colorScheme.primaryContainer, L198- contentColor = MaterialTheme.colorScheme.onPrimaryContainer, L199- modifier = Modifier.testTag("AddRecordFab"), L200- ) L201- }, L202: snackbarHost = { SnackbarHost(snackbarHostState) }, L203- ) { padding -> L204- if (state.isLoading) { L205- LazyColumn( L206- modifier = L207- Modifier L220- ) L221- } else { L222- val groupedRecords = L223- remember(state.records) { L224- state.records L225: .filter { !it.isError } L226- .groupBy { DateFormatter.toYear(it.record.date) } L227- .entries.sortedByDescending { it.key } L228- } L229: val errorRecords = L230- remember(state.records) { L231: state.records.filter { it.isError } L232- } L233- val odometerUnit = state.vehicle?.odometerUnit?.label ?: "km" L234- val outlineVariant = MaterialTheme.colorScheme.outlineVariant L235- L236- LazyColumn( L259- modifier = Modifier.testTag("RecordItem_${item.record.id}"), L260- ) L261- } L262- } L263- } L264: errorRecords.forEach { item -> L265- item(key = item.record.id) { L266: ErrorListItem(errorMessage = item.rawError) L267- } L268- } L269- } L270- } L271- } ---