-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: view mode dashboards-bar design changes [DHIS2-18441] #3155
Merged
HendrikThePendric
merged 112 commits into
feat/release-DHIS2-18441-and-DHIS2-13038
from
feat/header-bar-design-ui-update
Dec 18, 2024
Merged
feat: view mode dashboards-bar design changes [DHIS2-18441] #3155
HendrikThePendric
merged 112 commits into
feat/release-DHIS2-18441-and-DHIS2-13038
from
feat/header-bar-design-ui-update
Dec 18, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
🚀 Deployed on https://pr-3155.dashboard.netlify.dhis2.org |
…t re-mounts due to react-router
HendrikThePendric
force-pushed
the
feat/header-bar-design-ui-update
branch
from
December 18, 2024 12:35
2b8eb74
to
21e9f95
Compare
Quality Gate failedFailed conditions See analysis details on SonarQube Cloud Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE |
HendrikThePendric
changed the base branch from
master
to
feat/release-DHIS2-18441-and-DHIS2-13038
December 18, 2024 13:05
jenniferarnesen
approved these changes
Dec 18, 2024
HendrikThePendric
merged commit Dec 18, 2024
de1f429
into
feat/release-DHIS2-18441-and-DHIS2-13038
30 of 31 checks passed
HendrikThePendric
added a commit
that referenced
this pull request
Dec 18, 2024
Implements JIRA issue DHIS2-18441 according to the design specs --- 1. New design 2. New navigation menu 3. New keyboard navigation --- Implements the new design according to the design doc. Some other changes are also included in this PR and these are listed below. - Use the `useAlert` hook instead of rendering a `AlertStack`. This ensures the show/hide animation runs and that there won't be problems when we show this alert together with another alert - The logic to load a dashboard has been simplified, I suspect this component still contained some logic that predates the inclusion of react-router. In any case, there was some logic present that accommodated "loading a new dashboard". But this scenario would never occur, because when the route changes the component is remounted. - Instead of having a `getContent` function, we now have the `ViewDashboardContent` component. A `useEffect` hook was added to ensure that the selected dashboard is cleared from the redux store when the user chooses "Close dashboard" in the "action menu" dropdown. The design was updated and some modifications were done to the behaviour as well: - When online on a large screen it is possible to edit and/or remove a filter - When online on a small screen (width =< 480px) it is not possible to edit a filter, but it can be removed. When attempting to edit a filter a tooltip shows to inform the user this is not possible. - When offline filters cannot be edited or deleted. The filter-badge is still visible but the remove-icon is not rendered. When attempting to edit a filter a tooltip shows to inform the user this is not possible. Version 10 includes some improvements in terms of accessibility and keyboard navigation. To comply with the new guidelines in that regard a few small tweaks to components were needed. This involved adding things like `ariaLabel` props, and addressing some invalid DOM nesting (nested `<a>` tags). - React testing-library was configured to work with the `data-test` attribute we use at DHIS2 (i.e. the `dataTest` prop for components from `@dhis2/ui`). The default data-attribute used by React testing-library is `data-test-id`, and some tests needed to be adjusted to no longer use that. - Some ESLint rules were added specifically for `spec.js` to remove the need to add ESLint ignore comments when making mock-components and other types of mocks. --- - Keyboard navigation inconsistencies: this PR includes a major version bump in `@dhis2/ui` which comes with some accessibility improvements including arrow-key keyboard navigation for menus. The navigation- and more-actions-menu in the new dashboards-bar are using these. But the filter-menu is using a custom menu-list and this can be used by keyboard by using the tab-key. This inconsistency will be tackled in a separate PR as described in JIRA issue DHIS2-18537. --- Current JIRA Issue DHIS2-18441: https://dhis2.atlassian.net/browse/DHIS2-18441 Follow-up JIRA issue DHIS2-18537: https://dhis2.atlassian.net/browse/DHIS2-18537 Design specs: https://docs.google.com/document/d/1c8Ll1aLbFYwU8HYsyDlH1wk_QKTrUXwNanCiqayczOM
HendrikThePendric
added a commit
that referenced
this pull request
Dec 18, 2024
Implements JIRA issue DHIS2-18441 according to the design specs --- ### Key features 1. New design 2. New navigation menu 3. New keyboard navigation --- ### Description Implements the new design according to the design doc. Some other changes are also included in this PR and these are listed below. #### Changes to `ViewDashboard` - Use the `useAlert` hook instead of rendering a `AlertStack`. This ensures the show/hide animation runs and that there won't be problems when we show this alert together with another alert - The logic to load a dashboard has been simplified, I suspect this component still contained some logic that predates the inclusion of react-router. In any case, there was some logic present that accommodated "loading a new dashboard". But this scenario would never occur, because when the route changes the component is remounted. - Instead of having a `getContent` function, we now have the `ViewDashboardContent` component. #### Changes to `CacheableViewDashboard` A `useEffect` hook was added to ensure that the selected dashboard is cleared from the redux store when the user chooses "Close dashboard" in the "action menu" dropdown. #### Changes to `FilterBadge` The design was updated and some modifications were done to the behaviour as well: - When online on a large screen it is possible to edit and/or remove a filter - When online on a small screen (width =< 480px) it is not possible to edit a filter, but it can be removed. When attempting to edit a filter a tooltip shows to inform the user this is not possible. - When offline filters cannot be edited or deleted. The filter-badge is still visible but the remove-icon is not rendered. When attempting to edit a filter a tooltip shows to inform the user this is not possible. #### Major version upgrade of `@dhis2/ui` (v10) Version 10 includes some improvements in terms of accessibility and keyboard navigation. To comply with the new guidelines in that regard a few small tweaks to components were needed. This involved adding things like `ariaLabel` props, and addressing some invalid DOM nesting (nested `<a>` tags). #### Some tweaks to the unit-testing configuration - React testing-library was configured to work with the `data-test` attribute we use at DHIS2 (i.e. the `dataTest` prop for components from `@dhis2/ui`). The default data-attribute used by React testing-library is `data-test-id`, and some tests needed to be adjusted to no longer use that. - Some ESLint rules were added specifically for `spec.js` to remove the need to add ESLint ignore comments when making mock-components and other types of mocks. --- ### Known issues - Keyboard navigation inconsistencies: this PR includes a major version bump in `@dhis2/ui` which comes with some accessibility improvements including arrow-key keyboard navigation for menus. The navigation- and more-actions-menu in the new dashboards-bar are using these. But the filter-menu is using a custom menu-list and this can be used by keyboard by using the tab-key. This inconsistency will be tackled in a separate PR as described in JIRA issue DHIS2-18537. --- ### References Current JIRA Issue DHIS2-18441: https://dhis2.atlassian.net/browse/DHIS2-18441 Follow-up JIRA issue DHIS2-18537: https://dhis2.atlassian.net/browse/DHIS2-18537 Design specs: https://docs.google.com/document/d/1c8Ll1aLbFYwU8HYsyDlH1wk_QKTrUXwNanCiqayczOM
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements DHIS2-18441 according to design doc
Key features
Description
Implements the new design according to the design doc. Some other changes are also included in this PR and these are listed below.
Changes to
ViewDashboard
useAlert
hook instead of rendering aAlertStack
. This ensures the show/hide animation runs and that there won't be problems when we show this alert together with another alertgetContent
function, we now have theViewDashboardContent
component.Changes to
CacheableViewDashboard
A
useEffect
hook was added to ensure that the selected dashboard is cleared from the redux store when the user chooses "Close dashboard" in the "action menu" dropdown.Changes to
FilterBadge
The design was updated and some modifications were done to the behaviour as well:
Major version upgrade of
@dhis2/ui
(v10)Version 10 includes some improvements in terms of accessibility and keyboard navigation. To comply with the new guidelines in that regard a few small tweaks to components were needed. This involved adding things like
ariaLabel
props, and addressing some invalid DOM nesting (nested<a>
tags).Some tweaks to the unit-testing configuration
data-test
attribute we use at DHIS2 (i.e. thedataTest
prop for components from@dhis2/ui
). The default data-attribute used by React testing-library isdata-test-id
, and some tests needed to be adjusted to no longer use that.spec.js
to remove the need to add ESLint ignore comments when making mock-components and other types of mocks.TODO
Known issues
@dhis2/ui
which comes with some accessibility improvements including arrow-key keyboard navigation for menus. The navigation- and more-actions-menu in the new dashboards-bar are using these. But the filter-menu is using a custom menu-list and this can be used by keyboard by using the tab-key. This inconsistency will be tackled in a separate PR, see DHIS2-18537.Screenshots