fix(cdk/listbox): improve SSR compatibility by adding an _isBrowser check before calling _setPreviousActiveOptionAsActiveOptionOnWindowBlur #28746
+49
−1
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.
This PR addresses the
ReferenceError: window is not defined
error that gets thrown when the CDK Listbox is rendered on the server.The
_setPreviousActiveOptionAsActiveOptionOnWindowBlur
method in theCdkListbox
class uses RxJS'fromEvent
withwindow
as its target. This is problematic when the application is being rendered on the server, since_setPreviousActiveOptionAsActiveOptionOnWindowBlur
is called in the constructor.The solution is to add a simple
_isBrowser
property that leverages thePlatform
API and a check in the constructor before calling_setPreviousActiveOptionAsActiveOptionOnWindowBlur
.