From e4d38f684271bdcb77712ef25cd1755761f3c493 Mon Sep 17 00:00:00 2001 From: Amit Raj <77401999+amitraj2203@users.noreply.github.com> Date: Wed, 19 Jun 2024 15:16:16 +0530 Subject: [PATCH 1/7] Update link to API section in block-editor README.md (#62671) Co-authored-by: amitraj2203 Co-authored-by: jorgefilipecosta --- packages/block-editor/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/block-editor/README.md b/packages/block-editor/README.md index 7c70473430b31..322f0873c8304 100644 --- a/packages/block-editor/README.md +++ b/packages/block-editor/README.md @@ -45,7 +45,7 @@ In this example, we're instantiating a block editor. A block editor is composed Inside `BlockEditorProvider`, you can nest any of the available `@wordpress/block-editor` UI components to build the UI of your editor. -In the example above we're rendering the `BlockList` to show and edit the block list. For instance we could add a custom sidebar and use the `BlockInspector` component to be able to edit the advanced settings for the currently selected block. (See the [API](#API) for the list of all the available components). +In the example above we're rendering the `BlockList` to show and edit the block list. For instance we could add a custom sidebar and use the `BlockInspector` component to be able to edit the advanced settings for the currently selected block. (See the [API](#api) for the list of all the available components). The `BlockTools` component is used to render the toolbar for a selected block. From fb8a06a74e4478f8f26e0f42f36b7130fa9ec60d Mon Sep 17 00:00:00 2001 From: Gerardo Pacheco Date: Wed, 19 Jun 2024 13:04:48 +0200 Subject: [PATCH 2/7] Mobile Release v1.120.1 (#62646) * [Mobile] - Image corrector - Check the path extension is a valid one (#62190) * Mobile - Image corrector - Check the path extension is a valid one * [Mobile] - Image corrector- Expand comment explaining the filtering for file: media paths * Integration Test helpers - Expand pasteIntoRichText to support passing files as a parameter * Mobile Editor Tests - Add new tests related to pasting HTML content with local image paths * Update snapshot * [Mobile] - Unsupported block - UI improvements (#62240) * Mobile - Unsupported block editor - Update editor style overrides * Mobile - Unsupported block - Update UI to show Tap to edit for unsupported blocks, simplifying the flow to open the Unsupported block editor * Fix unsupported block condition * Update snapshot * Fix condition for the help icon * Update Unsupported Block Editor condition and reverts the functionality to select the block first before opening the editor. * Release script: Update react-native-editor version to 1.120.0 * Release script: Update CHANGELOG for version 1.120.0 * Release script: Update podfile * [Mobile] - RichText - Fix `undefined` onDelete callback (#62486) * Native RichText - Fix undefined onDelete callback * Update changelog Co-authored-by: geriux Co-authored-by: twstokes * Release script: Update react-native-editor version to 1.120.1 * Release script: Update podfile --------- Co-authored-by: geriux Co-authored-by: twstokes --- package-lock.json | 6 +++--- packages/react-native-aztec/package.json | 2 +- packages/react-native-bridge/package.json | 2 +- packages/react-native-editor/CHANGELOG.md | 4 +++- packages/react-native-editor/ios/Podfile.lock | 8 ++++---- packages/react-native-editor/package.json | 2 +- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6573b0779c034..eebc4015bd196 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55139,7 +55139,7 @@ }, "packages/react-native-aztec": { "name": "@wordpress/react-native-aztec", - "version": "1.120.0", + "version": "1.120.1", "license": "GPL-2.0-or-later", "dependencies": { "@wordpress/element": "file:../element", @@ -55156,7 +55156,7 @@ }, "packages/react-native-bridge": { "name": "@wordpress/react-native-bridge", - "version": "1.120.0", + "version": "1.120.1", "license": "GPL-2.0-or-later", "dependencies": { "@wordpress/react-native-aztec": "file:../react-native-aztec" @@ -55171,7 +55171,7 @@ }, "packages/react-native-editor": { "name": "@wordpress/react-native-editor", - "version": "1.120.0", + "version": "1.120.1", "hasInstallScript": true, "license": "GPL-2.0-or-later", "dependencies": { diff --git a/packages/react-native-aztec/package.json b/packages/react-native-aztec/package.json index 0c870edf7e5ea..9681423ec4506 100644 --- a/packages/react-native-aztec/package.json +++ b/packages/react-native-aztec/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-native-aztec", - "version": "1.120.0", + "version": "1.120.1", "description": "Aztec view for react-native.", "private": true, "author": "The WordPress Contributors", diff --git a/packages/react-native-bridge/package.json b/packages/react-native-bridge/package.json index c66c65cb8866a..e016e11a4682b 100644 --- a/packages/react-native-bridge/package.json +++ b/packages/react-native-bridge/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-native-bridge", - "version": "1.120.0", + "version": "1.120.1", "description": "Native bridge library used to integrate the block editor into a native App.", "private": true, "author": "The WordPress Contributors", diff --git a/packages/react-native-editor/CHANGELOG.md b/packages/react-native-editor/CHANGELOG.md index 66c145cd46a87..02eb3154d01e0 100644 --- a/packages/react-native-editor/CHANGELOG.md +++ b/packages/react-native-editor/CHANGELOG.md @@ -12,9 +12,11 @@ For each user feature we should also add a importance categorization label to i ## Unreleased - [internal] Fix Inserter items list filtering [#62334] - [*] Prevent hiding the keyboard when creating new list items [#62446] -- [*] RichText - Fix undefined onDelete callback [#62486] - [*] Fix issue when pasting HTML content [#62588] +## 1.120.1 +- [*] RichText - Fix undefined onDelete callback [#62486] + ## 1.120.0 - [*] Prevent deleting content when backspacing in the first Paragraph block [#62069] - [internal] Adds new bridge functionality for updating content [#61796] diff --git a/packages/react-native-editor/ios/Podfile.lock b/packages/react-native-editor/ios/Podfile.lock index 9407c238841aa..7e9fba1fa2b89 100644 --- a/packages/react-native-editor/ios/Podfile.lock +++ b/packages/react-native-editor/ios/Podfile.lock @@ -13,7 +13,7 @@ PODS: - ReactCommon/turbomodule/core (= 0.73.3) - fmt (6.2.1) - glog (0.3.5) - - Gutenberg (1.120.0): + - Gutenberg (1.120.1): - React-Core (= 0.73.3) - React-CoreModules (= 0.73.3) - React-RCTImage (= 0.73.3) @@ -1109,7 +1109,7 @@ PODS: - React-Core - RNSVG (14.0.0): - React-Core - - RNTAztecView (1.120.0): + - RNTAztecView (1.120.1): - React-Core - WordPress-Aztec-iOS (= 1.19.11) - SDWebImage (5.11.1): @@ -1343,7 +1343,7 @@ SPEC CHECKSUMS: FBReactNativeSpec: 73b3972e2bd20b3235ff2014f06a3d3af675ed29 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - Gutenberg: 0d15c3a0b8aace231a954709a536580d7905c867 + Gutenberg: 1f3141594d15fc34e121ae5921676a49332e9009 hermes-engine: 5420539d016f368cd27e008f65f777abd6098c56 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 libwebp: 60305b2e989864154bd9be3d772730f08fc6a59c @@ -1402,7 +1402,7 @@ SPEC CHECKSUMS: RNReanimated: 6936b41d8afb97175e7c0ab40425b53103f71046 RNScreens: 2b73f5eb2ac5d94fbd61fa4be0bfebd345716825 RNSVG: 255767813dac22db1ec2062c8b7e7b856d4e5ae6 - RNTAztecView: 3a1df2dd827082d22a4dd06b6031e2fefd2885c6 + RNTAztecView: e7495baad7608c5e7e9e9a43ee537282dae7ccdc SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 diff --git a/packages/react-native-editor/package.json b/packages/react-native-editor/package.json index 6e6a52a0817e5..788cdedde9677 100644 --- a/packages/react-native-editor/package.json +++ b/packages/react-native-editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-native-editor", - "version": "1.120.0", + "version": "1.120.1", "description": "Mobile WordPress gutenberg editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", From 295ccb800ca9ab9cb339744d8c8a1b861ab960dd Mon Sep 17 00:00:00 2001 From: Dani Guardiola Date: Wed, 19 Jun 2024 13:44:40 +0200 Subject: [PATCH 3/7] Move dep to dev deps. (#62673) * Move dep to dev deps. * Fix merge mess. Co-authored-by: DaniGuardiola Co-authored-by: jsnajdr --- package-lock.json | 5 ++++- package.json | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index eebc4015bd196..4f97a42a8d4f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -218,6 +218,7 @@ "patch-package": "8.0.0", "postcss": "8.4.16", "postcss-loader": "6.2.1", + "postcss-local-keyframes": "^0.0.2", "prettier": "npm:wp-prettier@3.0.3", "progress": "2.0.3", "react": "18.3.1", @@ -42428,6 +42429,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/postcss-local-keyframes/-/postcss-local-keyframes-0.0.2.tgz", "integrity": "sha512-nRN01llvxnqLw1TZu4kBknHwpxPPK3DLLJClQ3eTGhS+jBNyoIAMx0hw+fdiDOy7TXjfnojamPwUm/UxBEZDTw==", + "dev": true, "engines": { "node": ">=10.0.0" }, @@ -88809,7 +88811,8 @@ "postcss-local-keyframes": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/postcss-local-keyframes/-/postcss-local-keyframes-0.0.2.tgz", - "integrity": "sha512-nRN01llvxnqLw1TZu4kBknHwpxPPK3DLLJClQ3eTGhS+jBNyoIAMx0hw+fdiDOy7TXjfnojamPwUm/UxBEZDTw==" + "integrity": "sha512-nRN01llvxnqLw1TZu4kBknHwpxPPK3DLLJClQ3eTGhS+jBNyoIAMx0hw+fdiDOy7TXjfnojamPwUm/UxBEZDTw==", + "dev": true }, "postcss-media-query-parser": { "version": "0.2.3", diff --git a/package.json b/package.json index 42f796f442a26..848ba6dc6b960 100644 --- a/package.json +++ b/package.json @@ -230,6 +230,7 @@ "patch-package": "8.0.0", "postcss": "8.4.16", "postcss-loader": "6.2.1", + "postcss-local-keyframes": "^0.0.2", "prettier": "npm:wp-prettier@3.0.3", "progress": "2.0.3", "react": "18.3.1", From cd69af92f04e124adeaa67aa715e184b32090837 Mon Sep 17 00:00:00 2001 From: Jorge Costa Date: Wed, 19 Jun 2024 14:41:22 +0200 Subject: [PATCH 4/7] Fix: Don't allow synced patterns to be inserted on shuffling. (#62422) Co-authored-by: jorgefilipecosta Co-authored-by: talldan Co-authored-by: richtabor Co-authored-by: ndiego --- packages/block-editor/src/components/block-toolbar/shuffle.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/block-editor/src/components/block-toolbar/shuffle.js b/packages/block-editor/src/components/block-toolbar/shuffle.js index 8f8bc0c58e65c..e7e40619f6a49 100644 --- a/packages/block-editor/src/components/block-toolbar/shuffle.js +++ b/packages/block-editor/src/components/block-toolbar/shuffle.js @@ -60,7 +60,9 @@ export default function Shuffle( { clientId, as = Container } ) { pattern.blocks.length === 1 && pattern.categories?.some( ( category ) => { return categories.includes( category ); - } ) + } ) && + // Check if the pattern is not a synced pattern. + ( pattern.syncStatus === 'unsynced' || ! pattern.id ) ); } ); }, [ categories, patterns ] ); From 2222abbf1bf2784808090f084270fc09039ebcb0 Mon Sep 17 00:00:00 2001 From: Matias Benedetto Date: Wed, 19 Jun 2024 15:29:34 +0200 Subject: [PATCH 5/7] Add lib-font credits and license in source code (#60973) * add lib-font credits and license in source code * undo js lint --------- Co-authored-by: matiasbenedetto Co-authored-by: t-hamano Co-authored-by: mikachan Date: Wed, 19 Jun 2024 19:28:04 +0530 Subject: [PATCH 6/7] fix: update block category to design and build documentation. (#61905) --- docs/reference-guides/core-blocks.md | 2 +- packages/block-library/src/table-of-contents/block.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference-guides/core-blocks.md b/docs/reference-guides/core-blocks.md index 93ab0a031800f..77e466db8e1f9 100644 --- a/docs/reference-guides/core-blocks.md +++ b/docs/reference-guides/core-blocks.md @@ -902,7 +902,7 @@ Summarize your post with a list of headings. Add HTML anchors to Heading blocks - **Name:** core/table-of-contents - **Experimental:** true -- **Category:** layout +- **Category:** design - **Supports:** color (background, gradients, link, text), interactivity (clientNavigation), spacing (margin, padding), typography (fontSize, lineHeight), ~~html~~ - **Attributes:** headings, onlyIncludeCurrentPage diff --git a/packages/block-library/src/table-of-contents/block.json b/packages/block-library/src/table-of-contents/block.json index 7857744d91c4e..0c9c4bb4a2868 100644 --- a/packages/block-library/src/table-of-contents/block.json +++ b/packages/block-library/src/table-of-contents/block.json @@ -4,7 +4,7 @@ "__experimental": true, "name": "core/table-of-contents", "title": "Table of Contents", - "category": "layout", + "category": "design", "description": "Summarize your post with a list of headings. Add HTML anchors to Heading blocks to link them here.", "keywords": [ "document outline", "summary" ], "textdomain": "default", From 17ecaa6d416c46583d119cfbc596916cacc267ec Mon Sep 17 00:00:00 2001 From: Jorge Costa Date: Wed, 19 Jun 2024 17:40:48 +0200 Subject: [PATCH 7/7] Fix: DataViews: Active page is not highlighted properly in list view. (#62378) Co-authored-by: jorgefilipecosta Co-authored-by: youknowriad Co-authored-by: oandregal Co-authored-by: ellatrix Co-authored-by: carolinan --- packages/dataviews/src/dataviews.tsx | 17 ++++++++- packages/dataviews/src/view-list.tsx | 2 +- .../src/components/page-pages/index.js | 38 +++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/packages/dataviews/src/dataviews.tsx b/packages/dataviews/src/dataviews.tsx index 875746ceb52c3..601ee23304633 100644 --- a/packages/dataviews/src/dataviews.tsx +++ b/packages/dataviews/src/dataviews.tsx @@ -38,6 +38,8 @@ interface DataViewsProps< Item extends AnyItem > { totalPages: number; }; supportedLayouts: string[]; + selection?: string[]; + setSelection?: ( selection: string[] ) => void; onSelectionChange?: ( items: Item[] ) => void; } @@ -72,9 +74,22 @@ export default function DataViews< Item extends AnyItem >( { isLoading = false, paginationInfo, supportedLayouts, + selection: selectionProperty, + setSelection: setSelectionProperty, onSelectionChange = defaultOnSelectionChange, }: DataViewsProps< Item > ) { - const [ selection, setSelection ] = useState< string[] >( [] ); + const [ selectionState, setSelectionState ] = useState< string[] >( [] ); + let selection, setSelection; + if ( + selectionProperty !== undefined && + setSelectionProperty !== undefined + ) { + selection = selectionProperty; + setSelection = setSelectionProperty; + } else { + selection = selectionState; + setSelection = setSelectionState; + } const [ openedFilter, setOpenedFilter ] = useState< string | null >( null ); useEffect( () => { diff --git a/packages/dataviews/src/view-list.tsx b/packages/dataviews/src/view-list.tsx index 81dc9127c922a..51df552564d74 100644 --- a/packages/dataviews/src/view-list.tsx +++ b/packages/dataviews/src/view-list.tsx @@ -318,7 +318,7 @@ export default function ViewList< Item extends AnyItem >( } = props; const baseId = useInstanceId( ViewList, 'view-list' ); const selectedItem = data?.findLast( ( item ) => - selection.includes( item.id ) + selection.includes( getItemId( item ) ) ); const mediaField = fields.find( diff --git a/packages/edit-site/src/components/page-pages/index.js b/packages/edit-site/src/components/page-pages/index.js index 55edb056dc052..c1eb6ddbdc00b 100644 --- a/packages/edit-site/src/components/page-pages/index.js +++ b/packages/edit-site/src/components/page-pages/index.js @@ -201,11 +201,44 @@ function FeaturedImage( { item, viewType } ) { ); } +function usePostIdLinkInSelection( + selection, + setSelection, + isLoadingItems, + items +) { + const { + params: { postId }, + } = useLocation(); + const [ postIdToSelect, setPostIdToSelect ] = useState( postId ); + useEffect( () => { + if ( postId ) { + setPostIdToSelect( postId ); + } + }, [ postId ] ); + + useEffect( () => { + if ( ! postIdToSelect ) { + return; + } + // Only try to select an item if the loading is complete and we have items. + if ( ! isLoadingItems && items && items.length ) { + // If the item is not in the current selection, select it. + if ( selection.length !== 1 || selection[ 0 ] !== postIdToSelect ) { + setSelection( [ postIdToSelect ] ); + } + setPostIdToSelect( undefined ); + } + }, [ postIdToSelect, selection, setSelection, isLoadingItems, items ] ); +} + export default function PagePages() { const postType = 'page'; const [ view, setView ] = useView( postType ); const history = useHistory(); + const [ selection, setSelection ] = useState( [] ); + const onSelectionChange = useCallback( ( items ) => { const { params } = history.getLocationWithParams(); @@ -266,6 +299,8 @@ export default function PagePages() { totalPages, } = useEntityRecords( 'postType', postType, queryArgs ); + usePostIdLinkInSelection( selection, setSelection, isLoadingPages, pages ); + const { records: authors, isResolving: isLoadingAuthors } = useEntityRecords( 'root', 'user', { per_page: -1 } ); @@ -531,7 +566,10 @@ export default function PagePages() { isLoading={ isLoadingPages || isLoadingAuthors } view={ view } onChangeView={ onChangeView } + selection={ selection } + setSelection={ setSelection } onSelectionChange={ onSelectionChange } + getItemId={ ( item ) => item.id.toString() } /> );