fun PackageSearchToolwindow()

in plugin/src/main/kotlin/com/jetbrains/packagesearch/plugin/ui/PackageSearchToolWindow.kt [29:48]


fun PackageSearchToolwindow() {

    val toolWindowViewModel: ToolWindowViewModel = viewModel()
    val packageListViewModel: PackageListViewModel = viewModel()

    val toolwindowState by toolWindowViewModel.toolWindowState.collectAsState()
    when (val state = toolwindowState) {
        is PackageSearchToolWindowState.Loading -> LoadingMessage(state.message)
        PackageSearchToolWindowState.NoModules -> NoModulesFound { toolWindowViewModel.openLinkInBrowser(it) }
        PackageSearchToolWindowState.Ready -> {
            val isInfoPanelOpen by toolWindowViewModel.isInfoPanelOpen.collectAsState()
            PackageSearchPackagePanel(
                onSelectionModulesSelectionChanged = { packageListViewModel.setSelectedModules(it) },
                isInfoPanelOpen = isInfoPanelOpen,
                onLinkClick = { toolWindowViewModel.openLinkInBrowser(it) },
                onPackageEvent = { packageListViewModel.onPackageListItemEvent(it) },
            )
        }
    }
}