Skip to content

Commit 6138368

Browse files
authored
Merge pull request #341 from apexcharts/fix-renderchart
Moved renderchart back to component
2 parents 629945e + 5242a06 commit 6138368

File tree

3 files changed

+28
-38
lines changed

3 files changed

+28
-38
lines changed

docs/BlazorApexCharts.Docs/Components/Features/Performance/Basic.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ else
3535
@code {
3636
private ApexChart<TimeSeries> chart;
3737
private List<int> points = new List<int> { 0, 100, 1000, 5000, 10000, 15000, 20000 };
38-
private int pointsToLoad = 0;
38+
private int pointsToLoad = 100;
3939
private List<TimeSeries> timeSeries = new TimeSeriesGenerator(25000).TimeSeries;
4040
private string message;
4141
private List<DataPoint<TimeSeries>> data;

src/Blazor-ApexCharts/ApexChart.razor.cs

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
304304

305305

306306
isReady = true;
307-
JSHandler = new JSHandler<TItem>(this, ChartContainer, blazor_apexchart);
307+
JSHandler = new JSHandler<TItem>(this);
308308
}
309309

310310
if (isReady && forceRender)
@@ -914,7 +914,30 @@ private async Task RenderChartAsync()
914914
await Task.Yield();
915915
forceRender = false;
916916
PrepareChart();
917-
await JSHandler.RenderChartAsync();
917+
918+
await InvokeVoidJsAsync("blazor_apexchart.renderChart", JSHandler.ObjectReference, ChartContainer, JsonSerializer.Serialize(Options, ChartSerializer.GetOptions<TItem>()), new JSEvents()
919+
{
920+
HasDataPointSelection = OnDataPointSelection.HasDelegate,
921+
HasDataPointEnter = OnDataPointEnter.HasDelegate || ApexPointTooltip != null,
922+
HasDataPointLeave = OnDataPointLeave.HasDelegate,
923+
HasLegendClick = OnLegendClicked.HasDelegate,
924+
HasMarkerClick = OnMarkerClick.HasDelegate,
925+
HasXAxisLabelClick = OnXAxisLabelClick.HasDelegate,
926+
HasSelection = OnSelection.HasDelegate,
927+
HasBrushScrolled = OnBrushScrolled.HasDelegate,
928+
HasZoomed = OnZoomed.HasDelegate,
929+
HasAnimationEnd = OnAnimationEnd.HasDelegate,
930+
HasBeforeMount = OnBeforeMount.HasDelegate,
931+
HasMounted = OnMounted.HasDelegate,
932+
HasUpdated = OnUpdated.HasDelegate,
933+
HasMouseLeave = OnMouseLeave.HasDelegate,
934+
HasMouseMove = OnMouseMove.HasDelegate,
935+
HasClick = OnClick.HasDelegate,
936+
HasBeforeZoom = OnBeforeZoom != null,
937+
HasBeforeResetZoom = OnBeforeResetZoom != null,
938+
HasScrolled = OnScrolled.HasDelegate
939+
});
940+
918941
await OnRendered.InvokeAsync();
919942
}
920943

src/Blazor-ApexCharts/Internal/JSHandler.cs

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,12 @@ namespace ApexCharts.Internal
1616
internal sealed class JSHandler<TItem> : IDisposable where TItem : class
1717
{
1818
private readonly ApexChart<TItem> ChartReference;
19-
private readonly DotNetObjectReference<JSHandler<TItem>> ObjectReference;
20-
private readonly ElementReference ChartContainer;
21-
private IJSObjectReference blazor_apexchart;
19+
internal readonly DotNetObjectReference<JSHandler<TItem>> ObjectReference;
2220

23-
internal JSHandler(ApexChart<TItem> chartReference, ElementReference chartContainer, IJSObjectReference blazor_apexchart)
21+
internal JSHandler(ApexChart<TItem> chartReference)
2422
{
2523
ObjectReference = DotNetObjectReference.Create(this);
26-
ChartContainer = chartContainer;
2724
ChartReference = chartReference;
28-
this.blazor_apexchart = blazor_apexchart;
2925
}
3026

3127
/// <inheritdoc/>
@@ -34,35 +30,6 @@ public void Dispose()
3430
ObjectReference.Dispose();
3531
}
3632

37-
/// <summary>
38-
/// Invokes the JS renderChart method
39-
/// </summary>
40-
public async Task RenderChartAsync()
41-
{
42-
await blazor_apexchart.InvokeVoidAsync("blazor_apexchart.renderChart", ObjectReference, ChartContainer, JsonSerializer.Serialize(ChartReference.Options, ChartSerializer.GetOptions<TItem>()), new JSEvents()
43-
{
44-
HasDataPointSelection = ChartReference.OnDataPointSelection.HasDelegate,
45-
HasDataPointEnter = ChartReference.OnDataPointEnter.HasDelegate || ChartReference.ApexPointTooltip != null,
46-
HasDataPointLeave = ChartReference.OnDataPointLeave.HasDelegate,
47-
HasLegendClick = ChartReference.OnLegendClicked.HasDelegate,
48-
HasMarkerClick = ChartReference.OnMarkerClick.HasDelegate,
49-
HasXAxisLabelClick = ChartReference.OnXAxisLabelClick.HasDelegate,
50-
HasSelection = ChartReference.OnSelection.HasDelegate,
51-
HasBrushScrolled = ChartReference.OnBrushScrolled.HasDelegate,
52-
HasZoomed = ChartReference.OnZoomed.HasDelegate,
53-
HasAnimationEnd = ChartReference.OnAnimationEnd.HasDelegate,
54-
HasBeforeMount = ChartReference.OnBeforeMount.HasDelegate,
55-
HasMounted = ChartReference.OnMounted.HasDelegate,
56-
HasUpdated = ChartReference.OnUpdated.HasDelegate,
57-
HasMouseLeave = ChartReference.OnMouseLeave.HasDelegate,
58-
HasMouseMove = ChartReference.OnMouseMove.HasDelegate,
59-
HasClick = ChartReference.OnClick.HasDelegate,
60-
HasBeforeZoom = ChartReference.OnBeforeZoom != null,
61-
HasBeforeResetZoom = ChartReference.OnBeforeResetZoom != null,
62-
HasScrolled = ChartReference.OnScrolled.HasDelegate
63-
});
64-
}
65-
6633
/// <summary>
6734
/// Callback from JavaScript to get a formatted Y-axis value
6835
/// </summary>

0 commit comments

Comments
 (0)