File tree Expand file tree Collapse file tree 2 files changed +40
-3
lines changed
Expand file tree Collapse file tree 2 files changed +40
-3
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,26 @@ module.exports = {
2626 // Check if Labels are equal and if dataset length is equal
2727 if ( newLabels === oldLabels && oldData . datasets . length === newData . datasets . length ) {
2828 newData . datasets . forEach ( ( dataset , i ) => {
29- chart . data . datasets [ i ] = dataset
29+ // Get new and old dataset keys
30+ const oldDatasetKeys = Object . keys ( oldData . datasets [ i ] )
31+ const newDatasetKeys = Object . keys ( dataset )
32+
33+ // Get keys that aren't present in the new data
34+ const deletionKeys = oldDatasetKeys . filter ( ( key ) => {
35+ return key !== '_meta' && newDatasetKeys . indexOf ( key ) === - 1
36+ } )
37+
38+ // Remove outdated key-value pairs
39+ deletionKeys . forEach ( ( deletionKey ) => {
40+ delete chart . data . datasets [ i ] [ deletionKey ]
41+ } )
42+
43+ // Update attributes individually to avoid re-rendering the entire chart
44+ for ( const attribute in dataset ) {
45+ if ( dataset . hasOwnProperty ( attribute ) ) {
46+ chart . data . datasets [ i ] [ attribute ] = dataset [ attribute ]
47+ }
48+ }
3049 } )
3150
3251 chart . data . labels = newData . labels
Original file line number Diff line number Diff line change @@ -4,7 +4,6 @@ module.exports = {
44 required : true
55 }
66 } ,
7-
87 watch : {
98 'chartData' : {
109 handler ( newData , oldData ) {
@@ -27,7 +26,26 @@ module.exports = {
2726 // Check if Labels are equal and if dataset length is equal
2827 if ( newLabels === oldLabels && oldData . datasets . length === newData . datasets . length ) {
2928 newData . datasets . forEach ( ( dataset , i ) => {
30- chart . data . datasets [ i ] = dataset
29+ // Get new and old dataset keys
30+ const oldDatasetKeys = Object . keys ( oldData . datasets [ i ] )
31+ const newDatasetKeys = Object . keys ( dataset )
32+
33+ // Get keys that aren't present in the new data
34+ const deletionKeys = oldDatasetKeys . filter ( ( key ) => {
35+ return key !== '_meta' && newDatasetKeys . indexOf ( key ) === - 1
36+ } )
37+
38+ // Remove outdated key-value pairs
39+ deletionKeys . forEach ( ( deletionKey ) => {
40+ delete chart . data . datasets [ i ] [ deletionKey ]
41+ } )
42+
43+ // Update attributes individually to avoid re-rendering the entire chart
44+ for ( const attribute in dataset ) {
45+ if ( dataset . hasOwnProperty ( attribute ) ) {
46+ chart . data . datasets [ i ] [ attribute ] = dataset [ attribute ]
47+ }
48+ }
3149 } )
3250
3351 chart . data . labels = newData . labels
You can’t perform that action at this time.
0 commit comments