@@ -198,6 +198,7 @@ export default function UserTrendChart({ leaderboardId, defaultUsers, defaultGpu
198198
199199 const chartRef = useRef < ReactECharts > ( null ) ;
200200 const [ zoomState , setZoomState ] = useState < Array < { startValue ?: number ; endValue ?: number } > > ( [ ] ) ;
201+ const [ legendSelected , setLegendSelected ] = useState < Record < string , boolean > > ( { } ) ;
201202
202203 // Local state for axis input fields (not applied until button clicked)
203204 const [ xStartInput , setXStartInput ] = useState ( "" ) ;
@@ -232,9 +233,15 @@ export default function UserTrendChart({ leaderboardId, defaultUsers, defaultGpu
232233 }
233234 } , [ ] ) ;
234235
235- // Clear saved zoom state when restore is triggered
236+ // Track legend selection changes so toggled-off series stay off across re-renders
237+ const onLegendSelectChanged = useCallback ( ( params : { selected : Record < string , boolean > } ) => {
238+ setLegendSelected ( params . selected ) ;
239+ } , [ ] ) ;
240+
241+ // Clear saved zoom state and legend selection when restore is triggered
236242 const onRestore = useCallback ( ( ) => {
237243 setZoomState ( [ ] ) ;
244+ setLegendSelected ( { } ) ;
238245 setXStartInput ( "" ) ;
239246 setXEndInput ( "" ) ;
240247 setYMinInput ( "" ) ;
@@ -342,9 +349,10 @@ export default function UserTrendChart({ leaderboardId, defaultUsers, defaultGpu
342349 ( ) => ( {
343350 datazoom : onDataZoom ,
344351 restore : onRestore ,
352+ legendselectchanged : onLegendSelectChanged ,
345353 ...( isCodeViewingAllowed && { click : onChartClick } ) ,
346354 } ) ,
347- [ onDataZoom , onRestore , isCodeViewingAllowed , onChartClick ]
355+ [ onDataZoom , onRestore , onLegendSelectChanged , isCodeViewingAllowed , onChartClick ]
348356 ) ;
349357
350358 // Fetch custom trend data on mount
@@ -1011,6 +1019,7 @@ export default function UserTrendChart({ leaderboardId, defaultUsers, defaultGpu
10111019 filterMode,
10121020 bottom : 40 ,
10131021 height : 20 ,
1022+ showDataShadow : false ,
10141023 borderColor : isDark ? "#555" : "#ccc" ,
10151024 backgroundColor : isDark ? "#333" : "#f5f5f5" ,
10161025 fillerColor : isDark ? "rgba(100,100,100,0.3)" : "rgba(200,200,200,0.3)" ,
@@ -1029,6 +1038,7 @@ export default function UserTrendChart({ leaderboardId, defaultUsers, defaultGpu
10291038 filterMode,
10301039 right : 10 ,
10311040 width : 20 ,
1041+ showDataShadow : false ,
10321042 borderColor : isDark ? "#555" : "#ccc" ,
10331043 backgroundColor : isDark ? "#333" : "#f5f5f5" ,
10341044 fillerColor : isDark ? "rgba(100,100,100,0.3)" : "rgba(200,200,200,0.3)" ,
@@ -1094,6 +1104,7 @@ export default function UserTrendChart({ leaderboardId, defaultUsers, defaultGpu
10941104 textStyle : {
10951105 color : textColor ,
10961106 } ,
1107+ ...( Object . keys ( legendSelected ) . length > 0 && { selected : legendSelected } ) ,
10971108 } ,
10981109 grid : {
10991110 left : "5%" ,
0 commit comments