informatics-isi-edu / deriva-webapps

Deriva-based web applications
Apache License 2.0
2 stars 1 forks source link

Show multiple webapps using a global react grid layout - single app #215

Open jrchudy opened 5 months ago

jrchudy commented 5 months ago

We want to have a way to show multiple webapps on the same page in different configurations with user controls too. This might be a new webapp that has a general configuration language composed of configs from each of the webapp.

With the addition of vitessce app, we now use the global react grid layout for 2 different apps. Both of these apps share the same user control libraries and configuration language for both the react grid layout and the user controls. The vitessce app contains a component that handles rendering the actual vitessce component. The configuration language for this component can be reused. This is true about each plot config in the plots array for plot app too. The plot config is a configuration for the plotly component of the app that can be reused for the "plot component.

Sample config for new app:

{
  'config-name': {
    webapps: [{
        webapp_type: 'plot' | 'matrix' | 'vitessce' | 'treeview' | 'boolean-search',
        app_config: {
          /** 
           * config here might be:
           *   - a plot object from plot app
           *   - a vitessce object
           */
        }
    }, ...],
    user_controls: [{ ... }, ...],
    grid_layout_config: { ... }
  }
}

Other tasks involved for this "webapps" app: