diff --git a/backport-changelog/6.8/7865.md b/backport-changelog/6.8/7865.md
index f7b23c944dc32..b5de24b8ee63d 100644
--- a/backport-changelog/6.8/7865.md
+++ b/backport-changelog/6.8/7865.md
@@ -1,3 +1,4 @@
https://github.com/WordPress/wordpress-develop/pull/7865
-* https://github.com/WordPress/gutenberg/pull/66851
\ No newline at end of file
+* https://github.com/WordPress/gutenberg/pull/66851
+* https://github.com/WordPress/gutenberg/pull/68174
diff --git a/backport-changelog/6.8/8032.md b/backport-changelog/6.8/8032.md
new file mode 100644
index 0000000000000..4d2ad5fae5a38
--- /dev/null
+++ b/backport-changelog/6.8/8032.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/8032
+
+* https://github.com/WordPress/gutenberg/pull/68003
diff --git a/bin/api-docs/gen-components-docs/markdown/index.mjs b/bin/api-docs/gen-components-docs/markdown/index.mjs
index 126fdf0057b6e..5978e7e80fe26 100644
--- a/bin/api-docs/gen-components-docs/markdown/index.mjs
+++ b/bin/api-docs/gen-components-docs/markdown/index.mjs
@@ -8,6 +8,19 @@ import json2md from 'json2md';
*/
import { generateMarkdownPropsJson } from './props.mjs';
+/**
+ * If the string is contentful, ensure that it ends with a single newline.
+ * Otherwise normalize to `undefined`.
+ *
+ * @param {string} [str]
+ */
+function normalizeTrailingNewline( str ) {
+ if ( ! str?.trim() ) {
+ return undefined;
+ }
+ return str.replace( /\n*$/, '\n' );
+}
+
export function generateMarkdownDocs( { typeDocs, subcomponentTypeDocs } ) {
const mainDocsJson = [
{ h1: typeDocs.displayName },
@@ -15,7 +28,7 @@ export function generateMarkdownDocs( { typeDocs, subcomponentTypeDocs } ) {
{
p: `
See the WordPress Storybook for more detailed, interactive documentation.
`,
},
- typeDocs.description,
+ normalizeTrailingNewline( typeDocs.description ),
...generateMarkdownPropsJson( typeDocs.props ),
];
@@ -26,7 +39,7 @@ export function generateMarkdownDocs( { typeDocs, subcomponentTypeDocs } ) {
{
h3: subcomponentTypeDoc.displayName,
},
- subcomponentTypeDoc.description,
+ normalizeTrailingNewline( subcomponentTypeDoc.description ),
...generateMarkdownPropsJson( subcomponentTypeDoc.props, {
headingLevel: 4,
} ),
diff --git a/lib/block-supports/block-style-variations.php b/lib/block-supports/block-style-variations.php
index 3942fed24b98a..b1f3243bfd04d 100644
--- a/lib/block-supports/block-style-variations.php
+++ b/lib/block-supports/block-style-variations.php
@@ -211,10 +211,10 @@ function gutenberg_render_block_style_variation_support_styles( $parsed_block )
* block attributes in the `render_block_data` filter gets applied to the
* block's markup.
*
- * @see gutenberg_render_block_style_variation_support_styles
- *
* @since 6.6.0
*
+ * @see gutenberg_render_block_style_variation_support_styles
+ *
* @param string $block_content Rendered block content.
* @param array $block Block object.
*
diff --git a/lib/compat/wordpress-6.8/site-editor.php b/lib/compat/wordpress-6.8/site-editor.php
index 53d04c2e543f4..9b2575676047d 100644
--- a/lib/compat/wordpress-6.8/site-editor.php
+++ b/lib/compat/wordpress-6.8/site-editor.php
@@ -145,4 +145,4 @@ function gutenberg_add_styles_submenu_item() {
}
}
}
-add_action( 'admin_init', 'gutenberg_add_styles_submenu_item' );
+add_action( 'admin_menu', 'gutenberg_add_styles_submenu_item' );
diff --git a/packages/block-editor/src/components/block-tools/style.scss b/packages/block-editor/src/components/block-tools/style.scss
index 80fe4c420d1e1..35d075c1a99b7 100644
--- a/packages/block-editor/src/components/block-tools/style.scss
+++ b/packages/block-editor/src/components/block-tools/style.scss
@@ -78,6 +78,7 @@
color: $white;
padding: 0;
+ // TODO: Consider passing size="small" to the Inserter toggle instead.
// Special dimensions for this button.
min-width: $button-size-small;
height: $button-size-small;
diff --git a/packages/block-editor/src/components/default-block-appender/content.scss b/packages/block-editor/src/components/default-block-appender/content.scss
index 71ede90d25c0c..361268fb2b37d 100644
--- a/packages/block-editor/src/components/default-block-appender/content.scss
+++ b/packages/block-editor/src/components/default-block-appender/content.scss
@@ -42,6 +42,7 @@
color: $white;
padding: 0;
+ // TODO: Consider passing size="small" to the Inserter toggle instead.
// Special dimensions for this button.
min-width: $button-size-small;
height: $button-size-small;
diff --git a/packages/block-editor/src/components/inserter/block-patterns-explorer/index.js b/packages/block-editor/src/components/inserter/block-patterns-explorer/index.js
index 93a03ee200497..2bc41a7176954 100644
--- a/packages/block-editor/src/components/inserter/block-patterns-explorer/index.js
+++ b/packages/block-editor/src/components/inserter/block-patterns-explorer/index.js
@@ -14,9 +14,8 @@ import { usePatternCategories } from '../block-patterns-tab/use-pattern-categori
function PatternsExplorer( { initialCategory, rootClientId } ) {
const [ searchValue, setSearchValue ] = useState( '' );
- const [ selectedCategory, setSelectedCategory ] = useState(
- initialCategory?.name
- );
+ const [ selectedCategory, setSelectedCategory ] =
+ useState( initialCategory );
const patternCategories = usePatternCategories( rootClientId );
diff --git a/packages/block-editor/src/components/inserter/block-patterns-tab/index.js b/packages/block-editor/src/components/inserter/block-patterns-tab/index.js
index 45db4732aa9c6..f250ed6f12eba 100644
--- a/packages/block-editor/src/components/inserter/block-patterns-tab/index.js
+++ b/packages/block-editor/src/components/inserter/block-patterns-tab/index.js
@@ -70,7 +70,9 @@ function BlockPatternsTab( {
) }
{ showPatternsExplorer && (
setShowPatternsExplorer( false ) }
rootClientId={ rootClientId }
diff --git a/packages/block-editor/src/components/inserter/block-patterns-tab/pattern-category-previews.js b/packages/block-editor/src/components/inserter/block-patterns-tab/pattern-category-previews.js
index c6ce9ba97d250..f9af2b6f8c42d 100644
--- a/packages/block-editor/src/components/inserter/block-patterns-tab/pattern-category-previews.js
+++ b/packages/block-editor/src/components/inserter/block-patterns-tab/pattern-category-previews.js
@@ -69,19 +69,19 @@ export function PatternCategoryPreviews( {
return false;
}
- if ( category.name === allPatternsCategory.name ) {
+ if ( category.name === allPatternsCategory?.name ) {
return true;
}
if (
- category.name === myPatternsCategory.name &&
+ category.name === myPatternsCategory?.name &&
pattern.type === INSERTER_PATTERN_TYPES.user
) {
return true;
}
if (
- category.name === starterPatternsCategory.name &&
+ category.name === starterPatternsCategory?.name &&
pattern.blockTypes?.includes( 'core/post-content' )
) {
return true;
@@ -149,7 +149,7 @@ export function PatternCategoryPreviews( {
level={ 4 }
as="div"
>
- { category.label }
+ { category?.label }
sourceFilter !== 'all' && sourceFilter !== 'user';
const getShouldHideSourcesFilter = ( category ) => {
- return category.name === myPatternsCategory.name;
+ return category?.name === myPatternsCategory.name;
};
const PATTERN_SOURCE_MENU_OPTIONS = [
@@ -60,7 +60,7 @@ export function PatternsFilter( {
// the user may be confused when switching to another category if the haven't explicity set
// this filter themselves.
const currentPatternSourceFilter =
- category.name === myPatternsCategory.name
+ category?.name === myPatternsCategory.name
? INSERTER_PATTERN_TYPES.user
: patternSourceFilter;
diff --git a/packages/block-editor/src/components/inserter/category-tabs/index.js b/packages/block-editor/src/components/inserter/category-tabs/index.js
index 2f70ea58f2532..7f5f9ba3f65ad 100644
--- a/packages/block-editor/src/components/inserter/category-tabs/index.js
+++ b/packages/block-editor/src/components/inserter/category-tabs/index.js
@@ -65,7 +65,9 @@ function CategoryTabs( {
key={ category.name }
tabId={ category.name }
aria-current={
- category === selectedCategory ? 'true' : undefined
+ category.name === selectedCategory?.name
+ ? 'true'
+ : undefined
}
>
{ category.label }
diff --git a/packages/block-editor/src/components/inserter/index.js b/packages/block-editor/src/components/inserter/index.js
index 47304a7d77174..59d78a6f0edc6 100644
--- a/packages/block-editor/src/components/inserter/index.js
+++ b/packages/block-editor/src/components/inserter/index.js
@@ -60,6 +60,7 @@ const defaultRenderToggle = ( {
return (
- { __( 'Upload' ) }
+ { _x( 'Upload', 'verb' ) }
{ uploadMediaLibraryButton }
{ renderUrlSelectionUI() }
@@ -512,7 +512,7 @@ export function MediaPlaceholder( {
'block-editor-media-placeholder__upload-button'
) }
>
- { __( 'Upload' ) }
+ { _x( 'Upload', 'verb' ) }
) }
onChange={ onUpload }
diff --git a/packages/block-editor/src/components/media-replace-flow/index.js b/packages/block-editor/src/components/media-replace-flow/index.js
index 0da15033a86bf..dd6000a5f6845 100644
--- a/packages/block-editor/src/components/media-replace-flow/index.js
+++ b/packages/block-editor/src/components/media-replace-flow/index.js
@@ -7,7 +7,7 @@ import clsx from 'clsx';
* WordPress dependencies
*/
import { useRef } from '@wordpress/element';
-import { __ } from '@wordpress/i18n';
+import { __, _x } from '@wordpress/i18n';
import { speak } from '@wordpress/a11y';
import {
FormFileUpload,
@@ -188,7 +188,7 @@ const MediaReplaceFlow = ( {
openFileDialog();
} }
>
- { __( 'Upload' ) }
+ { _x( 'Upload', 'verb' ) }
);
} }
diff --git a/packages/block-editor/src/hooks/use-zoom-out.js b/packages/block-editor/src/hooks/use-zoom-out.js
index adcea8b605aeb..5c37822eba4b3 100644
--- a/packages/block-editor/src/hooks/use-zoom-out.js
+++ b/packages/block-editor/src/hooks/use-zoom-out.js
@@ -2,13 +2,14 @@
* WordPress dependencies
*/
import { useSelect, useDispatch } from '@wordpress/data';
-import { useEffect, useRef } from '@wordpress/element';
+import { useEffect, useRef, useContext } from '@wordpress/element';
/**
* Internal dependencies
*/
import { store as blockEditorStore } from '../store';
import { unlock } from '../lock-unlock';
+import BlockContext from '../components/block-context';
/**
* A hook used to set the editor mode to zoomed out mode, invoking the hook sets the mode.
@@ -19,6 +20,7 @@ import { unlock } from '../lock-unlock';
* @param {boolean} enabled If we should enter into zoomOut mode or not
*/
export function useZoomOut( enabled = true ) {
+ const { postId } = useContext( BlockContext );
const { setZoomLevel, resetZoomLevel } = unlock(
useDispatch( blockEditorStore )
);
@@ -37,6 +39,7 @@ export function useZoomOut( enabled = true ) {
const controlZoomLevelRef = useRef( false );
const isEnabledRef = useRef( enabled );
+ const postIdRef = useRef( postId );
/**
* This hook tracks if the zoom state was changed manually by the user via clicking
@@ -55,6 +58,11 @@ export function useZoomOut( enabled = true ) {
useEffect( () => {
isEnabledRef.current = enabled;
+ // If the user created a new post/page, we should take control of the zoom level.
+ if ( postIdRef.current !== postId ) {
+ controlZoomLevelRef.current = true;
+ }
+
if ( enabled !== isZoomOut() ) {
controlZoomLevelRef.current = true;
@@ -71,5 +79,5 @@ export function useZoomOut( enabled = true ) {
resetZoomLevel();
}
};
- }, [ enabled, isZoomOut, resetZoomLevel, setZoomLevel ] );
+ }, [ enabled, isZoomOut, postId, resetZoomLevel, setZoomLevel ] );
}
diff --git a/packages/block-library/src/cover/test/edit.js b/packages/block-library/src/cover/test/edit.js
index f5d6a5301ef6d..72f51150c2744 100644
--- a/packages/block-library/src/cover/test/edit.js
+++ b/packages/block-library/src/cover/test/edit.js
@@ -200,9 +200,7 @@ describe( 'Cover block', () => {
await selectBlock( 'Block: Cover' );
expect(
- screen.getByRole( 'heading', {
- name: 'Settings',
- } )
+ await screen.findByRole( 'heading', { name: 'Settings' } )
).toBeInTheDocument();
} );
} );
@@ -216,7 +214,7 @@ describe( 'Cover block', () => {
);
await selectBlock( 'Block: Cover' );
await userEvent.click(
- screen.getByLabelText( 'Fixed background' )
+ await screen.findByLabelText( 'Fixed background' )
);
expect( screen.getByLabelText( 'Block: Cover' ) ).toHaveClass(
'has-parallax'
@@ -232,7 +230,7 @@ describe( 'Cover block', () => {
);
await selectBlock( 'Block: Cover' );
await userEvent.click(
- screen.getByLabelText( 'Repeated background' )
+ await screen.findByLabelText( 'Repeated background' )
);
expect( screen.getByLabelText( 'Block: Cover' ) ).toHaveClass(
'is-repeated'
@@ -245,7 +243,7 @@ describe( 'Cover block', () => {
} );
await selectBlock( 'Block: Cover' );
- await userEvent.clear( screen.getByLabelText( 'Left' ) );
+ await userEvent.clear( await screen.findByLabelText( 'Left' ) );
await userEvent.type( screen.getByLabelText( 'Left' ), '100' );
expect(
@@ -262,7 +260,7 @@ describe( 'Cover block', () => {
await selectBlock( 'Block: Cover' );
await userEvent.type(
- screen.getByLabelText( 'Alternative text' ),
+ await screen.findByLabelText( 'Alternative text' ),
'Me'
);
expect( screen.getByAltText( 'Me' ) ).toBeInTheDocument();
diff --git a/packages/block-library/src/navigation-submenu/edit.js b/packages/block-library/src/navigation-submenu/edit.js
index dbdbd23b13b2f..315169f2736ad 100644
--- a/packages/block-library/src/navigation-submenu/edit.js
+++ b/packages/block-library/src/navigation-submenu/edit.js
@@ -44,6 +44,7 @@ import {
getColors,
getNavigationChildBlockProps,
} from '../navigation/edit/utils';
+import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
const ALLOWED_BLOCKS = [
'core/navigation-link',
@@ -153,6 +154,7 @@ export default function NavigationSubmenuEdit( {
const isDraggingWithin = useIsDraggingWithin( listItemRef );
const itemLabelPlaceholder = __( 'Add text…' );
const ref = useRef();
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
const {
parentCount,
@@ -394,6 +396,7 @@ export default function NavigationSubmenuEdit( {
rel: '',
} );
} }
+ dropdownMenuProps={ dropdownMenuProps }
>
+ unlock( select( blockEditorStore ) ).isZoomOut()
+ );
+
+ const { align, content, direction, dropCap } = attributes;
const blockProps = useBlockProps( {
ref: useOnEnter( { clientId, content } ),
className: clsx( {
@@ -119,6 +125,12 @@ function ParagraphBlock( {
style: { direction },
} );
const blockEditingMode = useBlockEditingMode();
+ let { placeholder } = attributes;
+ if ( isZoomOut ) {
+ placeholder = '';
+ } else if ( ! placeholder ) {
+ placeholder = __( 'Type / to choose a block' );
+ }
return (
<>
@@ -170,8 +182,10 @@ function ParagraphBlock( {
: __( 'Block: Paragraph' )
}
data-empty={ RichText.isEmpty( content ) }
- placeholder={ placeholder || __( 'Type / to choose a block' ) }
- data-custom-placeholder={ placeholder ? true : undefined }
+ placeholder={ placeholder }
+ data-custom-placeholder={
+ placeholder && ! isZoomOut ? true : undefined
+ }
__unstableEmbedURLOnPaste
__unstableAllowPrefixTransformations
/>
diff --git a/packages/block-library/src/video/tracks-editor.js b/packages/block-library/src/video/tracks-editor.js
index 33036a14f1fec..a0152885f5567 100644
--- a/packages/block-library/src/video/tracks-editor.js
+++ b/packages/block-library/src/video/tracks-editor.js
@@ -323,7 +323,7 @@ export default function TracksEditor( { tracks = [], onChange } ) {
openFileDialog();
} }
>
- { __( 'Upload' ) }
+ { _x( 'Upload', 'verb' ) }
);
} }
diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md
index db8b0f749217f..7255888604ed1 100644
--- a/packages/components/CHANGELOG.md
+++ b/packages/components/CHANGELOG.md
@@ -5,6 +5,7 @@
### Enhancements
- `BoxControl`: Add presets support ([#67688](https://github.com/WordPress/gutenberg/pull/67688)).
+- `Navigation`: Upsize back buttons ([#68157](https://github.com/WordPress/gutenberg/pull/68157)).
### Deprecations
@@ -13,6 +14,7 @@
- `InputControl`: Deprecate 36px default size ([#66897](https://github.com/WordPress/gutenberg/pull/66897)).
- `RadioGroup`: Log deprecation warning ([#68067](https://github.com/WordPress/gutenberg/pull/68067)).
- Soft deprecate `ButtonGroup` component. Use `ToggleGroupControl` instead ([#65429](https://github.com/WordPress/gutenberg/pull/65429)).
+- `Navigation`: Log deprecation warning for removal in WP 7.1. Use `Navigator` instead ([#68158](https://github.com/WordPress/gutenberg/pull/68158)).
### Bug Fixes
@@ -26,6 +28,8 @@
### Internal
- `SlotFill`: rewrite the non-portal version to use `observableMap` ([#67400](https://github.com/WordPress/gutenberg/pull/67400)).
+- `DatePicker`: Prepare day buttons for 40px default size ([#68156](https://github.com/WordPress/gutenberg/pull/68156)).
+- `SlotFill`: register slots in a layout effect ([#68176](https://github.com/WordPress/gutenberg/pull/68176)).
## 29.0.0 (2024-12-11)
diff --git a/packages/components/src/alignment-matrix-control/README.md b/packages/components/src/alignment-matrix-control/README.md
index af97e3ae0607c..267b368454c49 100644
--- a/packages/components/src/alignment-matrix-control/README.md
+++ b/packages/components/src/alignment-matrix-control/README.md
@@ -21,6 +21,7 @@ const Example = () => {
);
};
```
+
## Props
### `defaultValue`
diff --git a/packages/components/src/angle-picker-control/README.md b/packages/components/src/angle-picker-control/README.md
index d9389c6564338..8b98ba813adde 100644
--- a/packages/components/src/angle-picker-control/README.md
+++ b/packages/components/src/angle-picker-control/README.md
@@ -23,6 +23,7 @@ function Example() {
);
}
```
+
## Props
### `as`
diff --git a/packages/components/src/base-control/README.md b/packages/components/src/base-control/README.md
index 839464b41260b..9c8920fbc0689 100644
--- a/packages/components/src/base-control/README.md
+++ b/packages/components/src/base-control/README.md
@@ -25,6 +25,7 @@ const MyCustomTextareaControl = ({ children, ...baseProps }) => (
);
);
```
+
## Props
### `__nextHasNoMarginBottom`
@@ -113,6 +114,7 @@ const MyBaseControl = () => (
);
```
+
#### Props
##### `as`
diff --git a/packages/components/src/box-control/README.md b/packages/components/src/box-control/README.md
index da08cafceee42..6192cfa47367b 100644
--- a/packages/components/src/box-control/README.md
+++ b/packages/components/src/box-control/README.md
@@ -28,6 +28,7 @@ function Example() {
);
};
```
+
## Props
### `__next40pxDefaultSize`
diff --git a/packages/components/src/button/README.md b/packages/components/src/button/README.md
index 99a6d0f9c24cf..d63dee9007c2f 100644
--- a/packages/components/src/button/README.md
+++ b/packages/components/src/button/README.md
@@ -17,6 +17,7 @@ const Mybutton = () => (
);
```
+
## Props
### `__next40pxDefaultSize`
diff --git a/packages/components/src/button/test/index.tsx b/packages/components/src/button/test/index.tsx
index 8161e68c4e21b..664c755ac4404 100644
--- a/packages/components/src/button/test/index.tsx
+++ b/packages/components/src/button/test/index.tsx
@@ -6,19 +6,26 @@ import { render, screen } from '@testing-library/react';
/**
* WordPress dependencies
*/
-import { createRef } from '@wordpress/element';
+import { createRef, forwardRef } from '@wordpress/element';
import { plusCircle } from '@wordpress/icons';
/**
* Internal dependencies
*/
-import Button from '..';
+import _Button from '..';
import Tooltip from '../../tooltip';
import cleanupTooltip from '../../tooltip/test/utils';
import { press } from '@ariakit/test';
jest.mock( '../../icon', () => () => );
+const Button = forwardRef(
+ (
+ props: React.ComponentProps< typeof _Button >,
+ ref: React.ForwardedRef< unknown >
+ ) => <_Button __next40pxDefaultSize { ...props } ref={ ref } />
+);
+
describe( 'Button', () => {
describe( 'basic rendering', () => {
it( 'should render a button element with only one class', () => {
diff --git a/packages/components/src/date-time/date/index.tsx b/packages/components/src/date-time/date/index.tsx
index ca093f9d70847..e7afcccf249dc 100644
--- a/packages/components/src/date-time/date/index.tsx
+++ b/packages/components/src/date-time/date/index.tsx
@@ -306,6 +306,7 @@ function Day( {
return (
(
);
```
+
## Props
### `__next40pxDefaultSize`
diff --git a/packages/components/src/gradient-picker/README.md b/packages/components/src/gradient-picker/README.md
index ec0210d03c0a4..652fcbf30ae13 100644
--- a/packages/components/src/gradient-picker/README.md
+++ b/packages/components/src/gradient-picker/README.md
@@ -43,6 +43,7 @@ const MyGradientPicker = () => {
);
};
```
+
## Props
### `__experimentalIsRenderedInSidebar`
diff --git a/packages/components/src/icon/README.md b/packages/components/src/icon/README.md
index 63d52c1fd20b1..29e621f80c1fd 100644
--- a/packages/components/src/icon/README.md
+++ b/packages/components/src/icon/README.md
@@ -11,6 +11,7 @@ import { wordpress } from '@wordpress/icons';
```
+
## Props
### `icon`
diff --git a/packages/components/src/navigation/back-button/index.tsx b/packages/components/src/navigation/back-button/index.tsx
index 077e5a8dbdc6d..ce4a90d9ae7a5 100644
--- a/packages/components/src/navigation/back-button/index.tsx
+++ b/packages/components/src/navigation/back-button/index.tsx
@@ -49,6 +49,7 @@ function UnforwardedNavigationBackButton(
const icon = isRTL() ? chevronRight : chevronLeft;
return (
{
const menuItems = screen.getAllByRole( 'listitem' );
+ expect( console ).toHaveWarnedWith(
+ 'wp.components.Navigation (and all subcomponents) is deprecated since version 6.8 and will be removed in version 7.1. Please use wp.components.Navigator instead.'
+ );
+
expect( menuItems ).toHaveLength( 4 );
expect( menuItems[ 0 ] ).toHaveTextContent( 'Item 1' );
expect( menuItems[ 1 ] ).toHaveTextContent( 'Item 2' );
diff --git a/packages/components/src/navigator/test/index.tsx b/packages/components/src/navigator/test/index.tsx
index cab6e9a4cdadf..07b118eaaef70 100644
--- a/packages/components/src/navigator/test/index.tsx
+++ b/packages/components/src/navigator/test/index.tsx
@@ -75,6 +75,7 @@ function CustomNavigatorButton( {
} ) {
return (
{
// Used to spy on the values passed to `navigator.goTo`.
onClick?.( { type: 'goTo', path } );
@@ -95,6 +96,7 @@ function CustomNavigatorGoToBackButton( {
const { goTo } = useNavigator();
return (