Skip to content

Commit 1d8889c

Browse files
fix: stop wasm hang
1 parent ca86164 commit 1d8889c

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

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

Lines changed: 13 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),
@@ -220,6 +221,18 @@ private IDisposable ShouldSendModelsAddedToAllMessagesToMessageObserver(IObserve
220221
.Delay(TimeSpan.FromMilliseconds(10), Schedulers.Default) // Wait for the list view to have been updated
221222
.ObserveOn(Schedulers.Dispatcher)
222223
.Subscribe(messageObserver);
224+
#else
225+
return Observable
226+
.FromEvent<NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs>(
227+
handler => (s, e) => handler(e),
228+
handler => _allMessages.CollectionChanged += handler,
229+
handler => _allMessages.CollectionChanged -= handler)
230+
.Where(args => args.Action == NotifyCollectionChangedAction.Add)
231+
.Select(args => args.NewItems.OfType<Message.Model>().FirstOrDefault())
232+
.Where(model => model != null)
233+
.ObserveOn(Schedulers.Dispatcher)
234+
.Subscribe(messageObserver);
235+
#endif
223236
}
224237

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

0 commit comments

Comments
 (0)