Skip to content

feat(greenhouse): optimize plugin fetching and loading strategies#1540

Draft
taymoor89 wants to merge 5 commits intomainfrom
1400-fetch-ui-only-plugins
Draft

feat(greenhouse): optimize plugin fetching and loading strategies#1540
taymoor89 wants to merge 5 commits intomainfrom
1400-fetch-ui-only-plugins

Conversation

@taymoor89
Copy link
Contributor

@taymoor89 taymoor89 commented Mar 16, 2026

Summary

Optimize plugin loading with dynamic imports and improve navigation between plugins. Plugins now load on-demand instead of being bundled upfront, reducing initial bundle size by 66%. Added module caching to eliminate loading spinners on return visits. Fixed URL state pollution when switching between plugins using TanStack Router's remountDeps. Also filters plugins server-side to fetch only UI plugins.

Changes Made

  • Filter plugins by greenhouse.sap/ui-plugin=true label (server-side)
  • Implement dynamic imports with module caching for plugins
  • Use remountDeps to ensure clean URL state when switching plugins

Related Issues

Testing Instructions

  1. pnpm i
  2. pnpm dev
  3. Verify that only plugins with UI components are displayed in the PluginNav

Checklist

  • I have performed a self-review of my code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • I have made corresponding changes to the documentation (if applicable).
  • My changes generate no new warnings or errors.
  • I have created a changeset for my changes.

@changeset-bot
Copy link

changeset-bot bot commented Mar 16, 2026

🦋 Changeset detected

Latest commit: f2c0713

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@cloudoperators/juno-app-greenhouse Minor
@cloudoperators/juno-app-doop Patch
@cloudoperators/juno-app-supernova Patch
@cloudoperators/juno-app-heureka Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@taymoor89 taymoor89 self-assigned this Mar 16, 2026
@taymoor89 taymoor89 force-pushed the 1400-fetch-ui-only-plugins branch from 79e52ab to c10f5d2 Compare March 16, 2026 13:22
@taymoor89 taymoor89 added the greenhouse-pr-preview Builds a PR preview for greenhouse shell app and plugins. label Mar 16, 2026
@taymoor89 taymoor89 changed the title feat(greenhouse): filter plugins by ui-plugin label feat(greenhouse): optimize plugin fetching and loading strategies Mar 17, 2026
@taymoor89 taymoor89 force-pushed the 1400-fetch-ui-only-plugins branch from 46ee22f to 0665481 Compare March 17, 2026 14:43
@taymoor89 taymoor89 force-pushed the 1400-fetch-ui-only-plugins branch 2 times, most recently from 880c7e4 to ab0d2c2 Compare March 17, 2026 15:35
- Add dynamic imports for plugins to reduce initial bundle size
- Implement module-level caching to eliminate loading flicker on return visits
- Use remountDeps to ensure clean URL state when switching between plugins
- Update TypeScript declarations for plugin modules
- Export PluginModule type from each plugin for better documentation
@taymoor89 taymoor89 force-pushed the 1400-fetch-ui-only-plugins branch from ab0d2c2 to f2c0713 Compare March 18, 2026 09:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

greenhouse-pr-preview Builds a PR preview for greenhouse shell app and plugins.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant