Skip to content
This repository has been archived by the owner on Mar 23, 2019. It is now read-only.

Pluggable views #58

Open
eliperelman opened this issue Apr 10, 2018 · 0 comments
Open

Pluggable views #58

eliperelman opened this issue Apr 10, 2018 · 0 comments
Milestone

Comments

@eliperelman
Copy link
Contributor

This feature gives third parties the ability to extend the UI with their own views. This would probably be configured at some kind of cluster level, which would install a dependencies and provide metadata about the customization. Initial thoughts we are experimenting with in the MVP:

  • Each customization will either be a React component, or a function that returns a React component.
  • The customization needs to be pluggable as an npm package, by providing a valid package.json to make it importable at the default export.
  • Each customization should provide additional metadata via its package.json at a yet-unknown but well-known property. At a minimum, this would include the route pattern at which to render the customization, as well as a name to show in the navigation sidebar, title bar, app bar, etc.

What is unknown yet is how this can be integrated into a view, and that will drive whether a customization is a function or a component. The main concern lies around the Dashboard component, which handles a lot of view rendering logic for every authenticated view. Should a customization import the Dashboard and render it itself, like all the other views do? At first glance, I would think not. If not, then how do we handle some of the props needed by the Dashboard component? This needs to be solved.

@eliperelman eliperelman added this to the Phase 2 milestone Apr 10, 2018
@helfi92 helfi92 modified the milestones: Phase 2, Phase 3 Oct 31, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants