This message was deleted.
# koin
s
This message was deleted.
y
The Issue: Three components depend on each other in a loop: •
TextModelSlice
ChatHistorySlice
ChatHistorySlice
ChatMessageSlice
ChatMessageSlice
TextModelSlice
here is my code: Interfaces & Implementations:
Copy code
// ChatMessageSlice  
interface ChatMessageSlice { ---- } 
class ChatMessageSliceImpl(  
    private val textModelSlice: TextModelSlice,  
    private val chutesAiRepository: ChutesAiRepository  
) : ChatMessageSlice  { ---- } 

// TextModelSlice  
interface TextModelSlice  { ---- } 
class TextModelSliceImpl(  
    private val chatHistorySlice: ChatHistorySlice,  
    private val chatMessageSlice: ChatMessageSlice  
) : TextModelSlice  { ---- } 

// ChatHistorySlice  
interface ChatHistorySlice  { ---- } 
class ChatHistorySliceImpl(  
    private val chatMessageSlice: ChatMessageSlice,  
    private val textModelSlice: TextModelSlice  
) : ChatHistorySlice { ---- }
ViewModel:
Copy code
class ChatViewModel(  
    private val chutesAiRepository: ChutesAiRepository,  
    private val textModelSlice: TextModelSlice,  
    private val chatMessageSlice: ChatMessageSlice,  
    private val chatHistorySlice: ChatHistorySlice  
) : ViewModel()  { ---- }
Koin Modules:
Copy code
----
val provideSliceModule = module {  
    single<TextModelSlice> { TextModelSliceImpl(get(), get()) }  
    single<ChatMessageSlice> { ChatMessageSliceImpl(get(), get()) }  
    single<ChatHistorySlice> { ChatHistorySliceImpl(get(), get()) }  
}  

val provideViewModelModule = module {  
    viewModel {  
        ChatViewModel(  
            chatMessageSlice = get(),  
            textModelSlice = get(),  
            chatHistorySlice = get(),  
            chutesAiRepository = get()  
        )  
    }  
}
------