Shopify / ui-extensions

MIT License
260 stars 36 forks source link

[POS] Multiple tiles per app #1676

Open timvandam opened 7 months ago

timvandam commented 7 months ago

Please list the related package(s)

retail-ui-extensions-react retail-ui-extensions

If this related to specific APIs or components, please list them here

Tile

Is your feature request related to a problem? Please describe.

POS UI Extensions can currently only have one tile. This can disrupt UX when working with UI Extensions with many features. Currently, you are forced to make some entry screen where you can pick whatever feature you want to use before navigating to the appropriate screen to this feature. Adding the ability to add multiple tiles makes this approach obsolete, and can improve UX significantly.

Describe the changes you are looking for

I think the easiest way of making this work would be to allow returning multiple tiles on the pos.home.tile.render extension point, or to allow multiple render calls on this to create multiple tiles. Then, api.navigation.presentModel could be changed to allow a single argument that is passed to the props of the component registered on the pos.home.modal.render extension point. Based on this prop you could for instance set the initialScreenName of a Navigator

Describe alternatives you’ve considered

As mentioned, currently you can use a single tile to open a navigation screen to the correct feature. Alternatively you could deploy the same extension multiple times, but with different initial screens.

Additional context

js-goupil commented 7 months ago

@timvandam Hey thank you for the suggestion! Unfortunately due to the way we currently store the smart grid on device and backend, this will not be possible. I know some apps have gotten around this by creating multiple POS UI Extensions. Is this something that could work with your use case?

timvandam commented 7 months ago

@timvandam Hey thank you for the suggestion! Unfortunately due to the way we currently store the smart grid on device and backend, this will not be possible. I know some apps have gotten around this by creating multiple POS UI Extensions. Is this something that could work with your use case?

Yes this seems to be the only way to do it now