Skip to content
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) O3-4249: Add component to support rendering an icon if it exists #1220

Merged
merged 2 commits into from
Dec 4, 2024

Conversation

ibacher
Copy link
Member

@ibacher ibacher commented Dec 3, 2024

Requirements

  • This PR has a title that briefly describes the work done including the ticket number. Ensure your PR title includes a conventional commit label (such as feat, fix, or chore, among others). See existing PR titles for inspiration.

For changes to apps

If applicable

  • My work includes tests or is validated by existing tests.
  • I have updated the esm-framework mock to reflect any API changes I have made.

Summary

This is pretty straight-forward. It adds a couple of utility components:

  • RenderIfValueIsTruthy — Does what it says; either renders the provided children if the value prop is truthy or else renders a specified fallback (default nothing). This is just a building block for the functionality added here, but it seemed like it may be more broadly useful.
  • MaybeIcon — This is basically a combination of RenderIfValueIsTruthy and the existing Icon component, so that it renders as an icon if the icon specified as a string is one of the icons provided and as nothing if the icon isn't defined.
  • MaybePictogram — Same thing, but wrapping pictograms.

The intended use case is to support configuration-driven icons, for example:

const MyComponentWithIcon() {
  const config = useConfig();

  return (
    <>
      <MaybeIcon icon={`omrs-icon-${config.icon}`} size=20 />
      {t('label', 'My Action')}
    </>
  );
}

As long as config.icon resolves to a known icon id, e.g., arrow-up, this will render exactly like the ArrowUpIcon component, but if config.icon specifies something that doesn't exist, nothing will be rendered at all.

Screenshots

Related Issue

Other

This also adds some docs for UserHasAccess which is kind of similar to RenderIfValueIsTruthy.

Copy link
Contributor

github-actions bot commented Dec 3, 2024

Size Change: -148 kB (-2.35%)

Total Size: 6.15 MB

