FIX: Fully re-render ads when navigating between pages #188
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the past, the ad plugin relied on two side-effects to achieve this behaviour:
Components being fully destroyed/rendered when navigating between pages. This stopped working when Discourse core moved to the more efficient 'loading slider' UI
The
listLoading
argument. This was an implementation detail of the old discovery routing infrastructure. Core recently overhauled this and removed thelistLoading
argument, because loading is now handled properly by the Ember router.Instead of these two properties, we can use the
currentRoute
property of Ember's router service to trigger changes when navigating between pages. A common{{#each
trick is used to fully destroy/re-render components even if the ad network is unchanged.