Skip to content

Commit

Permalink
Reorganize convert to links modal
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Lende committed Feb 15, 2023
1 parent a43447f commit 131350d
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 42 deletions.
65 changes: 25 additions & 40 deletions packages/block-library/src/page-list/convert-to-links-modal.js
Original file line number Diff line number Diff line change
@@ -1,53 +1,38 @@
/**
* WordPress dependencies
*/
import { BlockControls } from '@wordpress/block-editor';
import { ToolbarButton, Button, Modal } from '@wordpress/components';
import { Button, Modal } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
import { useState } from '@wordpress/element';

export const convertDescription = __(
'This menu is automatically kept in sync with pages on your site. You can manage the menu yourself by clicking "Edit" below.'
);

export function ConvertToLinksModal( { onClick, disabled } ) {
const [ isOpen, setOpen ] = useState( false );
const openModal = () => setOpen( true );
const closeModal = () => setOpen( false );

export function ConvertToLinksModal( { onClick, onClose, disabled } ) {
return (
<>
<BlockControls group="other">
<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>
{ __( 'Edit' ) }
</ToolbarButton>
</BlockControls>
{ isOpen && (
<Modal
onRequestClose={ closeModal }
title={ __( 'Edit this menu' ) }
className={ 'wp-block-page-list-modal' }
aria={ {
describedby: 'wp-block-page-list-modal__description',
} }
<Modal
onRequestClose={ onClose }
title={ __( 'Edit this menu' ) }
className={ 'wp-block-page-list-modal' }
aria={ {
describedby: 'wp-block-page-list-modal__description',
} }
>
<p id={ 'wp-block-page-list-modal__description' }>
{ convertDescription }
</p>
<div className="wp-block-page-list-modal-buttons">
<Button variant="tertiary" onClick={ onClose }>
{ __( 'Cancel' ) }
</Button>
<Button
variant="primary"
disabled={ disabled }
onClick={ onClick }
>
<p id={ 'wp-block-page-list-modal__description' }>
{ convertDescription }
</p>
<div className="wp-block-page-list-modal-buttons">
<Button variant="tertiary" onClick={ closeModal }>
{ __( 'Cancel' ) }
</Button>
<Button
variant="primary"
disabled={ disabled }
onClick={ onClick }
>
{ __( 'Edit' ) }
</Button>
</div>
</Modal>
) }
</>
{ __( 'Edit' ) }
</Button>
</div>
</Modal>
);
}
29 changes: 27 additions & 2 deletions packages/block-library/src/page-list/edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import classnames from 'classnames';
import { createBlock } from '@wordpress/blocks';
import {
InspectorControls,
BlockControls,
useBlockProps,
useInnerBlocksProps,
getColorClassName,
Expand All @@ -17,13 +18,14 @@ import {
} from '@wordpress/block-editor';
import {
PanelBody,
ToolbarButton,
Spinner,
Notice,
ComboboxControl,
Button,
} from '@wordpress/components';
import { __, sprintf } from '@wordpress/i18n';
import { useMemo, useEffect } from '@wordpress/element';
import { useMemo, useState, useEffect } from '@wordpress/element';
import { useEntityRecords } from '@wordpress/core-data';
import { useSelect } from '@wordpress/data';

Expand Down Expand Up @@ -109,6 +111,29 @@ function BlockContent( {
}
}

function ConvertToLinks( { onClick, disabled } ) {
const [ isOpen, setOpen ] = useState( false );
const openModal = () => setOpen( true );
const closeModal = () => setOpen( false );

return (
<>
<BlockControls group="other">
<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>
{ __( 'Edit' ) }
</ToolbarButton>
</BlockControls>
{ isOpen && (
<ConvertToLinksModal
onClick={ onClick }
onClose={ closeModal }
disabled={ disabled }
/>
) }
</>
);
}

export default function PageListEdit( {
context,
clientId,
Expand Down Expand Up @@ -298,7 +323,7 @@ export default function PageListEdit( {
) }
</InspectorControls>
{ allowConvertToLinks && (
<ConvertToLinksModal
<ConvertToLinks
disabled={ ! hasResolvedPages }
onClick={ convertToNavigationLinks }
/>
Expand Down

0 comments on commit 131350d

Please sign in to comment.