diff --git a/samy.ps1 b/samy.ps1 index 6632cab..f152e4f 100644 --- a/samy.ps1 +++ b/samy.ps1 @@ -691,25 +691,34 @@ function Get-SamyTasks { foreach ($t in $tasks) { - # Grab Tooltip if it exists $tooltipRaw = $null if ($t.PSObject.Properties.Name -contains 'Tooltip') { $tooltipRaw = $t.Tooltip } - # Normalize tooltip to a single string (defensive) + # Normalize tooltip to a single string $tooltip = if ($tooltipRaw -is [string]) { $tooltipRaw } elseif ($tooltipRaw -is [System.Collections.IEnumerable] -and -not ($tooltipRaw -is [string])) { - # If Tooltip is an array/list, treat as bad data and fall back to Label - [string]$t.Label + $arr = @( + $tooltipRaw | + ForEach-Object { [string]$_ } | + Where-Object { -not [string]::IsNullOrWhiteSpace($_) } + ) + + if ($arr.Count -eq 1) { + $arr[0] # single tooltip item + } + else { + [string]$t.Label # array or multiple items => treat as bad data, fallback to label + } } else { [string]$tooltipRaw } - # Final fallback: tooltip defaults to label + # Fallback: tooltip defaults to label if ([string]::IsNullOrWhiteSpace($tooltip)) { $tooltip = [string]$t.Label } @@ -733,6 +742,7 @@ function Get-SamyTasks { + #endregion Remote Assets + Task Loading