Skip to content

Centralize shared state in Authoring section

What does this MR do?

Instead of letting each tab handle very common state like EMPTY and INVALID, we add logic inside the editor-tab to potentially render generic components that can handle these states and prevent the slot component from being rendered. The way this was designed, the pipeline-editor-tabs component is already subscribed to the appStatus, so passing either isEmpty or isInvalid to the editor-tab signal that you want the tab to handle that specific status.

Note that this allowed us to handle the case where the data is empty where we used to show an invalid error instead of a generic message. This MR doesn't introduce new UI element, though it create the plumbing necessary to make it work in the future (switching an alert for a whole screen for example).

Screenshots (strongly suggested)

Empty State

Before After
EMPTY_EDITOR_before EMPTY_EDITOR_with_changes
EMPTY_Viz_before EMPTY_VIZ_after2
EMPTY_LINT_before EMPTY_LINT_after
EMPTY_MERGE_before EMPTY_MERGE_after

Invalid state

Before After
INVALID_VIZ_before INVALID_VIZ_after
INVALID_LINT_before INVALID_Lint_with_changes
INVALID_MERGE_before INVALID_MERGE_after

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Related to #321100 (closed)

Edited by Frédéric Caplette

Merge request reports