Skip to content
This repository has been archived by the owner on May 24, 2024. It is now read-only.

[spike] terra-application v3.0 #63

Open
tbiethman opened this issue Jul 29, 2020 · 0 comments
Open

[spike] terra-application v3.0 #63

tbiethman opened this issue Jul 29, 2020 · 0 comments

Comments

@tbiethman
Copy link
Contributor

tbiethman commented Jul 29, 2020

Feature Request

Description

The terra-application package will be adding features to further define the application architecture and simplify existing workflows and APIs. This issue details the new and changing functionality planned for the v2.0v3.0 release. This is a living document and may change.

New Features

New features that will be introduced include:

  • Page - A component defining consistent UX for application content and promoting application composition
    • Will have first-class APIs for page-level action controls, notifications, and progressive Page disclosure
    • Will integrate with existing ApplicationLoadingOverlay, ApplicationStatusOverlay, error boundaries, navigation prompts, etc.
    • Related components will provide optional side navigation and Workspace integration
  • Modals - A simplified modal presentation component offered as a replacement for the ModalManager.
    • Will feature a declarative API to maintain Context provider expectations of the presenting component.
    • Will support additional Modals presented from a presented Modal (i.e. stacked modals).
  • ApplicationConcept - A Context-based communication system allowing for the consistent presentation of Application-wide concepts (e.g. demographics information).
  • BlockingOverlay - A new overlay component used to block user input for the entire application.
    • Will be useful for handling long write workflows where user navigation is not allowed.
    • Will feature UX patterns to minimize flashing
  • Secondary Navigation - A component providing secondary navigation within a sidebar.
    • Will be useful for partitioning content further beyond the primary navigation provided by ApplicationNavigation.
  • Workspace see Workspace #85

Functional Differences

Existing features are planned to change in the following ways:

  • ApplicationNavigation
    • This component will move to a more opinionated API for its children to allow for the persisted mounting of each navigable child
    • Children are expected to implement Page (or related) components.
    • Component may be renamed to better align with new architecture concepts.
  • ModalManager
    • We will attempt to uplift this component with the new Modal component provided by v2v3.
    • Regardless, the ModalManager will be deprecated in favor of direct Modal usage.

New Dependencies

The following dependencies will be updated:

  • react-intl - From v2.9 to current
    • Will allow for usage of new react-intl APIs and Context consumption throughout the framework

Testing

Additional mock components will be created to aid developers' test creation.

  • MockApplicationBase - A generic container for Jest-level test mounts that satisfies Context expectations.

Existing Issues

Existing issues that will be corrected in this major release include:

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.