From 6eed986a08858f27f1c95920ca051548dc2fff24 Mon Sep 17 00:00:00 2001 From: Josh Oakes Date: Fri, 1 Mar 2024 08:50:15 -0600 Subject: [PATCH] Only allow editing of nav-links --- .../navigation/components/menu-editor/edit.js | 23 ++++++++++++++++--- .../components/menu-editor/index.js | 5 ++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/blocks/navigation/components/menu-editor/edit.js b/src/blocks/navigation/components/menu-editor/edit.js index 5096743b4..4773a69e2 100644 --- a/src/blocks/navigation/components/menu-editor/edit.js +++ b/src/blocks/navigation/components/menu-editor/edit.js @@ -1,8 +1,10 @@ import { useState } from '@wordpress/element'; import { TextControl, Button } from '@wordpress/components'; import { useEntityBlockEditor } from '@wordpress/core-data'; +import { useSelect, useDispatch } from '@wordpress/data'; import { get } from 'lodash'; import { createBlock } from '@wordpress/blocks'; +import { serialize } from '@wordpress/blocks'; function NavigationItem({ thisBlock, allBlocks, index, updateLocalBlocks, maxIndex }) { const [isEditing, setIsEditing] = useState(false); @@ -66,8 +68,12 @@ function NavigationItem({ thisBlock, allBlocks, index, updateLocalBlocks, maxInd <>

Block: {thisBlock.name}
- Label: {thisBlock.attributes.label}
- + {thisBlock.name === 'kadence/navigation-link' && ( + <> + Label: {thisBlock.attributes.label}
+ + + )}

{isEditing && ( <> @@ -131,6 +137,7 @@ const renderBlocks = (allBlocks, innerBlocks, updateLocalBlocks) => { }; export default function MenuEdit({ selectedPostId }) { + const { saveEntityRecord } = useDispatch('core'); const [blocks, , onChange] = useEntityBlockEditor('postType', 'kadence_navigation', { id: selectedPostId }); const initialBlocks = get(blocks, [0, 'innerBlocks'], []); @@ -145,7 +152,7 @@ export default function MenuEdit({ selectedPostId }) { updateLocalBlocks([...initialBlocks]); // Reset to initial state }; - const saveChanges = () => { + const saveChanges = async () => { console.log('Saving changes'); onChange( [ @@ -156,6 +163,16 @@ export default function MenuEdit({ selectedPostId }) { ], blocks[0].clientId ); + try { + const newBlock = createBlock('kadence/navigation', {}, innerBlocks); + await saveEntityRecord('postType', 'kadence_navigation', { + id: selectedPostId, + content: serialize(newBlock), + }); + console.log('Post saved successfully'); + } catch (error) { + console.error('Error saving post:', error); + } }; return ( diff --git a/src/blocks/navigation/components/menu-editor/index.js b/src/blocks/navigation/components/menu-editor/index.js index 12821ffbc..1f8571fa0 100644 --- a/src/blocks/navigation/components/menu-editor/index.js +++ b/src/blocks/navigation/components/menu-editor/index.js @@ -5,11 +5,16 @@ import { __ } from '@wordpress/i18n'; import { Flex, FlexBlock, FlexItem } from '@wordpress/components'; import { useState } from '@wordpress/element'; import { useSelect } from '@wordpress/data'; +import { EntityProvider } from '@wordpress/core-data'; + import MenuEdit from './edit'; // Register the blocks for use outside the block editor import '../../../navigation/index'; import '../../../navigation-link/index'; +import '../../../rowlayout/index'; +import '../../../column/index'; +import '../../../advancedheading/block'; export default function MenuEditor() { const [selectedPostId, setSelectedPostId] = useState(0);