Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 64 additions & 53 deletions packages/block-library/src/post-date/edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
InspectorControls,
store as blockEditorStore,
useBlockProps,
useBlockEditingMode,
__experimentalDateFormatPicker as DateFormatPicker,
__experimentalPublishDateTimePicker as PublishDateTimePicker,
} from '@wordpress/block-editor';
Expand Down Expand Up @@ -99,6 +100,8 @@ export default function PostDateEdit( {
[ postTypeSlug ]
);

const blockEditingMode = useBlockEditingMode();

let postDate = (
<time dateTime={ dateI18n( 'c', datetime ) } ref={ setPopoverAnchor }>
{ format === 'human-diff'
Expand All @@ -120,61 +123,69 @@ export default function PostDateEdit( {

return (
<>
<BlockControls group="block">
<AlignmentControl
value={ textAlign }
onChange={ ( nextAlign ) => {
setAttributes( { textAlign: nextAlign } );
} }
/>
{ displayType !== 'modified' && ! isDescendentOfQueryLoop && (
<ToolbarGroup>
<Dropdown
popoverProps={ popoverProps }
renderContent={ ( { onClose } ) => (
<PublishDateTimePicker
title={
displayType === 'date'
? __( 'Publish Date' )
: __( 'Date' )
}
currentDate={ datetime }
onChange={ ( newDatetime ) =>
setAttributes( {
datetime: newDatetime,
} )
}
is12Hour={ is12HourFormat(
siteTimeFormat
{ ( blockEditingMode === 'default' ||
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optional readability change by extracting conditions:

const canShowBlockControls = blockEditingMode === 'default' || ! isDescendentOfQueryLoop;
const canShowDatePicker = displayType !== 'modified' && ! isDescendentOfQueryLoop;

! isDescendentOfQueryLoop ) && (
<BlockControls group="block">
<AlignmentControl
value={ textAlign }
onChange={ ( nextAlign ) => {
setAttributes( { textAlign: nextAlign } );
} }
/>

{ displayType !== 'modified' &&
! isDescendentOfQueryLoop && (
<ToolbarGroup>
<Dropdown
popoverProps={ popoverProps }
renderContent={ ( { onClose } ) => (
<PublishDateTimePicker
title={
displayType === 'date'
? __( 'Publish Date' )
: __( 'Date' )
}
currentDate={ datetime }
onChange={ ( newDatetime ) =>
setAttributes( {
datetime: newDatetime,
} )
}
is12Hour={ is12HourFormat(
siteTimeFormat
) }
onClose={ onClose }
dateOrder={
/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */
_x( 'dmy', 'date order' )
}
/>
) }
onClose={ onClose }
dateOrder={
/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */
_x( 'dmy', 'date order' )
}
renderToggle={ ( { isOpen, onToggle } ) => {
const openOnArrowDown = ( event ) => {
if (
! isOpen &&
event.keyCode === DOWN
) {
event.preventDefault();
onToggle();
}
};
return (
<ToolbarButton
aria-expanded={ isOpen }
icon={ edit }
title={ __( 'Change Date' ) }
onClick={ onToggle }
onKeyDown={ openOnArrowDown }
/>
);
} }
/>
) }
renderToggle={ ( { isOpen, onToggle } ) => {
const openOnArrowDown = ( event ) => {
if ( ! isOpen && event.keyCode === DOWN ) {
event.preventDefault();
onToggle();
}
};
return (
<ToolbarButton
aria-expanded={ isOpen }
icon={ edit }
title={ __( 'Change Date' ) }
onClick={ onToggle }
onKeyDown={ openOnArrowDown }
/>
);
} }
/>
</ToolbarGroup>
) }
</BlockControls>
</ToolbarGroup>
) }
</BlockControls>
) }

<InspectorControls>
<ToolsPanel
Expand Down
Loading