From 1c2febdd4b87a6df2f9713663c2aa9f7c299b945 Mon Sep 17 00:00:00 2001 From: Sarah Norris Date: Mon, 4 Sep 2023 12:48:34 +0100 Subject: [PATCH 1/4] Wrap snackbar list in createPortal --- packages/components/src/snackbar/list.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/components/src/snackbar/list.tsx b/packages/components/src/snackbar/list.tsx index 631cf48d953a2..da089e37868ee 100644 --- a/packages/components/src/snackbar/list.tsx +++ b/packages/components/src/snackbar/list.tsx @@ -7,7 +7,7 @@ import classnames from 'classnames'; * WordPress dependencies */ import { useReducedMotion } from '@wordpress/compose'; -import { useRef } from '@wordpress/element'; +import { createPortal, useRef } from '@wordpress/element'; /** * Internal dependencies @@ -72,7 +72,7 @@ export function SnackbarList( { const removeNotice = ( notice: SnackbarListProps[ 'notices' ][ number ] ) => () => onRemove?.( notice.id ); - return ( + return createPortal(
{ children } @@ -103,7 +103,8 @@ export function SnackbarList( { ); } ) } -
+ , + document.body ); } From c26af7b722729164625b0de6b1e072131d6afbd9 Mon Sep 17 00:00:00 2001 From: Sarah Norris Date: Mon, 4 Sep 2023 12:49:40 +0100 Subject: [PATCH 2/4] Adjust styles for new location on body --- packages/components/src/snackbar/style.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/components/src/snackbar/style.scss b/packages/components/src/snackbar/style.scss index 3cae9c8ef65d4..bc443f56036af 100644 --- a/packages/components/src/snackbar/style.scss +++ b/packages/components/src/snackbar/style.scss @@ -78,6 +78,8 @@ .components-snackbar-list { position: absolute; + bottom: $grid-unit-50; + left: $grid-unit-20; z-index: z-index(".components-snackbar-list"); width: 100%; box-sizing: border-box; From 246b28e65dcaac7d560d1cbc05127f42d0635fc1 Mon Sep 17 00:00:00 2001 From: Sarah Norris Date: Mon, 4 Sep 2023 12:56:45 +0100 Subject: [PATCH 3/4] Increase z-index of snackbars --- packages/base-styles/_z-index.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/base-styles/_z-index.scss b/packages/base-styles/_z-index.scss index 8df96260c8066..ff8df073a5a08 100644 --- a/packages/base-styles/_z-index.scss +++ b/packages/base-styles/_z-index.scss @@ -109,8 +109,8 @@ $z-layers: ( // Above the block list and the header. ".block-editor-block-popover": 31, - // Show snackbars above everything (similar to popovers) - ".components-snackbar-list": 100000, + // Show snackbars above everything, including modals (similar to popovers) + ".components-snackbar-list": 100001, // Show modal under the wp-admin menus and the popover ".components-modal__screen-overlay": 100000, From f365c9f265e89fd3eceb01044ca4545af770cee6 Mon Sep 17 00:00:00 2001 From: Sarah Norris Date: Mon, 4 Sep 2023 14:56:51 +0100 Subject: [PATCH 4/4] Update components changelog --- packages/components/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index be5608c72fc06..bf6a4c43ebf99 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -6,6 +6,10 @@ - Make the `Popover.Slot` optional and render popovers at the bottom of the document's body by default. ([#53889](https://github.com/WordPress/gutenberg/pull/53889), [#53982](https://github.com/WordPress/gutenberg/pull/53982)). +### Bug Fixes + +- `Snackbar`: Re-position Snackbar above Modals ([#54153](https://github.com/WordPress/gutenberg/pull/54153)). + ## 25.7.0 (2023-08-31) ### Enhancements