I’ve been updating my POS extension to work with the new Polaris components. Thought I’d drop my notes here.
-
Double-tap issue with s-clickable: When a s-text-field has focus and I tap a s-clickable component, it requires two taps - the first removes focus, the second triggers the action. I think s-clickable should trigger immediately, even when s-text-field is focused.
-
Missing loading states: Pages previously had a loading property, but it’s gone in 2025-10 with no replacement. There’s also no spinner component available compared to Checkout and Admin extensions.
-
Can’t dismiss action modal programmatically:
shopify.navigation.dismiss()is no longer available. -
Also, is it possible to trigger focus on s-search-field when a modal opens?
-
Extension name display inconsistencies: The extension name now appears in modals, but there are inconsistencies:
- Block target shows “description”, but name isn’t visible
- Modal target shows “name”, but description isn’t visible
- In Shopify POS settings (Shopify Admin), “description” is used, name isn’t visible
-
Dev experience: frequent reload failures: Despite recent improvements, when the phone locks or I switch to another app for even a minute, the extension fails to load. Only force-quitting Shopify POS and rescanning the QR code helps. I’m on latest iOS and experiencing this both with iPhone 15 Pro and 17 Pro.
-
Heavy caching after releases: I’m experiencing very aggressive extension version caching after releasing new app versions, up to few hours. Is there a way to force a refresh? Closing the iOS app doesn’t seem to be enough.
-
Loading and disabled state broken on s-button: The loading state on s-button using the secondary-actions slot in s-page doesn’t work at all. Also
disabledalso doesn’t work: button looks exactly the same and it callsonClickwhen pressed. -
Toast missing error state: Unlike Shopify Admin, the toast component doesn’t support an error state.
-
Missing some types Shopify CLI isn’t generating types for some components, like s-tile.
-
Translations not supported: Still no support for translations compared to Checkout or Admin extensions.
-
Buttons can’t link externally: Buttons can’t link to URLs or other apps.
-
Would love data passing between block and modal: It would be great to pass data through
shopify.action.presentModal(). Currently, we fetch the same data in both the block and modal - fetching once would make extensions load faster.