Skip to content

Commit 704e53c

Browse files
authored
Merge pull request #720 from mikeirvingweb/fix-chatsignalr-wasm
fix: ChatSignalR - stop hang on WASM
2 parents ca86164 + 31af015 commit 704e53c

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

UI/ChatSignalR/UnoChat.Client/UnoChat.Shared/ViewModel.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ private IDisposable ShouldSendThemeToThemeObserver(IObserver<string> themeObserv
209209

210210
private IDisposable ShouldSendModelsAddedToAllMessagesToMessageObserver(IObserver<Model> messageObserver)
211211
{
212+
#if !__WASM__
212213
return Observable
213214
.FromEvent<NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs>(
214215
handler => (s, e) => handler(e),
@@ -217,9 +218,24 @@ private IDisposable ShouldSendModelsAddedToAllMessagesToMessageObserver(IObserve
217218
.Where(args => args.Action == NotifyCollectionChangedAction.Add)
218219
.Select(args => args.NewItems.OfType<Message.Model>().FirstOrDefault())
219220
.Where(model => model != null)
221+
222+
#if !__WASM__
220223
.Delay(TimeSpan.FromMilliseconds(10), Schedulers.Default) // Wait for the list view to have been updated
224+
#endif
225+
.ObserveOn(Schedulers.Dispatcher)
226+
.Subscribe(messageObserver);
227+
#else
228+
return Observable
229+
.FromEvent<NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs>(
230+
handler => (s, e) => handler(e),
231+
handler => _allMessages.CollectionChanged += handler,
232+
handler => _allMessages.CollectionChanged -= handler)
233+
.Where(args => args.Action == NotifyCollectionChangedAction.Add)
234+
.Select(args => args.NewItems.OfType<Message.Model>().FirstOrDefault())
235+
.Where(model => model != null)
221236
.ObserveOn(Schedulers.Dispatcher)
222237
.Subscribe(messageObserver);
238+
#endif
223239
}
224240

225241
public IDisposable Activate(IObservable<object> messageToSendBoxReturn, IObserver<string> themeObserver, IObserver<Message.Model> messageObserver)

0 commit comments

Comments
 (0)