D2-UI is a user interface component library for developing DHIS2 applications. The core development team uses and maintains these components to ensure visual consistency between DHIS2 web applications.
This is a monorepo comprised of many packages which are individually published to NPM using Yarn Workspaces. Yarn Workspaces handles linking the packages in this repository together, and ensures that everything is using the latest code.
See packages to see what components are available.
In examples you will find an application bootstrapped with create-react-app which demonstrates how one consumes the components d2-ui provides.
In the d2-ui root directory:
yarn install
yarn watch
In the examples/create-react-app subdirectory:
yarn start
Now you are able to change any component in packages/ and the changes will be reflected live in the example application.
When working on a component that's consumed by a different app, you can preview the changes without publishing by using yarn link
. Let's say you're working on the legend
component. First you'll need to build the components. Run this from the d2-ui root directory:
yarn install
yarn run build
After that link the components you're working on (we'll use legend for this example):
cd d2-ui/packages/legend/build
yarn link
After that, change directory to the app that consumes the component you're working on (let's say the maintenance-app). From the root of that project run:
yarn link @dhis2/d2-ui-legend`
This will link your local version of the component and your local changes will be reflected in the app.
See how to contribute.
Documented in RELEASING.
The issue tracker can be found in DHIS2 JIRA under the LIBS project.
Deep links: