@@ -6,14 +6,20 @@ import androidx.compose.foundation.layout.Box
6
6
import androidx.compose.foundation.layout.fillMaxSize
7
7
import androidx.compose.foundation.layout.padding
8
8
import androidx.compose.material.icons.Icons
9
- import androidx.compose.material.icons.filled.*
10
- import androidx.compose.material.icons.outlined.*
9
+ import androidx.compose.material.icons.filled.AccessTimeFilled
10
+ import androidx.compose.material.icons.filled.EmojiEvents
11
+ import androidx.compose.material.icons.filled.FormatListNumbered
12
+ import androidx.compose.material.icons.filled.People
13
+ import androidx.compose.material.icons.outlined.AccessTime
14
+ import androidx.compose.material.icons.outlined.EmojiEvents
15
+ import androidx.compose.material.icons.outlined.PeopleOutline
11
16
import androidx.compose.material3.MaterialTheme
12
17
import androidx.compose.material3.NavigationBar
13
18
import androidx.compose.material3.NavigationBarItem
14
19
import androidx.compose.material3.Scaffold
15
20
import androidx.compose.material3.Text
16
21
import androidx.compose.runtime.Composable
22
+ import androidx.compose.runtime.LaunchedEffect
17
23
import androidx.compose.runtime.SideEffect
18
24
import androidx.compose.runtime.getValue
19
25
import androidx.compose.runtime.mutableIntStateOf
@@ -32,7 +38,10 @@ import androidx.navigation.NavController
32
38
import androidx.navigation.compose.currentBackStackEntryAsState
33
39
import com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi
34
40
import com.ramcosta.composedestinations.annotation.Destination
35
- import com.sunkensplashstudios.VRCRoboScout.destinations.*
41
+ import com.sunkensplashstudios.VRCRoboScout.destinations.EventDivisionAwardsViewDestination
42
+ import com.sunkensplashstudios.VRCRoboScout.destinations.EventDivisionMatchesViewDestination
43
+ import com.sunkensplashstudios.VRCRoboScout.destinations.EventDivisionRankingsViewDestination
44
+ import com.sunkensplashstudios.VRCRoboScout.destinations.EventTeamsViewDestination
36
45
37
46
class EventDivisionViewModel : ViewModel () {
38
47
var event by mutableStateOf(Event ())
@@ -96,16 +105,15 @@ fun DivisionTabView(tabBarItems: List<TabBarItem>, navController: NavController,
96
105
@OptIn(ExperimentalMaterialNavigationApi ::class , ExperimentalAnimationApi ::class )
97
106
@Destination
98
107
@Composable
99
- fun EventDivisionView (eventDivisionViewModel : EventDivisionViewModel = viewModel(), navController : NavController , event : Event , division : Division ) {
108
+ fun EventDivisionView (eventId : Int , division : Division , eventDivisionViewModel : EventDivisionViewModel = viewModel(), navController : NavController ) {
100
109
101
- /* val divisionViewModels = mapOf(
102
- "event_division_matches_view" to viewModel<EventDivisionMatchesViewModel>(),
103
- "event_division_rankings_view" to viewModel<EventDivisionRankingsViewModel>(),
104
- "event_division_awards_view" to viewModel<EventDivisionAwardsViewModel>()
105
- )*/
110
+ LaunchedEffect (Unit ) {
111
+ eventDivisionViewModel.event = eventDataTransferManager.getEvent(eventId) ? : Event (eventId, false )
112
+ eventDivisionViewModel.division = division
113
+ }
106
114
107
115
// setting up the individual tabs
108
- val teamsTab = TabBarItem (title = " Teams" , direction = EventTeamsViewDestination (eventDivisionViewModel.event, eventDivisionViewModel.division), selectedIcon = Icons .Filled .People , unselectedIcon = Icons .Outlined .PeopleOutline )
116
+ val teamsTab = TabBarItem (title = " Teams" , direction = EventTeamsViewDestination (eventDivisionViewModel.event.id , eventDivisionViewModel.division), selectedIcon = Icons .Filled .People , unselectedIcon = Icons .Outlined .PeopleOutline )
109
117
val matchListTab = TabBarItem (title = " Match List" , direction = EventDivisionMatchesViewDestination (eventDivisionViewModel.event, eventDivisionViewModel.division), selectedIcon = Icons .Filled .AccessTimeFilled , unselectedIcon = Icons .Outlined .AccessTime )
110
118
val rankingsTab = TabBarItem (title = " Rankings" , direction = EventDivisionRankingsViewDestination (eventDivisionViewModel.event, eventDivisionViewModel.division), selectedIcon = Icons .Filled .FormatListNumbered , unselectedIcon = Icons .Filled .FormatListNumbered )
111
119
val awardsTab = TabBarItem (title = " Awards" , direction = EventDivisionAwardsViewDestination (eventDivisionViewModel.event, eventDivisionViewModel.division), selectedIcon = Icons .Filled .EmojiEvents , unselectedIcon = Icons .Outlined .EmojiEvents )
@@ -158,29 +166,29 @@ fun EventDivisionView(eventDivisionViewModel: EventDivisionViewModel = viewModel
158
166
0 -> {
159
167
EventTeamsView (
160
168
navController = navController,
161
- event = event ,
169
+ eventId = eventId ,
162
170
division = division
163
171
)
164
172
}
165
173
1 -> {
166
174
EventDivisionMatchesView (
167
175
navController = navController,
168
- event = event,
176
+ event = eventDivisionViewModel. event,
169
177
division = division,
170
178
// eventDivisionMatchesViewModel = divisionViewModels["event_division_matches_view"] as EventDivisionMatchesViewModel
171
179
)
172
180
}
173
181
2 -> {
174
182
EventDivisionRankingsView (
175
- event = event,
183
+ event = eventDivisionViewModel. event,
176
184
division = division,
177
185
navController = navController,
178
186
// eventDivisionRankingsViewModel = divisionViewModels["event_division_rankings_view"] as EventDivisionRankingsViewModel
179
187
)
180
188
}
181
189
3 -> {
182
190
EventDivisionAwardsView (
183
- event = event,
191
+ event = eventDivisionViewModel. event,
184
192
division = division,
185
193
navController = navController,
186
194
// eventDivisionAwardsViewModel = divisionViewModels["event_division_awards_view"] as EventDivisionAwardsViewModel
0 commit comments