Shopify / polaris

Shopify’s design system to help us work together to build a great experience for all of our merchants.
https://polaris.shopify.com
Other
5.81k stars 1.17k forks source link

Deprecated components `Frame`, `Loading`, `Modal`, `Navigation`, `Toast` and `ContextualSaveBar` #11460

Open SinXie opened 10 months ago

SinXie commented 10 months ago

Issue summary

I have a project that uses shopify/polaris as the base component framework, Deprecating these components would have a huge impact on me.

So, whether there is a major release that supports these components and keeps them updated or If I want to continue using these components, What do I need to do?

mesija commented 4 months ago

We would like to mention the issue discussed in this task as it highlights one of the major expected problems. When issues arise in App Bridge version 4, developers are unable to resolve them on their own and have to wait weeks for a solution from Shopify. Resolving this independently is practically impossible.

In version 3, this issue could theoretically be resolved by rolling back to a previous plugin version. However, transitioning back to version 3 is not straightforward and introduces other problems, which won't be addressed since it's an outdated version.

Currently, this problem is specific to App Bridge. Moving modals to the new bridge would mean losing control over even more functionality.

Reference: Issue #388

davidhollenbeckx commented 2 months ago

Hey,

We're going to continue using the v3 modal indefinitely until Shopify provides a better solution.

Deprecating the old ContextualSaveBar and moving the parts that directly integrate with Shopify admin (app bridge) makes sense, but modals are standard in any UI kit. I'm struggling to understand why Shopify felt that the modal component in particular needs to be managed with App Bridge.

With how limited the app bridge v4 functionality is in modals, we're forced to choose between doing things the Shopify Way - which leads to a weird, clunky experience for our users - or just using the old modal so we can provide a friendlier, more intuitive experience.

I guess the src/double iframe modal works for some use cases, but I don't think Shopify considered how complex passing state into those can be. We have to basically cram all the state into url params. That might work fine for simple use cases but it's just not realistic for us.

Shopify's own app, Checkout Blocks, is a good example of a slightly more complex use case (resource creation) where a modal makes a lot of sense. We are doing something similar with rulesets.

Image