@@ -7,27 +7,20 @@ import com.mrboomdev.awery.data.settings.collectAsState
77import com.mrboomdev.awery.extension.sdk.Preference
88import com.mrboomdev.awery.extension.sdk.Video
99import com.mrboomdev.awery.resources.*
10- import com.mrboomdev.awery.ui.components.LocalToaster
10+ import com.mrboomdev.awery.ui.screens.auth.AuthScreen
1111import com.mrboomdev.awery.ui.screens.browser.BrowserScreen
1212import com.mrboomdev.awery.ui.screens.extension.*
1313import com.mrboomdev.awery.ui.screens.home.HomeScreen
14- import com.mrboomdev.awery.ui.screens.home.HomeViewModel
1514import com.mrboomdev.awery.ui.screens.intro.IntroScreen
1615import com.mrboomdev.awery.ui.screens.intro.IntroStep
1716import com.mrboomdev.awery.ui.screens.library.LibraryColumnScreen
1817import com.mrboomdev.awery.ui.screens.library.LibraryTabbedScreen
19- import com.mrboomdev.awery.ui.screens.library.LibraryViewModel
2018import com.mrboomdev.awery.ui.screens.media.MediaScreen
21- import com.mrboomdev.awery.ui.screens.media.MediaScreenViewModel
2219import com.mrboomdev.awery.ui.screens.notifications.NotificationsScreen
23- import com.mrboomdev.awery.ui.screens.notifications.NotificationsViewModel
2420import com.mrboomdev.awery.ui.screens.player.PlayerScreen
25- import com.mrboomdev.awery.ui.screens.player.PlayerScreenViewModel
2621import com.mrboomdev.awery.ui.screens.search.SearchScreen
27- import com.mrboomdev.awery.ui.screens.search.SearchViewModel
2822import com.mrboomdev.awery.ui.screens.settings.SettingsScreen
2923import com.mrboomdev.awery.ui.screens.settings.pages.SettingsPages
30- import com.mrboomdev.awery.ui.utils.viewModel
3124import com.mrboomdev.navigation.core.TypeSafeNavigation
3225import kotlinx.serialization.Serializable
3326import org.jetbrains.compose.resources.DrawableResource
@@ -37,42 +30,41 @@ val Navigation = TypeSafeNavigation<Routes>()
3730
3831@Serializable
3932sealed interface Routes {
33+ @Composable
34+ fun Content (contentPadding : PaddingValues )
35+
4036 @Serializable
4137 data object Home : Routes {
4238 @Composable
43- fun Content (
44- viewModel : HomeViewModel = viewModel { HomeViewModel () },
39+ override fun Content (
4540 contentPadding : PaddingValues
46- ) = HomeScreen (viewModel, contentPadding)
41+ ) = HomeScreen (contentPadding = contentPadding)
4742 }
4843
4944 @Serializable
5045 data object Search : Routes {
5146 @Composable
52- fun Content (
53- viewModel : SearchViewModel = viewModel { SearchViewModel () },
47+ override fun Content (
5448 contentPadding : PaddingValues
55- ) = SearchScreen (viewModel, contentPadding)
49+ ) = SearchScreen (contentPadding = contentPadding)
5650 }
5751
5852 @Serializable
5953 data object Notifications : Routes {
6054 @Composable
61- fun Content (
62- viewModel : NotificationsViewModel = viewModel { NotificationsViewModel () },
55+ override fun Content (
6356 contentPadding : PaddingValues
64- ) = NotificationsScreen (viewModel, contentPadding)
57+ ) = NotificationsScreen (contentPadding = contentPadding)
6558 }
6659
6760 @Serializable
6861 data object Library : Routes {
6962 @Composable
70- fun Content (
71- viewModel : LibraryViewModel = viewModel { LibraryViewModel () },
63+ override fun Content (
7264 contentPadding : PaddingValues
7365 ) = when (AwerySettings .libraryStyle.collectAsState().value) {
74- AwerySettings .LibraryStyle .TABBED -> LibraryTabbedScreen (viewModel, contentPadding)
75- AwerySettings .LibraryStyle .COLUMN -> LibraryColumnScreen (viewModel, contentPadding)
66+ AwerySettings .LibraryStyle .TABBED -> LibraryTabbedScreen (contentPadding = contentPadding)
67+ AwerySettings .LibraryStyle .COLUMN -> LibraryColumnScreen (contentPadding = contentPadding)
7668 }
7769 }
7870
@@ -81,7 +73,9 @@ sealed interface Routes {
8173 val initialPage : SettingsPages = SettingsPages .Main ()
8274 ): Routes {
8375 @Composable
84- fun Content (contentPadding : PaddingValues ) = SettingsScreen (initialPage, contentPadding)
76+ override fun Content (
77+ contentPadding : PaddingValues
78+ ) = SettingsScreen (initialPage, contentPadding)
8579 }
8680
8781 @Serializable
@@ -91,10 +85,9 @@ sealed interface Routes {
9185 val media : com.mrboomdev.awery.extension.sdk.Media
9286 ): Routes {
9387 @Composable
94- fun Content (
95- viewModel : MediaScreenViewModel = viewModel { MediaScreenViewModel (this) },
88+ override fun Content (
9689 contentPadding : PaddingValues
97- ) = MediaScreen (this , viewModel, contentPadding)
90+ ) = MediaScreen (this , contentPadding = contentPadding)
9891 }
9992
10093 @Serializable
@@ -103,17 +96,9 @@ sealed interface Routes {
10396 val title : String = video.title ? : video.url
10497 ): Routes {
10598 @Composable
106- fun Content (
107- viewModel : PlayerScreenViewModel = run {
108- val navigation = Navigation .current()
109- val toaster = LocalToaster .current
110-
111- viewModel {
112- PlayerScreenViewModel (this@Player , navigation, toaster, it)
113- }
114- },
99+ override fun Content (
115100 contentPadding : PaddingValues
116- ) = PlayerScreen (this , viewModel )
101+ ) = PlayerScreen (this )
117102 }
118103
119104 @Serializable
@@ -122,10 +107,9 @@ sealed interface Routes {
122107 val extensionName : String
123108 ): Routes {
124109 @Composable
125- fun Content (
126- viewModel : ExtensionScreenViewModel = viewModel { ExtensionScreenViewModel (extensionId) },
110+ override fun Content (
127111 contentPadding : PaddingValues
128- ) = ExtensionScreen (this , viewModel, contentPadding)
112+ ) = ExtensionScreen (this , contentPadding = contentPadding)
129113 }
130114
131115 @Serializable
@@ -136,15 +120,9 @@ sealed interface Routes {
136120 val feedName : String
137121 ): Routes {
138122 @Composable
139- fun Content (
140- viewModel : ExtensionFeedScreenViewModel = run {
141- val navigation = Navigation .current()
142- val toaster = LocalToaster .current
143-
144- viewModel { ExtensionFeedScreenViewModel (this@ExtensionFeed , toaster, navigation) }
145- },
123+ override fun Content (
146124 contentPadding : PaddingValues
147- ) = ExtensionFeedScreen (this , viewModel, contentPadding)
125+ ) = ExtensionFeedScreen (this , contentPadding = contentPadding)
148126 }
149127
150128 @Serializable
@@ -154,10 +132,9 @@ sealed interface Routes {
154132 val filters : List <Preference <* >>? = null
155133 ): Routes {
156134 @Composable
157- fun Content (
158- viewModel : ExtensionSearchScreenViewModel = viewModel { ExtensionSearchScreenViewModel (this) },
135+ override fun Content (
159136 contentPadding : PaddingValues
160- ) = ExtensionSearchScreen (this , viewModel, contentPadding)
137+ ) = ExtensionSearchScreen (this , contentPadding = contentPadding)
161138 }
162139
163140 @Serializable
@@ -166,7 +143,7 @@ sealed interface Routes {
166143 val singleStep : Boolean
167144 ): Routes {
168145 @Composable
169- fun Content (
146+ override fun Content (
170147 contentPadding : PaddingValues
171148 ) = IntroScreen (this , contentPadding)
172149 }
@@ -176,7 +153,17 @@ sealed interface Routes {
176153 val url : String
177154 ): Routes {
178155 @Composable
179- fun Content (contentPadding : PaddingValues ) = BrowserScreen (url)
156+ override fun Content (
157+ contentPadding : PaddingValues
158+ ) = BrowserScreen (url)
159+ }
160+
161+ @Serializable
162+ data object Auth : Routes {
163+ @Composable
164+ override fun Content (
165+ contentPadding : PaddingValues
166+ ) = AuthScreen (contentPadding = contentPadding)
180167 }
181168}
182169
0 commit comments