Refactor and centralize UI panel visibility logic

Consolidates the logic for showing and hiding UI elements into dedicated functions, `Update-DriverDownloadPanelVisibility` and `Update-OfficePanelVisibility`.

This change simplifies the event handlers for the "Download Drivers" checkbox by using a single handler for both checked and unchecked states. It also moves the initial UI setup from the main script into the core initialization module, improving code organization and reducing duplication.
This commit is contained in:
rbalsleyMSFT
2025-06-19 16:37:32 -07:00
parent 52085cf521
commit 094e084316
4 changed files with 66 additions and 43 deletions
+1 -18
View File
@@ -135,24 +135,7 @@ $window.Add_Loaded({
Register-EventHandlers -State $script:uiState
# Drivers tab UI logic
$makeList = @('Microsoft', 'Dell', 'HP', 'Lenovo')
foreach ($m in $makeList) {
[void]$script:uiState.Controls.cmbMake.Items.Add($m)
}
if ($script:uiState.Controls.cmbMake.Items.Count -gt 0) {
$script:uiState.Controls.cmbMake.SelectedIndex = 0
}
$script:uiState.Controls.spMakeSection.Visibility = if ($script:uiState.Controls.chkDownloadDrivers.IsChecked) {
'Visible'
}
else {
'Collapsed'
}
$script:uiState.Controls.btnGetModels.Visibility = if ($script:uiState.Controls.chkDownloadDrivers.IsChecked) { 'Visible' } else { 'Collapsed' }
$script:uiState.Controls.spModelFilterSection.Visibility = 'Collapsed'
$script:uiState.Controls.lstDriverModels.Visibility = 'Collapsed'
$script:uiState.Controls.spDriverActionButtons.Visibility = 'Collapsed'
# Office interplay (Keep existing logic)
$script:uiState.Flags.installAppsCheckedByOffice = $false