Guilherme Delgado
08/10/2023, 2:07 PMstruct SampleUIViewController: UIViewControllerRepresentable {
    
    @Binding var status: String
    let action: () -> Void
    
    func makeUIViewController(context: Context) -> UIViewController {
        return SharedViewControllers().SampleComposable(status: status, click: action)
    }
    
    func updateUIViewController(_ uiViewController: UIViewController, context: Context) { 
         //how to update the composable state when binding values changes?
    }
}
struct ComposeScreen: View {
    
    @StateObject private var viewModel = ViewModels.sampleViewModel()
    @State private var status: String = ""
    
    var body: some View {
        SampleUIViewController(
            status: $status,
            action: { viewModel.doSomething() }
        )
        .onReceive(viewModel.$state) { new in            
            status = new.label()
        }
        .ignoresSafeArea()
    }
}viewModel.doSomething()updateUIViewControllerDima Avdeev
08/10/2023, 5:41 PMGuilherme Delgado
08/10/2023, 5:46 PMGuilherme Delgado
08/10/2023, 5:54 PMGuilherme Delgado
08/10/2023, 6:02 PMGuilherme Delgado
08/10/2023, 6:20 PMGuilherme Delgado
08/11/2023, 12:06 AMobject SharedViewControllers {
    private data class ComposeUIViewState(val status: String = "")
    private val _state = MutableStateFlow(ComposeUIViewState())
    fun sampleComposable(status: String, click: () -> Unit): UIViewController {
        return ComposeUIViewController {
            with(_state.collectAsState().value) {
                 Composable(state.status, click)
            }
        }
    }
    fun updateSampleComposable(status: String) {
        _state.update { ComposeUIViewState(status = status) }
    }
}struct SampleUIViewController: UIViewControllerRepresentable {
    
    @Binding var status: String
    let action: () -> Void
    
    func makeUIViewController(context: Context) -> UIViewController {
        return SharedViewControllers().sampleComposable(click: action)
    }
    
    func updateUIViewController(_ uiViewController: UIViewController, context: Context) {
          SharedViewControllers().updateSampleComposable(status: status)
    }
}Davgdafa
08/18/2023, 9:53 PMGuilherme Delgado
08/19/2023, 8:38 AM