Sync-UDElement difference between 2.7.3 and 2.8.1?

Product: PowerShell Universal
Version: 2.7.3 & 2.8.1

Been banging my head against the wall trying to get Sync-UDElement to work on a ChartJS. Come to find out it appears the same code on 2.7.3 works but doesn’t on 2.8.1. Am I missing something?

Clicking the button should update the values and colors in the doughnut chart.
Clicking on the slices should change the slice colors.

New-UDDashboard -Title "Test Dashboard" -Content {
    #standard colors
    $Default1 = '#7ec0d5'
    $Default2 = '#f69bb1'
    $Default3 = '#fcd375'
    $Default4 = '#78e9cc'
    $Default5 = '#b3a9d3'

    #hover colors
    $Default1H = '#118ab2'
    $Default2H = '#ef476f'
    $Default3H = '#f9ae00'
    $Default4H = '#06d6a0'
    $Default5H = '#7261ad'

    #deselected colors
    $Default1D = '#d4eaf1'
    $Default2D = '#fcdee5'
    $Default3D = '#fef0d1'
    $Default4D = '#d2f8ee'
    $Default5D = '#e6e2f0'

    #intermediate colors
    $session:Color1 = $Default1
    $session:Color2 = $Default2
    $session:Color3 = $Default3
    $session:Color4 = $Default4
    $session:Color5 = $Default5

    $session:ChartData = @(
        @{Name = 'Option1'; Options = 1 }
        @{Name = 'Option2'; Options = 1 }
        @{Name = 'Option3'; Options = 1 }
        @{Name = 'Option4'; Options = 1 }
        @{Name = 'Option5'; Options = 1 }
    )

    New-UDButton -Text 'Update' -OnClick {
        $session:ChartData = @(
            @{Name = 'Option1'; Options = 2 }
            @{Name = 'Option2'; Options = 1 }
            @{Name = 'Option3'; Options = 3 }
            @{Name = 'Option4'; Options = 1 }
            @{Name = 'Option5'; Options = 1 }
        )
        $session:Color1 = $Default1D
        $session:Color2 = $Default2D
        $session:Color3 = $Default3D
        $session:Color4 = $Default4D
        $session:Color5 = $Default5H

        Sync-UDElement -Id 'Dynamic123'
    }

    New-UDDynamic -Id 'Dynamic123' -Content {
        $ChartOptions = @{
            Id                   = 'ChartID1'
            Data                 = $session:ChartData
            BackgroundColor      = ($session:Color1, $session:Color2, $session:Color3, $session:Color4, $session:Color5)
            HoverBackgroundColor = ($Default1H, $Default2H, $Default3H, $Default4H, $Default5H)
            Type                 = 'doughnut'
            DataProperty         = 'Options'
            LabelProperty        = 'Name'
            OnClick              = {
                $SelectedItem = ($Body | ConvertFrom-Json).Label
                switch ($SelectedItem) {
                    'Option1' {
                        $session:Color1 = $Default1H
                        $session:Color2 = $Default2D
                        $session:Color3 = $Default3D
                        $session:Color4 = $Default4D
                        $session:Color5 = $Default5D
                    }
                    'Option2' {
                        $session:Color1 = $Default1D
                        $session:Color2 = $Default2H
                        $session:Color3 = $Default3D
                        $session:Color4 = $Default4D
                        $session:Color5 = $Default5D
                    }
                    'Option3' {
                        $session:Color1 = $Default1D
                        $session:Color2 = $Default2D
                        $session:Color3 = $Default3H
                        $session:Color4 = $Default4D
                        $session:Color5 = $Default5D
                    }
                    'Option4' {
                        $session:Color1 = $Default1D
                        $session:Color2 = $Default2D
                        $session:Color3 = $Default3D
                        $session:Color4 = $Default4H
                        $session:Color5 = $Default5D
                    }
                    'Option5' {
                        $session:Color1 = $Default1D
                        $session:Color2 = $Default2D
                        $session:Color3 = $Default3D
                        $session:Color4 = $Default4D
                        $session:Color5 = $Default5H
                    }
                    default {
                        $session:Color1 = $Default1
                        $session:Color2 = $Default2
                        $session:Color3 = $Default3
                        $session:Color4 = $Default4
                        $session:Color5 = $Default5
                    }
                }
                Sync-UDElement -Id 'Dynamic123'
            }
        }
        New-UDChartJS @ChartOptions
    }
}

I’m not sure what changed here but I was able to work around this by removing the ID on the chart.

    New-UDDynamic -Id 'Dynamic123' -Content {
        $ChartOptions = @{
            #Id                   = 'ChartID1'
            Data                 = $session:ChartData

Interesting.

I was able to change the framework to 3.9.3 and it works as well. So something in UniversalDashboard 3.10.0

I see the issue. This will be fixed in 2.8.2.

1 Like