Improve re-usability of components, action sequences, etc.

  • 4
  • Idea
  • Updated 3 years ago
  • Under Consideration
The new UI features of Banzai are incredible and greatly simplify so many things.  With things better than ever and even easier to do declaratively, I can see myself (and likely other users) pushing Skuid even further with what were once features that required JS. 

With all these new bells and whistles, component configuration (e.g. page title, nav bar, etc.) will become even more detailed.  In order to really take advantage of all that power and make life simpler, being able to "re-use" configuration would take things to the next level.  It's akin to a "partial view" concept so to speak.  As a simple example, think of SFDC standard layouts with buttons at top & bottom.  Today, this is two separate page titles, each with identical configuration as there is no way to "re-use" a single page title definition (aside from custom component which then you lose declarative features).

I can see ways to leverage lightning components along these lines but even then, getting lightning input back in to Skuid models requires JS and it's just not as clean of a approach to accomplish component re-use.  I've built a custom component that essentially is a "Component Include Component" providing for defining xml config in static resources or pulling directly from other skuid pages (stripping out models, resources, etc.) and then dynamically pulling that definition in to the containing page.  Unfortunately, this only goes so far due to certain limitations of the apis, etc.

Master Pages are phenomenal (here) and essentially demonstrate a very similar paradigm, now it's just allowing components to be written that can be "dropped" in to pages.  I realize this is a lot easier said then done but after an admin takes the time to configure a navigation menu with all types of custom actions or an action sequence for a button or a table/field editor, etc., it's unfortunately copy/paste XML and then maintain in multiple places.

It's been discussed in many places in the community in the past (here, here, here, here, here) so I won't belabor beyond what I've mentioned above but I would love to see a way to reuse components.  It would truly provide a mechanism to harness all of the great new features of Banzai and those yet to come!
Photo of Barry Schnell

Barry Schnell, Champion

  • 18,076 Points 10k badge 2x thumb

Posted 3 years ago

  • 4
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
Well stated.   We really do want to get this done. 
Photo of Ben Hubbard

Ben Hubbard, Employee

  • 12,490 Points 10k badge 2x thumb
As a side note, we're trying get the lightning "input" components (inputText, inputDate, etc) to work with Skuid models through the action framework. The documentation shows these lighting components as firing "onChange" events, but in my attempts, either those components don't fire the events they say they do, or we're doing it wrong.

I would *love* to get to the point where you could drag a bunch of lighting inputs on the page and have them bound to data using the action framework without any code. It might be more work than it's worth though since Skuid has similar components.
Photo of Barry Schnell

Barry Schnell, Champion

  • 18,076 Points 10k badge 2x thumb
Hey Ben - I think being able to use Skuid Models (in)directly from lightning pages would be a killer enhancement.  I've played around with using angular/knockout in a similar manner and it works but you end up models on each side just due to the nature of the frameworks.  One reason I explored that path was to overcome the missing re-usable component feature.  However, I can definitely see many use cases for lightning components on skuid pages interacting with skuid models beyond just the re-usability aspect.  There are going to be things that are just a little easier in a framework like lightning/angular/etc. compared to Skuid (e.g. closer to the metal for custom html) so having this gives the best of both worlds.  Short story is I would *love* it too :)