-
Notifications
You must be signed in to change notification settings - Fork 16
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
fix: inject style in props passed to VisualizationPlugin (DHIS2-15126) #2322
Conversation
🚀 Deployed on https://pr-2322--dhis2-data-visualizer.netlify.app |
Passing run #2158 ↗︎
Details:
This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left one remark about variable naming, which is no biggie. Other than that, this looks like a good solution to me 👍 .
style is used to compute the correct width when toggling the legend panel in dashboard. style is not passed in props from dashboard because doing so can cause re-rendering of the whole iframe tag which causes refetching of the plugin and everything else (analytics included).
This is because eventually the PluginWrapper component will be replaced by the generic one from app-platform. If possible all custom logic should not be put in other components at the app level.
It's a callback ref, not a normal ref.
5ccad9d
to
388b5b9
Compare
#2322) * fix: inject style in props passed to VisualizationPlugin style is used to compute the correct width when toggling the legend panel in dashboard. style is not passed in props from dashboard because doing so can cause re-rendering of the whole iframe tag which causes refetching of the plugin and everything else (analytics included). * refactor: move the size logic from the plugin wrapper This is because eventually the PluginWrapper component will be replaced by the generic one from app-platform. If possible all custom logic should not be put in other components at the app level. * fix: observe size changes for legend positioning * refactor: rename const for clarity It's a callback ref, not a normal ref. --------- Co-authored-by: Jan Henrik Øverland <[email protected]> Co-authored-by: Martin <[email protected]>
#2322) * fix: inject style in props passed to VisualizationPlugin style is used to compute the correct width when toggling the legend panel in dashboard. style is not passed in props from dashboard because doing so can cause re-rendering of the whole iframe tag which causes refetching of the plugin and everything else (analytics included). * refactor: move the size logic from the plugin wrapper This is because eventually the PluginWrapper component will be replaced by the generic one from app-platform. If possible all custom logic should not be put in other components at the app level. * fix: observe size changes for legend positioning * refactor: rename const for clarity It's a callback ref, not a normal ref. --------- Co-authored-by: Jan Henrik Øverland <[email protected]> Co-authored-by: Martin <[email protected]>
#2322) * fix: inject style in props passed to VisualizationPlugin style is used to compute the correct width when toggling the legend panel in dashboard. style is not passed in props from dashboard because doing so can cause re-rendering of the whole iframe tag which causes refetching of the plugin and everything else (analytics included). * refactor: move the size logic from the plugin wrapper This is because eventually the PluginWrapper component will be replaced by the generic one from app-platform. If possible all custom logic should not be put in other components at the app level. * fix: observe size changes for legend positioning * refactor: rename const for clarity It's a callback ref, not a normal ref. --------- Co-authored-by: Jan Henrik Øverland <[email protected]> Co-authored-by: Martin <[email protected]>
* chore: run workflow release job on tags as well (#2386) Tag builds were not triggering creation of corresponding branch in d2-ci repo. The core apps-to-bundle depends on these. * test: add Cypress tests for SV icon (DHIS2-10496) (#2372) * fix(translations): sync translations from transifex (dev) Automatically merged. * fix(translations): sync translations from transifex (dev) Automatically merged. * fix(translations): sync translations from transifex (dev) Automatically merged. * test: more tests for custom calculations (DHIS2-13871) (#2287) * test: rename AO-title to titlebar (DHIS2-15063) (#2435) * fix(translations): sync translations from transifex (dev) Automatically merged. * chore: run nightly at 6:20 instead of 2:20 to avoid concurrently running with instances reset (#2500) * test: extend timeout after delete has been triggered (#2499) * fix: inject style in props passed to VisualizationPlugin (DHIS2-15126) (#2322) * fix: inject style in props passed to VisualizationPlugin style is used to compute the correct width when toggling the legend panel in dashboard. style is not passed in props from dashboard because doing so can cause re-rendering of the whole iframe tag which causes refetching of the plugin and everything else (analytics included). * refactor: move the size logic from the plugin wrapper This is because eventually the PluginWrapper component will be replaced by the generic one from app-platform. If possible all custom logic should not be put in other components at the app level. * fix: observe size changes for legend positioning * refactor: rename const for clarity It's a callback ref, not a normal ref. --------- Co-authored-by: Jan Henrik Øverland <[email protected]> Co-authored-by: Martin <[email protected]> * chore: increase cypress default timeout for DOM activity (#2549) * chore: manually bump deps (#2543) * chore: advance the schedule for the nightly run (#2575) * test: prevent test names from being dynamic (#2576) * chore: disable the scheduled nightly test run (#2602) The servers are currently slow and there will be very little frontend or backend activity during July 2023 * chore: upgrade cypress to v12 and adjust project to it * chore: remove videos * chore: gitignore cypress videos * chore: switch test server to debug (test.e2e is broken/slow) * chore: revert the test server changes and move to a separate PR * test: comment out icon tests for currently unsupported types * test: skip legend test while data element icons are unsupported * fix(translations): sync translations from transifex (dev) Automatically merged. * feat: use Toolbar and ToolbarSidebar from analytics (#2358) * feat: use Toolbar and ToolbarSidebar from analytics * feat: use UpdateButton and HoverMenubar from analytics * feat: update download menu to use hovermenu components from analytics * feat: use hover menu components from analytics for options menu * feat: use interpretations button from analytics * chore: update pot file * chore: upgrade @dhis2/analytics to latest * chore: fix typo in component name * fix: adjust e2e element slectors * chore: fix missing and redundant imports * chore: fix odd linter error which only fires on ci * fix: adjust data test name * chore: fix lines e2e test * fix: adjust closeFileMenuWithClick command * chore: fix failing legens e2e test * chore: fix legend e2e test even better * chore: fix scatter e2e * chore: fix icon e2e * chore: fix start e2e * chore: clean up unused imports * fix: remove divider from plain data source submenu * chore: upgrade @dhis2/analytics to get toolbar UI improvements * fix: tweak viz type selector styles to match toolbar * chore: remove yarn start command which was only used for development * chore: upgrade analytics to get decreased padding * fix: ensure `MenuSectionHeader` is `dense` when in `HoverMenuBar` --------- Co-authored-by: Jan Henrik Øverland <[email protected]> * Merge pull request #2613 from dhis2/chore/upgrade-cypress-to-v12 chore: upgrade cypress to v12 * chore: run nightly at 6:20 to avoid concurrently running with instances reset (#2500) * test: extend timeout after delete has been triggered (#2499) * fix: inject style in props passed to VisualizationPlugin (DHIS2-15126) (#2322) * fix: inject style in props passed to VisualizationPlugin style is used to compute the correct width when toggling the legend panel in dashboard. style is not passed in props from dashboard because doing so can cause re-rendering of the whole iframe tag which causes refetching of the plugin and everything else (analytics included). * refactor: move the size logic from the plugin wrapper This is because eventually the PluginWrapper component will be replaced by the generic one from app-platform. If possible all custom logic should not be put in other components at the app level. * fix: observe size changes for legend positioning * refactor: rename const for clarity It's a callback ref, not a normal ref. --------- Co-authored-by: Jan Henrik Øverland <[email protected]> Co-authored-by: Martin <[email protected]> * chore: increase cypress default timeout for DOM activity (#2549) * chore: manually bump deps (#2543) * chore: advance the schedule for the nightly run (#2575) * test: prevent test names from being dynamic (#2576) * chore: disable the scheduled nightly test run (#2602) Servers are currently slow. Will be little activity during July 2023. * chore: upgrade cypress to v12 and adjust project to it * chore: remove videos * chore: gitignore cypress videos * chore: switch test server to debug (test.e2e is broken/slow) * chore: revert the test server changes and move to a separate PR * test: comment out icon tests for currently unsupported types * test: skip legend test while data element icons are unsupported * fix(translations): sync translations from transifex (dev) Automatically merged. * feat: use Toolbar and ToolbarSidebar from analytics (#2358) * feat: use Toolbar and ToolbarSidebar from analytics * feat: use UpdateButton and HoverMenubar from analytics * feat: update download menu to use hovermenu components from analytics * feat: use hover menu components from analytics for options menu * feat: use interpretations button from analytics * chore: update pot file * chore: upgrade @dhis2/analytics to latest * chore: fix typo in component name * fix: adjust e2e element slectors * chore: fix missing and redundant imports * chore: fix odd linter error which only fires on ci * fix: adjust data test name * chore: fix lines e2e test * fix: adjust closeFileMenuWithClick command * chore: fix failing legens e2e test * chore: fix legend e2e test even better * chore: fix scatter e2e * chore: fix icon e2e * chore: fix start e2e * chore: clean up unused imports * fix: remove divider from plain data source submenu * chore: upgrade @dhis2/analytics to get toolbar UI improvements * fix: tweak viz type selector styles to match toolbar * chore: remove yarn start command which was only used for development * chore: upgrade analytics to get decreased padding * fix: ensure `MenuSectionHeader` is `dense` when in `HoverMenuBar` --------- Co-authored-by: Jan Henrik Øverland <[email protected]> * Merge pull request #2613 from dhis2/chore/upgrade-cypress-to-v12 chore: upgrade cypress to v12 --------- Co-authored-by: Jen Jones Arnesen <[email protected]> Co-authored-by: Martin <[email protected]> Co-authored-by: @dhis2-bot <[email protected]> Co-authored-by: Edoardo Sabadelli <[email protected]> Co-authored-by: HendrikThePendric <[email protected]> Co-authored-by: Hendrik de Graaf <[email protected]>
Fixes DHIS2-15126
Key features
style
toVisualizationPlugin
Description
style
is used to compute the correct width when toggling the legend panel in dashboard.style
is not passed in props from dashboard because doing so can cause re-rendering of the whole iframe tag which causes refetching of the plugin and everything else (analytics included) (see: dhis2/dashboard-app#2247).Instead,
style
can be computed directly in thePluginWrapper
based on the parent element dimensions, these should match withwidth
andheight
set on theiframe
tag.Known issues
browser window or dashboard item resize causes the legend to remain in the same position, resulting in either too much space on the right side or cutoffFixed with the resize observerScreenshots
Before:
After: