Skip to content

iframe-based Experience Plugins support in frontend-platform #13

@davidjoy

Description

@davidjoy

Related PR: openedx/frontend-platform#235

frontend-platform will provide a set of helper components which will make creating experience plugin extension points (slots) in micro-frontends easy.

These components are:

  • PluginSlot - An extension point in an micro-frontend
  • Plugin - A plugin loader, used by PluginSlot
  • PluginIframe - A plugin mechanism, loads a plugin in an iframe
  • PluginContainer - A helper class for plugin implementations that automates communication with the parent page
  • PluginErrorBoundary - Helps isolate errors that occur in plugin handling code so that it doesn't crash the whole application.

These components assume that plugin configuration is available in the application's config, accessed via frontend-platform's getConfig function.

Subtasks:

  • Basic implementation of the above classes.
  • Component tests where possible (may be difficult to get 100% coverage, given the nature of the components)
  • Tests for custom hooks
  • Improve logging in PluginErrorBoundary - where should errors caught in this component go?
  • Ensure that plugins know the target origin for the parent page in dispatchHostEvent. This may have to be communicated from the parent to the plugin during initialization.
  • Decide what to do with module federation-based plugin code for now. Perhaps 'stash' it on a branch.

Metadata

Metadata

Assignees

Labels

epicLarge unit of work, consisting of multiple tasks

Type

No type

Projects

Status

Closed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions