Reference Application Reusable UI Components

We’ve have some discussions about building reusuable UI widgets that can be shared across multiple OWAs so that each OWA doesn’t need to create it’s own header, patient header, breadcrumbs, etc, see:

To start us moving in that direction, I’ve created a new project the “Reference App Reusable UI Components” to start tracking some of the key things that need to be designed and built out. Hopefully, we can wrangle some resources to start working on this stuff soon. I encourage anyone who is interested to review the tickets and feel free to comment on them, or comment here.

Take care, Mark


@mogoodrich I see that the linked project so far only has tickets for ReactJS components. Just to be clear, is the project intended only for ReactJS components or is it intended for other frameworks as well (the obvious being angular of course)? If it is the later how does openmrs-contrib-uicommons module factor into all this? Also considering that angular has moved to angular 6 (if I am up to date enough :smile:) and this may be a separate topic, are there any plans to move to later versions of angular?

In the meantime I am willing to create an angular patient header component but I am not exactly sure where this would go. Any pointers?


Update: I just realized I need something very simple to begin with. I won’t be working on the angular patient header, at least not soon.

@willa feel free to use the project for angular components as well, that was the intent… I tried to include “React” in all my ticket names to distinguish them for tickets

Good question about where an angular patient header component would go… I went ahead and created a “openmrs-contrib-reactcomponents” project for React UI components:

For a patient header in Angular, two possibilities would be to:

  • Put this in openmrs-contrib-uicommons
  • Create a new openmrs-contrib-angularcomponents (maybe angular2xcomponents?)

Do others have thoughts?

Take care, Mark

1 Like

We also could consider moving the contents of the openmrs-contrib-reactcomponents into a new “react” directory in openmrs-contrib-uicommons.

Take care, Mark

If you are not going to have synchronized release versions and artifacts across these codebases, I suggest you do not have a shared JIRA project for them. And definitely I wouldn’t put them in the same github repo if they’re not going to be worked on by the same developers, or released on the same cadence.

1 Like

A fair point… so I will definitely keep openmrs-contrib-reactcomponents separate.

I also renamed the project to “React UI Components”.

So @willa we’d either want to create a JIRA project for “contrib-uicommons” (if it doesn’t already exist) or create a new project to along with with whatever new package is created for angular components.