[Logs UI] Make URL syncing optional in the Log View state machine #154061
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.
Summary
This fixes #154030 (and other uses of the Log Stream embeddable component).
The embeddable component calls
useLogView()
directly, and this causes issues with context dependencies for URL syncing from the consumers.This PR makes the URL actions / services optional within the machine.
Uses:
<LogViewProvider />
used for all main Logs pages (stream, anomalies, categories) has full URL syncing ✅<LogViewProvider />
used within our Logs alert editor does not have URL syncing (not needed) ❌useLogView()
as used by the embeddable component does not have URL syncing ❌useLogView()
as used byRedirectToNodeLogs
does not have URL syncing (not needed, URL syncing kicks in after redirect) ❌The default / pure implementation of
initializeFromUrl
just does asend({ type: 'INITIALIZED_FROM_URL', logViewReference: null })
as the state machine needs to transition to it'sinitialized
state and is already set up to use the initial context reference if there's no reference obtained from the URL.Examples: