feat: makes Controller.isConnected an observable property #4093
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.
Description
It is currently very difficult to determine when exactly an element is added or removed from the DOM. Custom elements do have
connectedCallback
anddisconnectedCallback
but these are really only useful to the class implementation and not external code. There is noconnected
ordisconnected
events emitted, and it is using MutationObserver for this case is very difficult / expensive.whatwg/dom#533 tracks a proposal to patch
MutationObserver
withconnected
anddisconnected
records, but this feature has not made its way into implementation yet.We can make "connectedness" easy to observe for
FASTElement
instances though, simply by making the existingController.isConnected
property observable.Motivation & context
What does this get us?
There are some additional uses cases outlined in whatwg/dom#533.
Issue type checklist
Is this a breaking change?
Adding or modifying component(s) in
@microsoft/fast-components
checklistProcess & policy checklist