Polaris React v5.0.0 is a major release that introduces breaking changes, primarily due to removing integrated App Bridge support as consumers using App Bridge should use the @shopify/app-bridge-react package. We have created the Shopify/shopify-app-bridge repository for issues related to the new app bridge packages.
For instructions on updating from v4 to v5, read the migration guide.
Breaking changes
- Upgraded
react
andreact-dom
peer-dependencies to 16.9.0 to enable the use ofReact.Profiler
(#2462) - Removed
NavigationMessageProps
as theMessage
component no longer exists (#2502) - Removed
ResourceList.FilterControl
component. TheFilterControl
component is available under a private name for legacy Shopify applications, but it should not be relied upon and might be deleted at any point (#2047 #3116) - Removed
AppBridge
,ResourcePicker
andLoading
,Modal
,Page
,Toast
App Bridge render delegation (#2046) - Dropped support for iOS 9 (#2195)
- Moved several of our build artifacts into a
dist
folder (#2938):styles.css
has moved todist/styles.css
styles.min.css
has been removed - importdist/styles.css
instead. Styles are compacted by default so the performance hit is negligible.styles.scss
has been removed - importdist/styles.css
anddist/styles/_public-api.scss
instead
- Updated "esnext" build output to ship plain css files instead of scss source files. Apps built using
@shopify/sewing-kit
will need to update to at least version0.132.2
. (#2938) - Moved styles from
global.scss
toAppProvider
. This change only affects applications using theesnext
build (applications importing@shopify/polaris/styles.css
aren’t affected), who no longer need to import the@shopify/polaris/esnext/global.scss
file. (#2392) - Reversed the precedence of the language dictionaries passed into the
AppProvider
’si18n
prop. When passing an array of dictionaries the first dictionary should be your prefered language, followed by any fallback languages. (#2572) - Removed
centeredLayout
prop inEmptyState
. All layouts within the new design language context will be center aligned (#3111) - Updated types of
DatePicker
component -month
,year
weekStartsOn
are now typed as plainnumber
- functionality remains identical as the former types effectively ended up being aliases ofnumber
anyway (#3121) - Removed
Year
type export (used by the DatePicker's props). Replace its usage withnumber
. (#3121) - Removed the
Month
enum export (used by the DatePicker's props). Replace its usage with a number from 0 to 11, representing the number of the month in question -Month.January
becomes0
,Month.December
becomes11
etc. (#3121) - Removed the
TypeOf
enum, andGeneralObject
,DeepPartial
,EffectCallback
,DependencyList
andComparator
type exports - these were for internal use, and were never documented for external use. (#3123)
Enhancements
- Added an activator prop to
Modal
so that focus can be returned to it when theModal
is closed (#2206)
Bug fixes
- Fixed case where
DatePicker
did not translate the month name in an aria label (#3121)
Dependency upgrades
- Updated browserlist to use
@shopify/browserslist-config
(#3101)
Code quality
- Converted
Modal
to a functional component (#2376) - Migrated to use
react-transition-group
instead of the material-ui fork. (#3094) - Removed
withAppProvider
higher-order component. (#3098) - Removed several dependencies on the deprecated
@shopify/javascript-utilities
library (#3102) - Removed dependency on
@shopify/useful-types
- Removed dependency on
@shopify/javascript-utilities
(#3108)