Filename Size Change
packages/shell/esm-app-shell/dist/1ce1b17d44f49253.js 0 B -65.1 kB (removed) 🏆
packages/shell/esm-app-shell/dist/56c7b8267a411839.js 0 B -45.6 kB (removed) 🏆
packages/shell/esm-app-shell/dist/openmrs.11cc3384b74ba96c.js 0 B -21.7 kB (removed) 🏆
ℹ️ View Unchanged
Filename Size Change
packages/apps/esm-devtools-app/dist/593.js 149 kB 0 B
packages/apps/esm-devtools-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-devtools-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-devtools-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-devtools-app/dist/762.js 4.1 kB 0 B
packages/apps/esm-devtools-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-devtools-app/dist/875.js 11.6 kB 0 B
packages/apps/esm-devtools-app/dist/889.js 374 kB +61 B (+0.02%)
packages/apps/esm-devtools-app/dist/988.js 326 B 0 B
packages/apps/esm-devtools-app/dist/main.js 3.23 kB 0 B
packages/apps/esm-devtools-app/dist/openmrs-esm-devtools-app.js 3.28 kB 0 B
packages/apps/esm-help-menu-app/dist/167.js 1.07 kB 0 B
packages/apps/esm-help-menu-app/dist/248.js 9.89 kB 0 B
packages/apps/esm-help-menu-app/dist/611.js 2.45 kB 0 B
packages/apps/esm-help-menu-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-help-menu-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-help-menu-app/dist/662.js 147 kB 0 B
packages/apps/esm-help-menu-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-help-menu-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-help-menu-app/dist/889.js 374 kB +59 B (+0.02%)
packages/apps/esm-help-menu-app/dist/958.js 3.74 kB 0 B
packages/apps/esm-help-menu-app/dist/main.js 8.56 kB 0 B
packages/apps/esm-help-menu-app/dist/openmrs-esm-help-menu-app.js 3.23 kB 0 B
packages/apps/esm-implementer-tools-app/dist/152.js 594 B 0 B
packages/apps/esm-implementer-tools-app/dist/236.js 592 B 0 B
packages/apps/esm-implementer-tools-app/dist/240.js 593 B 0 B
packages/apps/esm-implementer-tools-app/dist/261.js 594 B 0 B
packages/apps/esm-implementer-tools-app/dist/271.js 755 B 0 B
packages/apps/esm-implementer-tools-app/dist/272.js 594 B 0 B
packages/apps/esm-implementer-tools-app/dist/289.js 14.2 kB 0 B
packages/apps/esm-implementer-tools-app/dist/319.js 687 B 0 B
packages/apps/esm-implementer-tools-app/dist/336.js 137 kB 0 B
packages/apps/esm-implementer-tools-app/dist/36.js 2.49 kB 0 B
packages/apps/esm-implementer-tools-app/dist/378.js 700 B 0 B
packages/apps/esm-implementer-tools-app/dist/426.js 27.8 kB 0 B
packages/apps/esm-implementer-tools-app/dist/441.js 4.38 kB 0 B
packages/apps/esm-implementer-tools-app/dist/448.js 4.66 kB 0 B
packages/apps/esm-implementer-tools-app/dist/460.js 789 B 0 B
packages/apps/esm-implementer-tools-app/dist/491.js 134 kB 0 B
packages/apps/esm-implementer-tools-app/dist/539.js 592 B 0 B
packages/apps/esm-implementer-tools-app/dist/574.js 593 B 0 B
packages/apps/esm-implementer-tools-app/dist/587.js 2.93 kB 0 B
packages/apps/esm-implementer-tools-app/dist/625.js 594 B 0 B
packages/apps/esm-implementer-tools-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-implementer-tools-app/dist/644.js 751 B 0 B
packages/apps/esm-implementer-tools-app/dist/652.js 594 B 0 B
packages/apps/esm-implementer-tools-app/dist/657.js 7.03 kB 0 B
packages/apps/esm-implementer-tools-app/dist/667.js 121 kB 0 B
packages/apps/esm-implementer-tools-app/dist/673.js 593 B 0 B
packages/apps/esm-implementer-tools-app/dist/705.js 594 B 0 B
packages/apps/esm-implementer-tools-app/dist/711.js 594 B 0 B
packages/apps/esm-implementer-tools-app/dist/727.js 593 B 0 B
packages/apps/esm-implementer-tools-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-implementer-tools-app/dist/737.js 593 B 0 B
packages/apps/esm-implementer-tools-app/dist/744.js 722 B 0 B
packages/apps/esm-implementer-tools-app/dist/757.js 703 B 0 B
packages/apps/esm-implementer-tools-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-implementer-tools-app/dist/807.js 592 B 0 B
packages/apps/esm-implementer-tools-app/dist/833.js 722 B 0 B
packages/apps/esm-implementer-tools-app/dist/845.js 6.43 kB 0 B
packages/apps/esm-implementer-tools-app/dist/859.js 3.09 kB 0 B
packages/apps/esm-implementer-tools-app/dist/873.js 3.67 kB 0 B
packages/apps/esm-implementer-tools-app/dist/889.js 374 kB +60 B (+0.02%)
packages/apps/esm-implementer-tools-app/dist/899.js 590 B 0 B
packages/apps/esm-implementer-tools-app/dist/main.js 21 kB 0 B
packages/apps/esm-implementer-tools-app/dist/openmrs-esm-implementer-tools-app.js 3.4 kB 0 B
packages/apps/esm-login-app/dist/202.js 2.57 kB 0 B
packages/apps/esm-login-app/dist/236.js 721 B 0 B
packages/apps/esm-login-app/dist/240.js 803 B 0 B
packages/apps/esm-login-app/dist/261.js 698 B 0 B
packages/apps/esm-login-app/dist/271.js 883 B 0 B
packages/apps/esm-login-app/dist/272.js 707 B 0 B
packages/apps/esm-login-app/dist/319.js 823 B 0 B
packages/apps/esm-login-app/dist/336.js 782 B 0 B
packages/apps/esm-login-app/dist/378.js 828 B 0 B
packages/apps/esm-login-app/dist/415.js 26.7 kB 0 B
packages/apps/esm-login-app/dist/460.js 941 B 0 B
packages/apps/esm-login-app/dist/539.js 729 B 0 B
packages/apps/esm-login-app/dist/574.js 698 B 0 B
packages/apps/esm-login-app/dist/593.js 149 kB 0 B
packages/apps/esm-login-app/dist/625.js 698 B 0 B
packages/apps/esm-login-app/dist/63.js 16.5 kB 0 B
packages/apps/esm-login-app/dist/638.js 31.2 kB 0 B
packages/apps/esm-login-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-login-app/dist/644.js 883 B 0 B
packages/apps/esm-login-app/dist/652.js 698 B 0 B
packages/apps/esm-login-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-login-app/dist/673.js 737 B 0 B
packages/apps/esm-login-app/dist/676.js 2.23 kB 0 B
packages/apps/esm-login-app/dist/7.js 3.03 kB 0 B
packages/apps/esm-login-app/dist/705.js 698 B 0 B
packages/apps/esm-login-app/dist/711.js 697 B 0 B
packages/apps/esm-login-app/dist/727.js 698 B 0 B
packages/apps/esm-login-app/dist/735.js 2.62 kB 0 B
packages/apps/esm-login-app/dist/737.js 697 B 0 B
packages/apps/esm-login-app/dist/744.js 964 B 0 B
packages/apps/esm-login-app/dist/755.js 3.36 kB 0 B
packages/apps/esm-login-app/dist/757.js 860 B 0 B
packages/apps/esm-login-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-login-app/dist/807.js 1.01 kB 0 B
packages/apps/esm-login-app/dist/833.js 846 B 0 B
packages/apps/esm-login-app/dist/859.js 3.08 kB 0 B
packages/apps/esm-login-app/dist/889.js 374 kB +61 B (+0.02%)
packages/apps/esm-login-app/dist/899.js 694 B 0 B
packages/apps/esm-login-app/dist/93.js 2.16 kB 0 B
packages/apps/esm-login-app/dist/main.js 59.4 kB 0 B
packages/apps/esm-login-app/dist/openmrs-esm-login-app.js 3.46 kB 0 B
packages/apps/esm-offline-tools-app/dist/236.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/240.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/261.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/271.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/272.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/319.js 1.16 kB 0 B
packages/apps/esm-offline-tools-app/dist/336.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/378.js 1.17 kB 0 B
packages/apps/esm-offline-tools-app/dist/460.js 1.3 kB 0 B
packages/apps/esm-offline-tools-app/dist/539.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/574.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/601.js 142 kB 0 B
packages/apps/esm-offline-tools-app/dist/625.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/63.js 16.5 kB 0 B
packages/apps/esm-offline-tools-app/dist/642.js 21.1 kB 0 B
packages/apps/esm-offline-tools-app/dist/644.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/645.js 91.5 kB 0 B
packages/apps/esm-offline-tools-app/dist/652.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/657.js 7.02 kB 0 B
packages/apps/esm-offline-tools-app/dist/673.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/703.js 6.32 kB 0 B
packages/apps/esm-offline-tools-app/dist/705.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/711.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/727.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-offline-tools-app/dist/737.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/744.js 1.28 kB 0 B
packages/apps/esm-offline-tools-app/dist/757.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-offline-tools-app/dist/807.js 1.1 kB 0 B
packages/apps/esm-offline-tools-app/dist/833.js 1.21 kB 0 B
packages/apps/esm-offline-tools-app/dist/859.js 3.09 kB 0 B
packages/apps/esm-offline-tools-app/dist/889.js 374 kB +62 B (+0.02%)
packages/apps/esm-offline-tools-app/dist/899.js 1.02 kB 0 B
packages/apps/esm-offline-tools-app/dist/947.js 8.66 kB 0 B
packages/apps/esm-offline-tools-app/dist/main.js 107 kB 0 B
packages/apps/esm-offline-tools-app/dist/openmrs-esm-offline-tools-app.js 3.39 kB 0 B
packages/apps/esm-primary-navigation-app/dist/236.js 239 B 0 B
packages/apps/esm-primary-navigation-app/dist/240.js 240 B 0 B
packages/apps/esm-primary-navigation-app/dist/261.js 241 B 0 B
packages/apps/esm-primary-navigation-app/dist/271.js 282 B 0 B
packages/apps/esm-primary-navigation-app/dist/272.js 240 B 0 B
packages/apps/esm-primary-navigation-app/dist/319.js 246 B 0 B
packages/apps/esm-primary-navigation-app/dist/336.js 240 B 0 B
packages/apps/esm-primary-navigation-app/dist/378.js 256 B 0 B
packages/apps/esm-primary-navigation-app/dist/460.js 277 B 0 B
packages/apps/esm-primary-navigation-app/dist/482.js 15.2 kB 0 B
packages/apps/esm-primary-navigation-app/dist/513.js 146 kB 0 B
packages/apps/esm-primary-navigation-app/dist/539.js 239 B 0 B
packages/apps/esm-primary-navigation-app/dist/574.js 240 B 0 B
packages/apps/esm-primary-navigation-app/dist/577.js 7.64 kB 0 B
packages/apps/esm-primary-navigation-app/dist/619.js 6.45 kB 0 B
packages/apps/esm-primary-navigation-app/dist/625.js 241 B 0 B
packages/apps/esm-primary-navigation-app/dist/63.js 16.5 kB 0 B
packages/apps/esm-primary-navigation-app/dist/644.js 281 B 0 B
packages/apps/esm-primary-navigation-app/dist/652.js 241 B 0 B
packages/apps/esm-primary-navigation-app/dist/657.js 7.03 kB 0 B
packages/apps/esm-primary-navigation-app/dist/673.js 240 B 0 B
packages/apps/esm-primary-navigation-app/dist/705.js 241 B 0 B
packages/apps/esm-primary-navigation-app/dist/711.js 240 B 0 B
packages/apps/esm-primary-navigation-app/dist/727.js 240 B 0 B
packages/apps/esm-primary-navigation-app/dist/735.js 2.63 kB 0 B
packages/apps/esm-primary-navigation-app/dist/737.js 240 B 0 B
packages/apps/esm-primary-navigation-app/dist/744.js 288 B 0 B
packages/apps/esm-primary-navigation-app/dist/757.js 244 B 0 B
packages/apps/esm-primary-navigation-app/dist/788.js 42.9 kB 0 B
packages/apps/esm-primary-navigation-app/dist/807.js 301 B 0 B
packages/apps/esm-primary-navigation-app/dist/833.js 268 B 0 B
packages/apps/esm-primary-navigation-app/dist/888.js 24.7 kB 0 B
packages/apps/esm-primary-navigation-app/dist/889.js 374 kB +59 B (+0.02%)
packages/apps/esm-primary-navigation-app/dist/899.js 237 B 0 B
packages/apps/esm-primary-navigation-app/dist/933.js 3.63 kB 0 B
packages/apps/esm-primary-navigation-app/dist/main.js 30.2 kB 0 B
packages/apps/esm-primary-navigation-app/dist/openmrs-esm-primary-navigation-app.js 3.38 kB 0 B
packages/framework/esm-api/dist/openmrs-esm-api.js 16.8 kB 0 B
packages/framework/esm-config/dist/openmrs-esm-module-config.js 8.41 kB 0 B
packages/framework/esm-context/dist/openmrs-esm-context.js 1.16 kB 0 B
packages/framework/esm-dynamic-loading/dist/openmrs-esm-dynamic-loading.js 2.89 kB 0 B
packages/framework/esm-error-handling/dist/openmrs-esm-error-handling.js 891 B 0 B
packages/framework/esm-expression-evaluator/dist/openmrs-esm-expression-evaluator.js 8.98 kB 0 B
packages/framework/esm-extensions/dist/openmrs-esm-extensions.js 25.3 kB 0 B
packages/framework/esm-feature-flags/dist/openmrs-esm-feature-flags.js 1.66 kB 0 B
packages/framework/esm-framework/dist/278.openmrs-esm-framework.js 14.5 kB 0 B
packages/framework/esm-framework/dist/530.openmrs-esm-framework.js 2.93 kB 0 B
packages/framework/esm-framework/dist/588.openmrs-esm-framework.js 2.15 kB 0 B
packages/framework/esm-framework/dist/619.openmrs-esm-framework.js 6.49 kB 0 B
packages/framework/esm-framework/dist/645.openmrs-esm-framework.js 9.3 kB 0 B
packages/framework/esm-framework/dist/735.openmrs-esm-framework.js 2.65 kB 0 B
packages/framework/esm-framework/dist/746.openmrs-esm-framework.js 6.14 kB 0 B
packages/framework/esm-framework/dist/788.openmrs-esm-framework.js 42.9 kB 0 B
packages/framework/esm-framework/dist/openmrs-esm-framework.js 458 kB +754 B (+0.16%)
packages/framework/esm-globals/dist/openmrs-esm-globals.js 791 B 0 B
packages/framework/esm-navigation/dist/openmrs-esm-navigation.js 9.34 kB 0 B
packages/framework/esm-offline/dist/openmrs-esm-offline.js 34.4 kB 0 B
packages/framework/esm-react-utils/dist/openmrs-esm-react-utils.js 22 kB +56 B (+0.26%)
packages/framework/esm-routes/dist/openmrs-esm-utils.js 4.67 kB 0 B
packages/framework/esm-state/dist/openmrs-esm-state.js 1.59 kB 0 B
packages/framework/esm-styleguide/dist/openmrs-esm-styleguide.js 194 kB 0 B
packages/framework/esm-translations/dist/openmrs-esm-core-translations.js 1.89 kB 0 B
packages/framework/esm-utils/dist/openmrs-esm-utils.js 45.5 kB 0 B
packages/shell/esm-app-shell/dist/020865a9f65321f0.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/02af6181aebfc3a3.js 172 kB 0 B
packages/shell/esm-app-shell/dist/0cc265fb6bd38e85.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/0d48c27b367767ef.js 0 B -5.89 kB (removed) 🏆
packages/shell/esm-app-shell/dist/1347daab66baf860.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/2464185114a2d3d0.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/38d4b8fb75f8850c.js 18.3 kB 0 B
packages/shell/esm-app-shell/dist/3b01402cd7292844.js 2.85 kB 0 B
packages/shell/esm-app-shell/dist/417374b674636e58.js 1.29 kB 0 B
packages/shell/esm-app-shell/dist/48f90114f3481db0.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/5632dfc52256aec6.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/572e81f004cc10c5.js 15.1 kB 0 B
packages/shell/esm-app-shell/dist/5f0c5677fa573f65.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/67cea7270046f293.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/6f47008d9c93c1cb.js 3.33 kB 0 B
packages/shell/esm-app-shell/dist/71ab27e0b8d1949e.js 2.58 kB 0 B
packages/shell/esm-app-shell/dist/71cd38f1db9f7b00.js 65.7 kB 0 B
packages/shell/esm-app-shell/dist/74f48935d8add443.js 3.88 kB 0 B
packages/shell/esm-app-shell/dist/78e6c1cc175f1d2f.js 1.27 kB 0 B
packages/shell/esm-app-shell/dist/7a500e8de0a9283e.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/7b204450699b0daf.js 2.6 kB 0 B
packages/shell/esm-app-shell/dist/8e0d11f862dfbba6.js 626 B 0 B
packages/shell/esm-app-shell/dist/8edec91e406a4eaf.js 1.59 kB 0 B
packages/shell/esm-app-shell/dist/8fff711f6800a4d3.js 1.3 kB 0 B
packages/shell/esm-app-shell/dist/90c9a6a8b268b4a3.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/932785417ef383b8.js 6.99 kB 0 B
packages/shell/esm-app-shell/dist/a3061ce68f18b515.js 5.89 kB 0 B
packages/shell/esm-app-shell/dist/a7792d6252d85b20.js 43 kB 0 B
packages/shell/esm-app-shell/dist/a7efa2596cd2be4f.js 168 kB 0 B
packages/shell/esm-app-shell/dist/b407f548b6fadfa3.js 3.08 kB 0 B
packages/shell/esm-app-shell/dist/b4dec13a4ba13c40.js 7.09 kB 0 B
packages/shell/esm-app-shell/dist/b84549c6f6e14c16.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/b87a5878f8961d1a.js 2.23 kB 0 B
packages/shell/esm-app-shell/dist/b88532bde74b513a.js 9.41 kB 0 B
packages/shell/esm-app-shell/dist/bb04bb60f8aa150f.js 3.04 kB 0 B
packages/shell/esm-app-shell/dist/bec78731e255b1fa.js 0 B -3.85 kB (removed) 🏆
packages/shell/esm-app-shell/dist/c8c6807fe4119742.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/cc0d293bb9b870d9.js 3.38 kB 0 B
packages/shell/esm-app-shell/dist/d5b7ae80834013a3.js 1.05 kB 0 B
packages/shell/esm-app-shell/dist/d79c587e59dee595.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/d80464c66e5d20d7.js 3.23 kB 0 B
packages/shell/esm-app-shell/dist/d94ae646e56f98a5.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/e04cad0e0c54b1c8.js 45.6 kB 0 B
packages/shell/esm-app-shell/dist/e39badf41d01af52.js 1.19 kB 0 B
packages/shell/esm-app-shell/dist/e419a658f4742c3e.js 9.36 kB 0 B
packages/shell/esm-app-shell/dist/e49c127ca058e379.js 1.3 kB 0 B
packages/shell/esm-app-shell/dist/e50c284908cadda5.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/e733f4ca112cf3e1.js 1.01 kB 0 B
packages/shell/esm-app-shell/dist/ec5d3f5f76832d62.js 1.34 kB 0 B
packages/shell/esm-app-shell/dist/ee4f4f0282833255.js 1.18 kB 0 B
packages/shell/esm-app-shell/dist/f5c65190072bb3f7.js 626 B 0 B
packages/shell/esm-app-shell/dist/fcb385df17a82210.js 6.77 kB 0 B
packages/shell/esm-app-shell/dist/fd8a55349035da16.js 0 B -7.06 kB (removed) 🏆
packages/shell/esm-app-shell/dist/openmrs.c8d8a13bc4fc9510.js 21.7 kB 0 B
packages/shell/esm-app-shell/dist/service-worker.js 46.6 kB +9 B (+0.02%)
packages/tooling/openmrs/dist/cli.js 3 kB 0 B
packages/tooling/openmrs/dist/commands/assemble.js 3.31 kB 0 B
packages/tooling/openmrs/dist/commands/build.js 1.34 kB 0 B
packages/tooling/openmrs/dist/commands/debug.js 543 B 0 B
packages/tooling/openmrs/dist/commands/develop.js 2.71 kB 0 B
packages/tooling/openmrs/dist/commands/index.js 437 B 0 B
packages/tooling/openmrs/dist/commands/start.js 850 B 0 B
packages/tooling/openmrs/dist/index.js 517 B 0 B
packages/tooling/openmrs/dist/runner.js 640 B 0 B
packages/tooling/openmrs/dist/utils/config.js 726 B 0 B
packages/tooling/openmrs/dist/utils/debugger.js 575 B 0 B
packages/tooling/openmrs/dist/utils/dependencies.js 643 B 0 B
packages/tooling/openmrs/dist/utils/helpers.js 397 B 0 B
packages/tooling/openmrs/dist/utils/importmap.js 3.07 kB 0 B
packages/tooling/openmrs/dist/utils/index.js 443 B 0 B
packages/tooling/openmrs/dist/utils/logger.js 368 B 0 B
packages/tooling/openmrs/dist/utils/npmConfig.js 831 B 0 B
packages/tooling/openmrs/dist/utils/untar.js 725 B 0 B
packages/tooling/openmrs/dist/utils/variables.js 192 B 0 B
packages/tooling/openmrs/dist/utils/webpack.js 278 B 0 B
packages/tooling/webpack-config/dist/index.js 3.61 kB 0 B

compressed-size-action

Copy link
Member

@vasharma05 vasharma05 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @ibacher for working on this. I was about to discuss about the same in a few days, so happy to see this!

}
};

const observer = new MutationObserver(callback);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to self: I'm not sure about the performance implications of having a per-icon mutation observer vs, say, a global mutation observer that could have callbacks registered with it. This is, however, easier to write.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Guess we'll find out!

Copy link
Member

@denniskigen denniskigen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @ibacher. LGTM. I've left a few persnickety comments.

packages/framework/esm-styleguide/src/icons/icons.tsx Outdated Show resolved Hide resolved
* <MaybeIcon icon='omrs-icon-baby' className={styles.myIconStyles} />
* ```
*/
export const MaybeIcon = memo(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
export const MaybeIcon = memo(
export const MaybeIcon = memo(

nit: Maybe LoadableIcon reads better here?

}
};

const observer = new MutationObserver(callback);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Guess we'll find out!

@ibacher ibacher merged commit c912bbe into main Dec 4, 2024
14 checks passed
@ibacher ibacher deleted the feat-optional-icon-render branch December 4, 2024 13:14
@denniskigen denniskigen mentioned this pull request Dec 5, 2024
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants