When the dashboard page is opened it subscribes to game events. For every new page load, new subscriptions are made.
Since the old subscriptions are not disposed, subscriptions continue to grow and the logic contained in them is executed multiple times.
This PR adds a transient GameActivityConsumer that manages the active subscriptions per page and disposes them when the page is closed. It also abstracts some of the async logic required for async subscriptions.
Issue
When the dashboard page is opened it subscribes to game events. For every new page load, new subscriptions are made. Since the old subscriptions are not disposed, subscriptions continue to grow and the logic contained in them is executed multiple times.
This PR adds a transient
GameActivityConsumer
that manages the active subscriptions per page and disposes them when the page is closed. It also abstracts some of the async logic required for async subscriptions.Closes #18