fun PackageSearchPackagePanel()

in plugin/src/main/kotlin/com/jetbrains/packagesearch/plugin/ui/PackageSearchPackagePanel.kt [18:49]


fun PackageSearchPackagePanel(
    onSelectionModulesSelectionChanged: (Set<PackageSearchModule.Identity>) -> Unit,
    isInfoPanelOpen: Boolean,
    onLinkClick: (String) -> Unit,
    onPackageEvent: (PackageListItemEvent) -> Unit,
) {
    val toolWindowsViewModel: ToolWindowViewModel = viewModel()

    val splitPaneState by remember { toolWindowsViewModel.firstSplitPaneState }
    val innerSplitPaneState by remember { toolWindowsViewModel.secondSplitPaneState }

    HorizontalSplitPane(Modifier.fillMaxSize(), splitPaneState) {
        first(PackageSearchMetrics.Splitpanes.minWidth) {
            PackageSearchModulesTree(Modifier, onSelectionModulesSelectionChanged)
        }
        packageSearchSplitter()
        second {
            if (isInfoPanelOpen) {
                HorizontalSplitPane(Modifier.fillMaxSize(), innerSplitPaneState) {
                    first(PackageSearchMetrics.Splitpanes.minWidth) {
                        PackageSearchCentralPanel(onLinkClick = onLinkClick)
                    }
                    packageSearchSplitter()
                    second(PackageSearchMetrics.Splitpanes.minWidth) {
                        PackageSearchInfoPanel(onLinkClick = onLinkClick, onPackageEvent = onPackageEvent)
                    }
                }

            } else PackageSearchCentralPanel(onLinkClick = onLinkClick)
        }
    }
}