Skip to content

Commit 575763f

Browse files
committed
fix: initialize viewmodel properly
1 parent a7a4f0b commit 575763f

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

composeApp/src/wasmJsMain/kotlin/org/nsh07/nsh07/ui/AppScreen.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@ import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSiz
44
import androidx.compose.runtime.Composable
55
import androidx.compose.runtime.collectAsState
66
import androidx.compose.runtime.getValue
7-
import androidx.compose.runtime.remember
87
import androidx.compose.ui.Modifier
9-
import org.nsh07.nsh07.network.GitHubApiClient
10-
import org.nsh07.nsh07.network.createHttpClient
8+
import androidx.lifecycle.viewmodel.compose.viewModel
119
import org.nsh07.nsh07.ui.homeScreen.AppHomeScreen
1210

1311
@OptIn(ExperimentalMaterial3WindowSizeClassApi::class)
1412
@Composable
1513
fun AppScreen(
16-
viewModel: UiViewModel = remember { UiViewModel(GitHubApiClient(createHttpClient())) },
14+
viewModel: UiViewModel = viewModel(factory = UiViewModel.Factory),
1715
modifier: Modifier = Modifier
1816
) {
1917
val projectsState by viewModel.projectsState.collectAsState()

composeApp/src/wasmJsMain/kotlin/org/nsh07/nsh07/ui/UiViewModel.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
package org.nsh07.nsh07.ui
22

33
import androidx.lifecycle.ViewModel
4+
import androidx.lifecycle.ViewModelProvider
45
import androidx.lifecycle.viewModelScope
6+
import androidx.lifecycle.viewmodel.initializer
7+
import androidx.lifecycle.viewmodel.viewModelFactory
58
import kotlinx.coroutines.flow.MutableStateFlow
69
import kotlinx.coroutines.flow.StateFlow
710
import kotlinx.coroutines.flow.asStateFlow
811
import kotlinx.coroutines.flow.update
912
import kotlinx.coroutines.launch
1013
import org.nsh07.nsh07.network.GitHubApiClient
14+
import org.nsh07.nsh07.network.createHttpClient
1115
import org.nsh07.nsh07.ui.homeScreen.ProjectsState
1216
import org.nsh07.nsh07.util.onError
1317
import org.nsh07.nsh07.util.onSuccess
@@ -45,4 +49,14 @@ class UiViewModel(
4549
}
4650
}
4751
}
52+
53+
companion object {
54+
val Factory: ViewModelProvider.Factory = viewModelFactory {
55+
initializer {
56+
val client = GitHubApiClient(createHttpClient())
57+
UiViewModel(client)
58+
}
59+
}
60+
}
61+
4862
}

0 commit comments

Comments
 (0)