Skip to content

Commit a247044

Browse files
author
Jérémy JANISZEWSKI
committed
Correct an issue on the obversers when we use URL direct... When using URL direct, the register can occur before we have the javascript loaded
1 parent 3b4d142 commit a247044

1 file changed

Lines changed: 18 additions & 18 deletions

File tree

src/Community.Components/Components/Observers/FluentCxObserverProvider.razor.cs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public sealed partial class FluentCxObserverProvider
2727
/// </summary>
2828
/// <remarks>This field is used to track the rendering state of the object. It is intended for internal
2929
/// use and should not be accessed directly.</remarks>
30-
private bool _isRendered;
30+
private bool _hasModule;
3131

3232
/// <summary>
3333
/// A thread-safe queue used to store pending observer items for processing.
@@ -108,7 +108,7 @@ public FluentCxObserverProvider()
108108
/// <returns>A <see cref="ValueTask"/> that represents the asynchronous operation.</returns>
109109
internal async ValueTask NotifyAsync(GroupObserverItem group)
110110
{
111-
if (_isRendered)
111+
if (_hasModule)
112112
{
113113
foreach (var item in group.Items)
114114
{
@@ -144,7 +144,7 @@ internal async ValueTask NotifyAsync(GroupObserverItem group)
144144
/// <returns>A <see cref="ValueTask"/> that represents the asynchronous operation.</returns>
145145
internal async ValueTask NotifyAsync(ObserverItem item)
146146
{
147-
if (_isRendered)
147+
if (_hasModule)
148148
{
149149
if (item.ObserveIntersection)
150150
{
@@ -172,7 +172,7 @@ internal async ValueTask NotifyAsync(ObserverItem item)
172172
/// <returns></returns>
173173
internal async ValueTask UnnotifyGroupAsync(string groupId)
174174
{
175-
if (_isRendered)
175+
if (_hasModule)
176176
{
177177
var items = ObserverState.GetItems(groupId);
178178

@@ -192,7 +192,7 @@ internal async ValueTask UnnotifyGroupAsync(string groupId)
192192
/// <returns>A <see cref="ValueTask"/> that represents the asynchronous operation.</returns>
193193
internal async ValueTask UnnotifyItemAsync(string id)
194194
{
195-
if (_isRendered)
195+
if (_hasModule)
196196
{
197197
await UnregisterIntersectAsync(id, id);
198198
await UnregisterResizeAsync(id, id);
@@ -202,9 +202,9 @@ internal async ValueTask UnnotifyItemAsync(string id)
202202
/// <inheritdoc />
203203
public async Task RegisterIntersectAsync(string groupId, string elementId, ElementReference elementReference)
204204
{
205-
if (_jsModule is not null)
205+
if (_hasModule)
206206
{
207-
await _jsModule.InvokeVoidAsync("fluentCxObserverProvider.registerIntersect", groupId, elementId, elementReference, _dotNetRef, new { debounce = (int)DebounceIntersect.TotalMilliseconds, threshold = Threshold });
207+
await _jsModule!.InvokeVoidAsync("fluentCxObserverProvider.registerIntersect", groupId, elementId, elementReference, _dotNetRef, new { debounce = (int)DebounceIntersect.TotalMilliseconds, threshold = Threshold });
208208
}
209209
}
210210

@@ -217,9 +217,9 @@ public Task RegisterIntersectAsync(string elementId, ElementReference elementRef
217217
/// <inheritdoc />
218218
public async Task RegisterResizeAsync(string groupId, string elementId, ElementReference elementReference)
219219
{
220-
if (_jsModule is not null)
220+
if (_hasModule)
221221
{
222-
await _jsModule.InvokeVoidAsync("fluentCxObserverProvider.registerResize", groupId, elementId, elementReference, _dotNetRef, new { debounce = (int)DebounceResize.TotalMilliseconds });
222+
await _jsModule!.InvokeVoidAsync("fluentCxObserverProvider.registerResize", groupId, elementId, elementReference, _dotNetRef, new { debounce = (int)DebounceResize.TotalMilliseconds });
223223
}
224224
}
225225

@@ -238,9 +238,9 @@ public Task UnregisterIntersectAsync(string elementId)
238238
/// <inheritdoc />
239239
public async Task UnregisterIntersectAsync(string groupId, string elementId)
240240
{
241-
if (_jsModule is not null)
241+
if (_hasModule)
242242
{
243-
await _jsModule.InvokeVoidAsync("fluentCxObserverProvider.unregisterIntersect", groupId, elementId);
243+
await _jsModule!.InvokeVoidAsync("fluentCxObserverProvider.unregisterIntersect", groupId, elementId);
244244
}
245245
}
246246

@@ -253,27 +253,27 @@ public Task UnregisterResizeAsync(string elementId)
253253
/// <inheritdoc />
254254
public async Task UnregisterResizeAsync(string groupId, string elementId)
255255
{
256-
if (_jsModule is not null)
256+
if (_hasModule)
257257
{
258-
await _jsModule.InvokeVoidAsync("fluentCxObserverProvider.unregisterResize", groupId, elementId);
258+
await _jsModule!.InvokeVoidAsync("fluentCxObserverProvider.unregisterResize", groupId, elementId);
259259
}
260260
}
261261

262262
/// <inheritdoc />
263263
public async Task RegisterMutationAsync(string groupId, string elementId, ElementReference elementReference, MutationObserverOptions options)
264264
{
265-
if (_jsModule is not null)
265+
if (_hasModule)
266266
{
267-
await _jsModule.InvokeVoidAsync("fluentCxObserverProvider.registerMutation", groupId, elementId, elementReference, options);
267+
await _jsModule!.InvokeVoidAsync("fluentCxObserverProvider.registerMutation", groupId, elementId, elementReference, options);
268268
}
269269
}
270270

271271
/// <inheritdoc />
272272
public async Task UnregisterMutationAsync(string groupId, string elementId)
273273
{
274-
if (_jsModule is not null)
274+
if (_hasModule)
275275
{
276-
await _jsModule.InvokeVoidAsync("fluentCxObserverProvider.unregisterMutation", groupId, elementId);
276+
await _jsModule!.InvokeVoidAsync("fluentCxObserverProvider.unregisterMutation", groupId, elementId);
277277
}
278278
}
279279

@@ -291,8 +291,8 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
291291

292292
if (firstRender)
293293
{
294-
_isRendered = firstRender;
295294
_jsModule ??= await JSRuntime.InvokeAsync<IJSObjectReference>("import", JsModulePath);
295+
_hasModule = _jsModule is not null;
296296

297297
while (_pendingItems.TryDequeue(out var item))
298298
{

0 commit comments

Comments
 (0)