Dhaval Gondaliya
05/18/2023, 5:39 AMDhaval Gondaliya
05/18/2023, 5:41 AM@HiltViewModel
class UserViewModel @Inject constructor(
private var userRepository: UserRepository,
val session: Session,
) : ViewModel() {
val isLoggedIn: StateFlow<Boolean> = session.isUserLoggedIn().stateIn(
scope = viewModelScope, started = SharingStarted.WhileSubscribed(), initialValue = false
)
val id = session.userId().stateIn(
scope = viewModelScope, initialValue = 0, started = SharingStarted.WhileSubscribed()
)
val token = session.loginToken().stateIn(
scope = viewModelScope, initialValue = "", started = SharingStarted.WhileSubscribed()
)
private val _search = MutableStateFlow("")
val search = _search.asStateFlow()
.stateIn(
scope = viewModelScope,
started = SharingStarted.WhileSubscribed(),
initialValue = "",
)
@OptIn(FlowPreview::class, ExperimentalCoroutinesApi::class)
val searchedDataFlow = search.debounce(300.milliseconds).flatMapLatest { query ->
userRepository.getAllMember(
id.value, query, token = token.value,
bloodGroupId, educationId,
businessId, villageId
).cachedIn(viewModelScope)
}
}
This is my viewmodel class, I have tried using .value but sometimes i get value in rest api and sometime dont.