@wordpress/editor 14.0.4 → 14.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bindings/post-meta.js +4 -0
- package/build/bindings/post-meta.js.map +1 -1
- package/build/components/page-attributes/parent.js +2 -1
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/post-actions/actions.js +13 -35
- package/build/components/post-actions/actions.js.map +1 -1
- package/build/components/post-actions/export-pattern-action.js +2 -2
- package/build/components/post-actions/export-pattern-action.js.map +1 -1
- package/build/components/post-publish-button/index.js +4 -11
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-saved-state/index.js +11 -1
- package/build/components/post-saved-state/index.js.map +1 -1
- package/build/components/post-status/index.js +2 -1
- package/build/components/post-status/index.js.map +1 -1
- package/build/components/save-publish-panels/index.js +1 -2
- package/build/components/save-publish-panels/index.js.map +1 -1
- package/build/store/utils/is-template-revertable.js +6 -8
- package/build/store/utils/is-template-revertable.js.map +1 -1
- package/build-module/bindings/post-meta.js +4 -0
- package/build-module/bindings/post-meta.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +2 -1
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/post-actions/actions.js +13 -35
- package/build-module/components/post-actions/actions.js.map +1 -1
- package/build-module/components/post-actions/export-pattern-action.js +2 -2
- package/build-module/components/post-actions/export-pattern-action.js.map +1 -1
- package/build-module/components/post-publish-button/index.js +4 -11
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-saved-state/index.js +11 -1
- package/build-module/components/post-saved-state/index.js.map +1 -1
- package/build-module/components/post-status/index.js +1 -1
- package/build-module/components/post-status/index.js.map +1 -1
- package/build-module/components/save-publish-panels/index.js +1 -2
- package/build-module/components/save-publish-panels/index.js.map +1 -1
- package/build-module/store/utils/is-template-revertable.js +6 -8
- package/build-module/store/utils/is-template-revertable.js.map +1 -1
- package/build-style/style-rtl.css +1 -0
- package/build-style/style.css +1 -0
- package/package.json +6 -6
- package/src/bindings/post-meta.js +5 -0
- package/src/components/page-attributes/parent.js +6 -3
- package/src/components/post-actions/actions.js +28 -57
- package/src/components/post-actions/export-pattern-action.js +4 -2
- package/src/components/post-panel-row/style.scss +1 -0
- package/src/components/post-publish-button/index.js +4 -17
- package/src/components/post-saved-state/index.js +11 -1
- package/src/components/post-status/index.js +1 -1
- package/src/components/save-publish-panels/index.js +1 -4
- package/src/store/utils/is-template-revertable.js +8 -8
|
@@ -18,6 +18,7 @@ import { store as preferencesStore } from '@wordpress/preferences';
|
|
|
18
18
|
/**
|
|
19
19
|
* Internal dependencies
|
|
20
20
|
*/
|
|
21
|
+
import { STATUS_OPTIONS } from '../../components/post-status';
|
|
21
22
|
import { store as editorStore } from '../../store';
|
|
22
23
|
|
|
23
24
|
/**
|
|
@@ -100,7 +101,16 @@ export default function PostSavedState({
|
|
|
100
101
|
if (!hasPublishAction && isPending) {
|
|
101
102
|
return null;
|
|
102
103
|
}
|
|
103
|
-
|
|
104
|
+
|
|
105
|
+
// We shouldn't render the button if the post has not one of the following statuses: pending, draft, auto-draft.
|
|
106
|
+
// The reason for this is that this button handles the `save as pending` and `save draft` actions.
|
|
107
|
+
// An exception for this is when the post has a custom status and there should be a way to save changes without
|
|
108
|
+
// having to publish. This should be handled better in the future when custom statuses have better support.
|
|
109
|
+
// @see https://github.com/WordPress/gutenberg/issues/3144.
|
|
110
|
+
const isIneligibleStatus = !['pending', 'draft', 'auto-draft'].includes(postStatus) && STATUS_OPTIONS.map(({
|
|
111
|
+
value
|
|
112
|
+
}) => value).includes(postStatus);
|
|
113
|
+
if (isPublished || isScheduled || isIneligibleStatus || postStatusHasChanged && ['pending', 'draft'].includes(postStatus)) {
|
|
104
114
|
return null;
|
|
105
115
|
}
|
|
106
116
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","__unstableGetAnimateClassName","getAnimateClassName","Button","usePrevious","useViewportMatch","useDispatch","useSelect","useEffect","useState","__","Icon","check","cloud","cloudUpload","displayShortcut","store","preferencesStore","editorStore","jsx","_jsx","jsxs","_jsxs","PostSavedState","forceIsDirty","forceSavedMessage","setForceSavedMessage","isLargeViewport","isAutosaving","isDirty","isNew","isPublished","isSaveable","isSaving","isScheduled","hasPublishAction","showIconLabels","postStatus","postStatusHasChanged","select","_getCurrentPost$_link","isEditedPostNew","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostDirty","isSavingPost","isEditedPostSaveable","getCurrentPost","isAutosavingPost","getEditedPostAttribute","getPostEdits","get","_links","status","isPending","savePost","wasSaving","timeoutId","setTimeout","clearTimeout","includes","label","shortLabel","isSaved","isSavedState","isDisabled","text","className","type","undefined","onClick","shortcut","primary","variant","size","icon","children"],"sources":["@wordpress/editor/src/components/post-saved-state/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tButton,\n} from '@wordpress/components';\nimport { usePrevious, useViewportMatch } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, cloud, cloudUpload } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Component showing whether the post is saved or not and providing save\n * buttons.\n *\n * @param {Object} props Component props.\n * @param {?boolean} props.forceIsDirty Whether to force the post to be marked\n * as dirty.\n * @return {import('react').ComponentType} The component.\n */\nexport default function PostSavedState( { forceIsDirty } ) {\n\tconst [ forceSavedMessage, setForceSavedMessage ] = useState( false );\n\tconst isLargeViewport = useViewportMatch( 'small' );\n\n\tconst {\n\t\tisAutosaving,\n\t\tisDirty,\n\t\tisNew,\n\t\tisPublished,\n\t\tisSaveable,\n\t\tisSaving,\n\t\tisScheduled,\n\t\thasPublishAction,\n\t\tshowIconLabels,\n\t\tpostStatus,\n\t\tpostStatusHasChanged,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisEditedPostNew,\n\t\t\t\tisCurrentPostPublished,\n\t\t\t\tisCurrentPostScheduled,\n\t\t\t\tisEditedPostDirty,\n\t\t\t\tisSavingPost,\n\t\t\t\tisEditedPostSaveable,\n\t\t\t\tgetCurrentPost,\n\t\t\t\tisAutosavingPost,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetPostEdits,\n\t\t\t} = select( editorStore );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\treturn {\n\t\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\t\tisDirty: forceIsDirty || isEditedPostDirty(),\n\t\t\t\tisNew: isEditedPostNew(),\n\t\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\t\tisSaving: isSavingPost(),\n\t\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t\t\thasPublishAction:\n\t\t\t\t\tgetCurrentPost()?._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\t\tpostStatus: getEditedPostAttribute( 'status' ),\n\t\t\t\tpostStatusHasChanged: !! getPostEdits()?.status,\n\t\t\t};\n\t\t},\n\t\t[ forceIsDirty ]\n\t);\n\tconst isPending = postStatus === 'pending';\n\tconst { savePost } = useDispatch( editorStore );\n\n\tconst wasSaving = usePrevious( isSaving );\n\n\tuseEffect( () => {\n\t\tlet timeoutId;\n\n\t\tif ( wasSaving && ! isSaving ) {\n\t\t\tsetForceSavedMessage( true );\n\t\t\ttimeoutId = setTimeout( () => {\n\t\t\t\tsetForceSavedMessage( false );\n\t\t\t}, 1000 );\n\t\t}\n\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [ isSaving ] );\n\n\t// Once the post has been submitted for review this button\n\t// is not needed for the contributor role.\n\tif ( ! hasPublishAction && isPending ) {\n\t\treturn null;\n\t}\n\n\tif (\n\t\tisPublished ||\n\t\tisScheduled ||\n\t\t! [ 'pending', 'draft', 'auto-draft' ].includes( postStatus ) ||\n\t\t( postStatusHasChanged &&\n\t\t\t[ 'pending', 'draft' ].includes( postStatus ) )\n\t) {\n\t\treturn null;\n\t}\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst label = isPending ? __( 'Save as pending' ) : __( 'Save draft' );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst shortLabel = __( 'Save' );\n\n\tconst isSaved = forceSavedMessage || ( ! isNew && ! isDirty );\n\tconst isSavedState = isSaving || isSaved;\n\tconst isDisabled = isSaving || isSaved || ! isSaveable;\n\tlet text;\n\n\tif ( isSaving ) {\n\t\ttext = isAutosaving ? __( 'Autosaving' ) : __( 'Saving' );\n\t} else if ( isSaved ) {\n\t\ttext = __( 'Saved' );\n\t} else if ( isLargeViewport ) {\n\t\ttext = label;\n\t} else if ( showIconLabels ) {\n\t\ttext = shortLabel;\n\t}\n\n\t// Use common Button instance for all saved states so that focus is not\n\t// lost.\n\treturn (\n\t\t<Button\n\t\t\tclassName={\n\t\t\t\tisSaveable || isSaving\n\t\t\t\t\t? clsx( {\n\t\t\t\t\t\t\t'editor-post-save-draft': ! isSavedState,\n\t\t\t\t\t\t\t'editor-post-saved-state': isSavedState,\n\t\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t\t\t'is-autosaving': isAutosaving,\n\t\t\t\t\t\t\t'is-saved': isSaved,\n\t\t\t\t\t\t\t[ getAnimateClassName( {\n\t\t\t\t\t\t\t\ttype: 'loading',\n\t\t\t\t\t\t\t} ) ]: isSaving,\n\t\t\t\t\t } )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonClick={ isDisabled ? undefined : () => savePost() }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ isDisabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\tvariant=\"tertiary\"\n\t\t\tsize=\"compact\"\n\t\t\ticon={ isLargeViewport ? undefined : cloudUpload }\n\t\t\tlabel={ text || label }\n\t\t\taria-disabled={ isDisabled }\n\t\t>\n\t\t\t{ isSavedState && <Icon icon={ isSaved ? check : cloud } /> }\n\t\t\t{ text }\n\t\t</Button>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","__unstableGetAnimateClassName","getAnimateClassName","Button","usePrevious","useViewportMatch","useDispatch","useSelect","useEffect","useState","__","Icon","check","cloud","cloudUpload","displayShortcut","store","preferencesStore","STATUS_OPTIONS","editorStore","jsx","_jsx","jsxs","_jsxs","PostSavedState","forceIsDirty","forceSavedMessage","setForceSavedMessage","isLargeViewport","isAutosaving","isDirty","isNew","isPublished","isSaveable","isSaving","isScheduled","hasPublishAction","showIconLabels","postStatus","postStatusHasChanged","select","_getCurrentPost$_link","isEditedPostNew","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostDirty","isSavingPost","isEditedPostSaveable","getCurrentPost","isAutosavingPost","getEditedPostAttribute","getPostEdits","get","_links","status","isPending","savePost","wasSaving","timeoutId","setTimeout","clearTimeout","isIneligibleStatus","includes","map","value","label","shortLabel","isSaved","isSavedState","isDisabled","text","className","type","undefined","onClick","shortcut","primary","variant","size","icon","children"],"sources":["@wordpress/editor/src/components/post-saved-state/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tButton,\n} from '@wordpress/components';\nimport { usePrevious, useViewportMatch } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, cloud, cloudUpload } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { STATUS_OPTIONS } from '../../components/post-status';\nimport { store as editorStore } from '../../store';\n\n/**\n * Component showing whether the post is saved or not and providing save\n * buttons.\n *\n * @param {Object} props Component props.\n * @param {?boolean} props.forceIsDirty Whether to force the post to be marked\n * as dirty.\n * @return {import('react').ComponentType} The component.\n */\nexport default function PostSavedState( { forceIsDirty } ) {\n\tconst [ forceSavedMessage, setForceSavedMessage ] = useState( false );\n\tconst isLargeViewport = useViewportMatch( 'small' );\n\n\tconst {\n\t\tisAutosaving,\n\t\tisDirty,\n\t\tisNew,\n\t\tisPublished,\n\t\tisSaveable,\n\t\tisSaving,\n\t\tisScheduled,\n\t\thasPublishAction,\n\t\tshowIconLabels,\n\t\tpostStatus,\n\t\tpostStatusHasChanged,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisEditedPostNew,\n\t\t\t\tisCurrentPostPublished,\n\t\t\t\tisCurrentPostScheduled,\n\t\t\t\tisEditedPostDirty,\n\t\t\t\tisSavingPost,\n\t\t\t\tisEditedPostSaveable,\n\t\t\t\tgetCurrentPost,\n\t\t\t\tisAutosavingPost,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetPostEdits,\n\t\t\t} = select( editorStore );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\treturn {\n\t\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\t\tisDirty: forceIsDirty || isEditedPostDirty(),\n\t\t\t\tisNew: isEditedPostNew(),\n\t\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\t\tisSaving: isSavingPost(),\n\t\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t\t\thasPublishAction:\n\t\t\t\t\tgetCurrentPost()?._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\t\tpostStatus: getEditedPostAttribute( 'status' ),\n\t\t\t\tpostStatusHasChanged: !! getPostEdits()?.status,\n\t\t\t};\n\t\t},\n\t\t[ forceIsDirty ]\n\t);\n\tconst isPending = postStatus === 'pending';\n\tconst { savePost } = useDispatch( editorStore );\n\n\tconst wasSaving = usePrevious( isSaving );\n\n\tuseEffect( () => {\n\t\tlet timeoutId;\n\n\t\tif ( wasSaving && ! isSaving ) {\n\t\t\tsetForceSavedMessage( true );\n\t\t\ttimeoutId = setTimeout( () => {\n\t\t\t\tsetForceSavedMessage( false );\n\t\t\t}, 1000 );\n\t\t}\n\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [ isSaving ] );\n\n\t// Once the post has been submitted for review this button\n\t// is not needed for the contributor role.\n\tif ( ! hasPublishAction && isPending ) {\n\t\treturn null;\n\t}\n\n\t// We shouldn't render the button if the post has not one of the following statuses: pending, draft, auto-draft.\n\t// The reason for this is that this button handles the `save as pending` and `save draft` actions.\n\t// An exception for this is when the post has a custom status and there should be a way to save changes without\n\t// having to publish. This should be handled better in the future when custom statuses have better support.\n\t// @see https://github.com/WordPress/gutenberg/issues/3144.\n\tconst isIneligibleStatus =\n\t\t! [ 'pending', 'draft', 'auto-draft' ].includes( postStatus ) &&\n\t\tSTATUS_OPTIONS.map( ( { value } ) => value ).includes( postStatus );\n\n\tif (\n\t\tisPublished ||\n\t\tisScheduled ||\n\t\tisIneligibleStatus ||\n\t\t( postStatusHasChanged &&\n\t\t\t[ 'pending', 'draft' ].includes( postStatus ) )\n\t) {\n\t\treturn null;\n\t}\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst label = isPending ? __( 'Save as pending' ) : __( 'Save draft' );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst shortLabel = __( 'Save' );\n\n\tconst isSaved = forceSavedMessage || ( ! isNew && ! isDirty );\n\tconst isSavedState = isSaving || isSaved;\n\tconst isDisabled = isSaving || isSaved || ! isSaveable;\n\tlet text;\n\n\tif ( isSaving ) {\n\t\ttext = isAutosaving ? __( 'Autosaving' ) : __( 'Saving' );\n\t} else if ( isSaved ) {\n\t\ttext = __( 'Saved' );\n\t} else if ( isLargeViewport ) {\n\t\ttext = label;\n\t} else if ( showIconLabels ) {\n\t\ttext = shortLabel;\n\t}\n\n\t// Use common Button instance for all saved states so that focus is not\n\t// lost.\n\treturn (\n\t\t<Button\n\t\t\tclassName={\n\t\t\t\tisSaveable || isSaving\n\t\t\t\t\t? clsx( {\n\t\t\t\t\t\t\t'editor-post-save-draft': ! isSavedState,\n\t\t\t\t\t\t\t'editor-post-saved-state': isSavedState,\n\t\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t\t\t'is-autosaving': isAutosaving,\n\t\t\t\t\t\t\t'is-saved': isSaved,\n\t\t\t\t\t\t\t[ getAnimateClassName( {\n\t\t\t\t\t\t\t\ttype: 'loading',\n\t\t\t\t\t\t\t} ) ]: isSaving,\n\t\t\t\t\t } )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonClick={ isDisabled ? undefined : () => savePost() }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ isDisabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\tvariant=\"tertiary\"\n\t\t\tsize=\"compact\"\n\t\t\ticon={ isLargeViewport ? undefined : cloudUpload }\n\t\t\tlabel={ text || label }\n\t\t\taria-disabled={ isDisabled }\n\t\t>\n\t\t\t{ isSavedState && <Icon icon={ isSaved ? check : cloud } /> }\n\t\t\t{ text }\n\t\t</Button>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Button","CheckboxControl","Dropdown","__experimentalText","Text","__experimentalVStack","VStack","TextControl","RadioControl","__","sprintf","useDispatch","useSelect","useState","useMemo","store","coreStore","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useInstanceId","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","PATTERN_POST_TYPE","NAVIGATION_POST_TYPE","PostPanelRow","PrivatePostSchedule","editorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","labels","draft","pending","private","future","publish","STATUS_OPTIONS","label","children","variant","size","value","DESIGN_POST_TYPES","PostStatus","status","date","password","postId","postType","canEdit","select","_getCurrentPost$_link","getEditedPostAttribute","getCurrentPostId","getCurrentPostType","getCurrentPost","_links","showPassword","setShowPassword","passwordInputId","editEntityRecord","popoverAnchor","setPopoverAnchor","popoverProps","anchor","headerTitle","placement","offset","shift","includes","updatePost","newStatus","newPassword","newDate","handleTogglePassword","handleStatus","Date","ref","className","contentClassName","focusOnMount","renderToggle","onToggle","onClick","renderContent","onClose","title","spacing","hideLabelFromVision","options","onChange","selected","showPopoverHeaderActions","isCompact","as","__nextHasNoMarginBottom","help","checked","placeholder","type","id","__next40pxDefaultSize"],"sources":["@wordpress/editor/src/components/post-status/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\tDropdown,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tRadioControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n} from '../../store/constants';\nimport PostPanelRow from '../post-panel-row';\nimport { PrivatePostSchedule } from '../post-schedule';\nimport { store as editorStore } from '../../store';\n\nconst labels = {\n\t'auto-draft': __( 'Draft' ),\n\tdraft: __( 'Draft' ),\n\tpending: __( 'Pending' ),\n\tprivate: __( 'Private' ),\n\tfuture: __( 'Scheduled' ),\n\tpublish: __( 'Published' ),\n};\n\nconst STATUS_OPTIONS = [\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Draft' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Not ready to publish.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'draft',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Pending' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Waiting for review before publishing.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'pending',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Private' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Only visible to site admins and editors.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'private',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Scheduled' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Publish automatically on a chosen date.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'future',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Published' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Visible to everyone.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'publish',\n\t},\n];\n\nconst DESIGN_POST_TYPES = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n];\n\nexport default function PostStatus() {\n\tconst { status, date, password, postId, postType, canEdit } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetCurrentPostId,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPost,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tstatus: getEditedPostAttribute( 'status' ),\n\t\t\t\tdate: getEditedPostAttribute( 'date' ),\n\t\t\t\tpassword: getEditedPostAttribute( 'password' ),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tcanEdit:\n\t\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst [ showPassword, setShowPassword ] = useState( !! password );\n\tconst passwordInputId = useInstanceId(\n\t\tPostStatus,\n\t\t'editor-change-status__password-input'\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Status & visibility' ),\n\t\t\theaderTitle: __( 'Status & visibility' ),\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tif ( DESIGN_POST_TYPES.includes( postType ) ) {\n\t\treturn null;\n\t}\n\n\tconst updatePost = ( {\n\t\tstatus: newStatus = status,\n\t\tpassword: newPassword = password,\n\t\tdate: newDate = date,\n\t} ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tstatus: newStatus,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\tconst handleTogglePassword = ( value ) => {\n\t\tsetShowPassword( value );\n\t\tif ( ! value ) {\n\t\t\tupdatePost( { password: '' } );\n\t\t}\n\t};\n\n\tconst handleStatus = ( value ) => {\n\t\tlet newDate = date;\n\t\tlet newPassword = password;\n\t\tif ( status === 'future' && new Date( date ) > new Date() ) {\n\t\t\tnewDate = null;\n\t\t}\n\t\tif ( value === 'private' && password ) {\n\t\t\tnewPassword = '';\n\t\t}\n\t\tupdatePost( {\n\t\t\tstatus: value,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Status' ) } ref={ setPopoverAnchor }>\n\t\t\t{ canEdit ? (\n\t\t\t\t<Dropdown\n\t\t\t\t\tclassName=\"editor-post-status\"\n\t\t\t\t\tcontentClassName=\"editor-change-status__content\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Current post status.\n\t\t\t\t\t\t\t\t__( 'Change post status: %s' ),\n\t\t\t\t\t\t\t\tlabels[ status ]\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ labels[ status ] }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\t\ttitle={ __( 'Status & visibility' ) }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__options\"\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Status' ) }\n\t\t\t\t\t\t\t\t\t\toptions={ STATUS_OPTIONS }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleStatus }\n\t\t\t\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\t\t\t\tstatus === 'auto-draft'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t\t\t\t\t: status\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ status === 'future' && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"editor-change-status__publish-date-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t<PrivatePostSchedule\n\t\t\t\t\t\t\t\t\t\t\t\tshowPopoverHeaderActions={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tisCompact\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ status !== 'private' && (\n\t\t\t\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\t\t\t\tas=\"fieldset\"\n\t\t\t\t\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__password-fieldset\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Password protected'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Only visible to those who know the password'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ showPassword }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleTogglePassword\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{ showPassword && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"editor-change-status__password-input\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePost( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpassword: value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Use a secure password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={ passwordInputId }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div className=\"editor-post-status is-read-only\">\n\t\t\t\t\t{ labels[ status ] }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</PostPanelRow>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Button","CheckboxControl","Dropdown","__experimentalText","Text","__experimentalVStack","VStack","TextControl","RadioControl","__","sprintf","useDispatch","useSelect","useState","useMemo","store","coreStore","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useInstanceId","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","PATTERN_POST_TYPE","NAVIGATION_POST_TYPE","PostPanelRow","PrivatePostSchedule","editorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","labels","draft","pending","private","future","publish","STATUS_OPTIONS","label","children","variant","size","value","DESIGN_POST_TYPES","PostStatus","status","date","password","postId","postType","canEdit","select","_getCurrentPost$_link","getEditedPostAttribute","getCurrentPostId","getCurrentPostType","getCurrentPost","_links","showPassword","setShowPassword","passwordInputId","editEntityRecord","popoverAnchor","setPopoverAnchor","popoverProps","anchor","headerTitle","placement","offset","shift","includes","updatePost","newStatus","newPassword","newDate","handleTogglePassword","handleStatus","Date","ref","className","contentClassName","focusOnMount","renderToggle","onToggle","onClick","renderContent","onClose","title","spacing","hideLabelFromVision","options","onChange","selected","showPopoverHeaderActions","isCompact","as","__nextHasNoMarginBottom","help","checked","placeholder","type","id","__next40pxDefaultSize"],"sources":["@wordpress/editor/src/components/post-status/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\tDropdown,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tRadioControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n} from '../../store/constants';\nimport PostPanelRow from '../post-panel-row';\nimport { PrivatePostSchedule } from '../post-schedule';\nimport { store as editorStore } from '../../store';\n\nconst labels = {\n\t'auto-draft': __( 'Draft' ),\n\tdraft: __( 'Draft' ),\n\tpending: __( 'Pending' ),\n\tprivate: __( 'Private' ),\n\tfuture: __( 'Scheduled' ),\n\tpublish: __( 'Published' ),\n};\n\nexport const STATUS_OPTIONS = [\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Draft' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Not ready to publish.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'draft',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Pending' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Waiting for review before publishing.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'pending',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Private' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Only visible to site admins and editors.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'private',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Scheduled' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Publish automatically on a chosen date.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'future',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Published' ) }\n\t\t\t\t<Text variant=\"muted\" size={ 12 }>\n\t\t\t\t\t{ __( 'Visible to everyone.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'publish',\n\t},\n];\n\nconst DESIGN_POST_TYPES = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n];\n\nexport default function PostStatus() {\n\tconst { status, date, password, postId, postType, canEdit } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetCurrentPostId,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPost,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tstatus: getEditedPostAttribute( 'status' ),\n\t\t\t\tdate: getEditedPostAttribute( 'date' ),\n\t\t\t\tpassword: getEditedPostAttribute( 'password' ),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tcanEdit:\n\t\t\t\t\tgetCurrentPost()._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst [ showPassword, setShowPassword ] = useState( !! password );\n\tconst passwordInputId = useInstanceId(\n\t\tPostStatus,\n\t\t'editor-change-status__password-input'\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Status & visibility' ),\n\t\t\theaderTitle: __( 'Status & visibility' ),\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tif ( DESIGN_POST_TYPES.includes( postType ) ) {\n\t\treturn null;\n\t}\n\n\tconst updatePost = ( {\n\t\tstatus: newStatus = status,\n\t\tpassword: newPassword = password,\n\t\tdate: newDate = date,\n\t} ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tstatus: newStatus,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\tconst handleTogglePassword = ( value ) => {\n\t\tsetShowPassword( value );\n\t\tif ( ! value ) {\n\t\t\tupdatePost( { password: '' } );\n\t\t}\n\t};\n\n\tconst handleStatus = ( value ) => {\n\t\tlet newDate = date;\n\t\tlet newPassword = password;\n\t\tif ( status === 'future' && new Date( date ) > new Date() ) {\n\t\t\tnewDate = null;\n\t\t}\n\t\tif ( value === 'private' && password ) {\n\t\t\tnewPassword = '';\n\t\t}\n\t\tupdatePost( {\n\t\t\tstatus: value,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Status' ) } ref={ setPopoverAnchor }>\n\t\t\t{ canEdit ? (\n\t\t\t\t<Dropdown\n\t\t\t\t\tclassName=\"editor-post-status\"\n\t\t\t\t\tcontentClassName=\"editor-change-status__content\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Current post status.\n\t\t\t\t\t\t\t\t__( 'Change post status: %s' ),\n\t\t\t\t\t\t\t\tlabels[ status ]\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ labels[ status ] }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\t\ttitle={ __( 'Status & visibility' ) }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__options\"\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Status' ) }\n\t\t\t\t\t\t\t\t\t\toptions={ STATUS_OPTIONS }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleStatus }\n\t\t\t\t\t\t\t\t\t\tselected={\n\t\t\t\t\t\t\t\t\t\t\tstatus === 'auto-draft'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'draft'\n\t\t\t\t\t\t\t\t\t\t\t\t: status\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ status === 'future' && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"editor-change-status__publish-date-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t<PrivatePostSchedule\n\t\t\t\t\t\t\t\t\t\t\t\tshowPopoverHeaderActions={\n\t\t\t\t\t\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tisCompact\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ status !== 'private' && (\n\t\t\t\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\t\t\t\tas=\"fieldset\"\n\t\t\t\t\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-change-status__password-fieldset\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Password protected'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Only visible to those who know the password'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ showPassword }\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleTogglePassword\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t{ showPassword && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"editor-change-status__password-input\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdatePost( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpassword: value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Use a secure password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={ passwordInputId }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div className=\"editor-post-status is-read-only\">\n\t\t\t\t\t{ labels[ status ] }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</PostPanelRow>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,7 +14,6 @@ import PostPublishPanel from '../post-publish-panel';
|
|
|
14
14
|
import PluginPrePublishPanel from '../plugin-pre-publish-panel';
|
|
15
15
|
import PluginPostPublishPanel from '../plugin-post-publish-panel';
|
|
16
16
|
import { store as editorStore } from '../../store';
|
|
17
|
-
import { unlock } from '../../lock-unlock';
|
|
18
17
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
18
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
20
19
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -46,7 +45,7 @@ export default function SavePublishPanels({
|
|
|
46
45
|
isEditedPostDirty,
|
|
47
46
|
hasNonPostEntityChanges
|
|
48
47
|
} = select(editorStore);
|
|
49
|
-
const _hasOtherEntitiesChanges = hasNonPostEntityChanges()
|
|
48
|
+
const _hasOtherEntitiesChanges = hasNonPostEntityChanges();
|
|
50
49
|
return {
|
|
51
50
|
publishSidebarOpened: isPublishSidebarOpened(),
|
|
52
51
|
isPublishable: !isCurrentPostPublished() && isEditedPostPublishable(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","useDispatch","Button","createSlotFill","__","useCallback","EntitiesSavedStates","PostPublishPanel","PluginPrePublishPanel","PluginPostPublishPanel","store","editorStore","
|
|
1
|
+
{"version":3,"names":["useSelect","useDispatch","Button","createSlotFill","__","useCallback","EntitiesSavedStates","PostPublishPanel","PluginPrePublishPanel","PluginPostPublishPanel","store","editorStore","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Fill","Slot","ActionsPanelFill","SavePublishPanels","setEntitiesSavedStatesCallback","closeEntitiesSavedStates","isEntitiesSavedStatesOpen","forceIsDirtyPublishPanel","closePublishSidebar","togglePublishSidebar","publishSidebarOpened","isPublishable","isDirty","hasOtherEntitiesChanges","select","isPublishSidebarOpened","isEditedPostPublishable","isCurrentPostPublished","isEditedPostDirty","hasNonPostEntityChanges","_hasOtherEntitiesChanges","openEntitiesSavedStates","unmountableContent","onClose","forceIsDirty","PrePublishExtension","PostPublishExtension","className","children","variant","onClick","disabled","__experimentalIsFocusable","close","bubblesVirtually"],"sources":["@wordpress/editor/src/components/save-publish-panels/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, createSlotFill } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntitiesSavedStates from '../entities-saved-states';\nimport PostPublishPanel from '../post-publish-panel';\nimport PluginPrePublishPanel from '../plugin-pre-publish-panel';\nimport PluginPostPublishPanel from '../plugin-post-publish-panel';\nimport { store as editorStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'ActionsPanel' );\n\nexport const ActionsPanelFill = Fill;\n\nexport default function SavePublishPanels( {\n\tsetEntitiesSavedStatesCallback,\n\tcloseEntitiesSavedStates,\n\tisEntitiesSavedStatesOpen,\n\tforceIsDirtyPublishPanel,\n} ) {\n\tconst { closePublishSidebar, togglePublishSidebar } =\n\t\tuseDispatch( editorStore );\n\tconst {\n\t\tpublishSidebarOpened,\n\t\tisPublishable,\n\t\tisDirty,\n\t\thasOtherEntitiesChanges,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPublishSidebarOpened,\n\t\t\tisEditedPostPublishable,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostDirty,\n\t\t\thasNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst _hasOtherEntitiesChanges = hasNonPostEntityChanges();\n\t\treturn {\n\t\t\tpublishSidebarOpened: isPublishSidebarOpened(),\n\t\t\tisPublishable:\n\t\t\t\t! isCurrentPostPublished() && isEditedPostPublishable(),\n\t\t\tisDirty: _hasOtherEntitiesChanges || isEditedPostDirty(),\n\t\t\thasOtherEntitiesChanges: _hasOtherEntitiesChanges,\n\t\t};\n\t}, [] );\n\n\tconst openEntitiesSavedStates = useCallback(\n\t\t() => setEntitiesSavedStatesCallback( true ),\n\t\t[]\n\t);\n\n\t// It is ok for these components to be unmounted when not in visual use.\n\t// We don't want more than one present at a time, decide which to render.\n\tlet unmountableContent;\n\tif ( publishSidebarOpened ) {\n\t\tunmountableContent = (\n\t\t\t<PostPublishPanel\n\t\t\t\tonClose={ closePublishSidebar }\n\t\t\t\tforceIsDirty={ forceIsDirtyPublishPanel }\n\t\t\t\tPrePublishExtension={ PluginPrePublishPanel.Slot }\n\t\t\t\tPostPublishExtension={ PluginPostPublishPanel.Slot }\n\t\t\t/>\n\t\t);\n\t} else if ( isPublishable && ! hasOtherEntitiesChanges ) {\n\t\tunmountableContent = (\n\t\t\t<div className=\"editor-layout__toggle-publish-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"editor-layout__toggle-publish-panel-button\"\n\t\t\t\t\tonClick={ togglePublishSidebar }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open publish panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tunmountableContent = (\n\t\t\t<div className=\"editor-layout__toggle-entities-saved-states-panel\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName=\"editor-layout__toggle-entities-saved-states-panel-button\"\n\t\t\t\t\tonClick={ openEntitiesSavedStates }\n\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\tdisabled={ ! isDirty }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Open save panel' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Since EntitiesSavedStates controls its own panel, we can keep it\n\t// always mounted to retain its own component state (such as checkboxes).\n\treturn (\n\t\t<>\n\t\t\t{ isEntitiesSavedStatesOpen && (\n\t\t\t\t<EntitiesSavedStates close={ closeEntitiesSavedStates } />\n\t\t\t) }\n\t\t\t<Slot bubblesVirtually />\n\t\t\t{ ! isEntitiesSavedStatesOpen && unmountableContent }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,17 +6,15 @@ import { TEMPLATE_ORIGINS } from '../constants';
|
|
|
6
6
|
// Copy of the function from packages/edit-site/src/utils/is-template-revertable.js
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Check if a template is revertable to its original theme-provided
|
|
9
|
+
* Check if a template or template part is revertable to its original theme-provided file.
|
|
10
10
|
*
|
|
11
|
-
* @param {Object}
|
|
12
|
-
* @return {boolean} Whether the
|
|
11
|
+
* @param {Object} templateOrTemplatePart The entity to check.
|
|
12
|
+
* @return {boolean} Whether the entity is revertable.
|
|
13
13
|
*/
|
|
14
|
-
export default function isTemplateRevertable(
|
|
15
|
-
if (!
|
|
14
|
+
export default function isTemplateRevertable(templateOrTemplatePart) {
|
|
15
|
+
if (!templateOrTemplatePart) {
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
return template?.source === TEMPLATE_ORIGINS.custom && template?.has_theme_file;
|
|
20
|
-
/* eslint-enable camelcase */
|
|
18
|
+
return templateOrTemplatePart.source === TEMPLATE_ORIGINS.custom && templateOrTemplatePart.has_theme_file;
|
|
21
19
|
}
|
|
22
20
|
//# sourceMappingURL=is-template-revertable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TEMPLATE_ORIGINS","isTemplateRevertable","
|
|
1
|
+
{"version":3,"names":["TEMPLATE_ORIGINS","isTemplateRevertable","templateOrTemplatePart","source","custom","has_theme_file"],"sources":["@wordpress/editor/src/store/utils/is-template-revertable.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { TEMPLATE_ORIGINS } from '../constants';\n\n// Copy of the function from packages/edit-site/src/utils/is-template-revertable.js\n\n/**\n * Check if a template or template part is revertable to its original theme-provided file.\n *\n * @param {Object} templateOrTemplatePart The entity to check.\n * @return {boolean} Whether the entity is revertable.\n */\nexport default function isTemplateRevertable( templateOrTemplatePart ) {\n\tif ( ! templateOrTemplatePart ) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\ttemplateOrTemplatePart.source === TEMPLATE_ORIGINS.custom &&\n\t\ttemplateOrTemplatePart.has_theme_file\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,gBAAgB,QAAQ,cAAc;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,oBAAoBA,CAAEC,sBAAsB,EAAG;EACtE,IAAK,CAAEA,sBAAsB,EAAG;IAC/B,OAAO,KAAK;EACb;EAEA,OACCA,sBAAsB,CAACC,MAAM,KAAKH,gBAAgB,CAACI,MAAM,IACzDF,sBAAsB,CAACG,cAAc;AAEvC","ignoreList":[]}
|
|
@@ -1703,6 +1703,7 @@ body.is-fullscreen-mode .interface-interface-skeleton {
|
|
|
1703
1703
|
.editor-post-panel__row-control .components-button {
|
|
1704
1704
|
max-width: 100%;
|
|
1705
1705
|
text-align: right;
|
|
1706
|
+
white-space: normal;
|
|
1706
1707
|
text-wrap: balance;
|
|
1707
1708
|
text-wrap: pretty;
|
|
1708
1709
|
height: auto;
|
package/build-style/style.css
CHANGED
|
@@ -1703,6 +1703,7 @@ body.is-fullscreen-mode .interface-interface-skeleton {
|
|
|
1703
1703
|
.editor-post-panel__row-control .components-button {
|
|
1704
1704
|
max-width: 100%;
|
|
1705
1705
|
text-align: left;
|
|
1706
|
+
white-space: normal;
|
|
1706
1707
|
text-wrap: balance;
|
|
1707
1708
|
text-wrap: pretty;
|
|
1708
1709
|
height: auto;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/editor",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.0.6",
|
|
4
4
|
"description": "Enhanced block editor for WordPress posts.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
"@wordpress/a11y": "^4.0.1",
|
|
36
36
|
"@wordpress/api-fetch": "^7.0.1",
|
|
37
37
|
"@wordpress/blob": "^4.0.1",
|
|
38
|
-
"@wordpress/block-editor": "^13.0.
|
|
38
|
+
"@wordpress/block-editor": "^13.0.5",
|
|
39
39
|
"@wordpress/blocks": "^13.0.3",
|
|
40
40
|
"@wordpress/commands": "^1.0.3",
|
|
41
41
|
"@wordpress/components": "^28.0.3",
|
|
42
42
|
"@wordpress/compose": "^7.0.1",
|
|
43
|
-
"@wordpress/core-data": "^7.0.
|
|
43
|
+
"@wordpress/core-data": "^7.0.5",
|
|
44
44
|
"@wordpress/data": "^10.0.2",
|
|
45
45
|
"@wordpress/date": "^5.0.1",
|
|
46
46
|
"@wordpress/deprecated": "^4.0.1",
|
|
@@ -55,11 +55,11 @@
|
|
|
55
55
|
"@wordpress/keycodes": "^4.0.1",
|
|
56
56
|
"@wordpress/media-utils": "^5.0.1",
|
|
57
57
|
"@wordpress/notices": "^5.0.2",
|
|
58
|
-
"@wordpress/patterns": "^2.0.
|
|
58
|
+
"@wordpress/patterns": "^2.0.5",
|
|
59
59
|
"@wordpress/plugins": "^7.0.3",
|
|
60
60
|
"@wordpress/preferences": "^4.0.3",
|
|
61
61
|
"@wordpress/private-apis": "^1.0.2",
|
|
62
|
-
"@wordpress/reusable-blocks": "^5.0.
|
|
62
|
+
"@wordpress/reusable-blocks": "^5.0.5",
|
|
63
63
|
"@wordpress/rich-text": "^7.0.2",
|
|
64
64
|
"@wordpress/server-side-render": "^5.0.3",
|
|
65
65
|
"@wordpress/url": "^4.0.1",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"publishConfig": {
|
|
84
84
|
"access": "public"
|
|
85
85
|
},
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "0b9a9459519b0e1a023109bab307ed1448405480"
|
|
87
87
|
}
|
|
@@ -34,6 +34,11 @@ export default {
|
|
|
34
34
|
} );
|
|
35
35
|
},
|
|
36
36
|
canUserEditValue( { select, context, args } ) {
|
|
37
|
+
// Lock editing in query loop.
|
|
38
|
+
if ( context?.query || context?.queryId ) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
|
|
37
42
|
const postType =
|
|
38
43
|
context?.postType || select( editorStore ).getCurrentPostType();
|
|
39
44
|
|
|
@@ -249,9 +249,12 @@ export function ParentRow() {
|
|
|
249
249
|
onClose={ onClose }
|
|
250
250
|
/>
|
|
251
251
|
<div>
|
|
252
|
-
{
|
|
253
|
-
|
|
254
|
-
|
|
252
|
+
{
|
|
253
|
+
/* translators: The domain name should be a reserved domain name to prevent linking to third party sites outside the WordPress project's control. You may also wish to use wordpress.org or a wordpress.org sub-domain. */
|
|
254
|
+
__(
|
|
255
|
+
"Child pages inherit characteristics from their parent, such as URL structure. For instance, if 'Web Design' is a child of 'Services', its URL would be example.org/services/web-design."
|
|
256
|
+
)
|
|
257
|
+
}
|
|
255
258
|
<p>
|
|
256
259
|
{ __(
|
|
257
260
|
'They also show up as sub-items in the default navigation menu. '
|
|
@@ -59,11 +59,6 @@ function isTemplateRemovable( template ) {
|
|
|
59
59
|
! template.templatePart?.has_theme_file
|
|
60
60
|
);
|
|
61
61
|
}
|
|
62
|
-
const canDeleteOrReset = ( item ) => {
|
|
63
|
-
const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
|
|
64
|
-
const isUserPattern = item.type === PATTERN_TYPES.user;
|
|
65
|
-
return isUserPattern || ( isTemplatePart && item.isCustom );
|
|
66
|
-
};
|
|
67
62
|
|
|
68
63
|
function getItemTitle( item ) {
|
|
69
64
|
if ( typeof item.title === 'string' ) {
|
|
@@ -254,7 +249,7 @@ const trashPostAction = {
|
|
|
254
249
|
__( '"%s" moved to trash.' ),
|
|
255
250
|
getItemTitle( items[ 0 ] )
|
|
256
251
|
);
|
|
257
|
-
} else
|
|
252
|
+
} else {
|
|
258
253
|
successMessage = sprintf(
|
|
259
254
|
/* translators: The number of items. */
|
|
260
255
|
_n(
|
|
@@ -264,12 +259,6 @@ const trashPostAction = {
|
|
|
264
259
|
),
|
|
265
260
|
items.length
|
|
266
261
|
);
|
|
267
|
-
} else {
|
|
268
|
-
successMessage = sprintf(
|
|
269
|
-
/* translators: The number of posts. */
|
|
270
|
-
__( '%s items move to trash.' ),
|
|
271
|
-
items.length
|
|
272
|
-
);
|
|
273
262
|
}
|
|
274
263
|
createSuccessNotice( successMessage, {
|
|
275
264
|
type: 'snackbar',
|
|
@@ -885,21 +874,11 @@ const duplicatePostAction = {
|
|
|
885
874
|
},
|
|
886
875
|
};
|
|
887
876
|
|
|
888
|
-
const isTemplatePartRevertable = ( item ) => {
|
|
889
|
-
if ( ! item ) {
|
|
890
|
-
return false;
|
|
891
|
-
}
|
|
892
|
-
const hasThemeFile = item.templatePart?.has_theme_file;
|
|
893
|
-
return canDeleteOrReset( item ) && hasThemeFile;
|
|
894
|
-
};
|
|
895
|
-
|
|
896
877
|
const resetTemplateAction = {
|
|
897
878
|
id: 'reset-template',
|
|
898
879
|
label: __( 'Reset' ),
|
|
899
880
|
isEligible: ( item ) => {
|
|
900
|
-
return item
|
|
901
|
-
? isTemplatePartRevertable( item )
|
|
902
|
-
: isTemplateRevertable( item );
|
|
881
|
+
return isTemplateRevertable( item );
|
|
903
882
|
},
|
|
904
883
|
icon: backup,
|
|
905
884
|
supportsBulk: true,
|
|
@@ -911,47 +890,39 @@ const resetTemplateAction = {
|
|
|
911
890
|
onActionPerformed,
|
|
912
891
|
} ) => {
|
|
913
892
|
const [ isBusy, setIsBusy ] = useState( false );
|
|
914
|
-
const { revertTemplate
|
|
915
|
-
useDispatch( editorStore )
|
|
916
|
-
);
|
|
893
|
+
const { revertTemplate } = unlock( useDispatch( editorStore ) );
|
|
917
894
|
const { saveEditedEntityRecord } = useDispatch( coreStore );
|
|
918
895
|
const { createSuccessNotice, createErrorNotice } =
|
|
919
896
|
useDispatch( noticesStore );
|
|
920
897
|
const onConfirm = async () => {
|
|
921
898
|
try {
|
|
922
|
-
|
|
923
|
-
await
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
await saveEditedEntityRecord(
|
|
931
|
-
'postType',
|
|
932
|
-
template.type,
|
|
933
|
-
template.id
|
|
934
|
-
);
|
|
935
|
-
}
|
|
936
|
-
}
|
|
937
|
-
createSuccessNotice(
|
|
938
|
-
items.length > 1
|
|
939
|
-
? sprintf(
|
|
940
|
-
/* translators: The number of items. */
|
|
941
|
-
__( '%s items reset.' ),
|
|
942
|
-
items.length
|
|
943
|
-
)
|
|
944
|
-
: sprintf(
|
|
945
|
-
/* translators: The template/part's name. */
|
|
946
|
-
__( '"%s" reset.' ),
|
|
947
|
-
decodeEntities( getItemTitle( items[ 0 ] ) )
|
|
948
|
-
),
|
|
949
|
-
{
|
|
950
|
-
type: 'snackbar',
|
|
951
|
-
id: 'revert-template-action',
|
|
952
|
-
}
|
|
899
|
+
for ( const template of items ) {
|
|
900
|
+
await revertTemplate( template, {
|
|
901
|
+
allowUndo: false,
|
|
902
|
+
} );
|
|
903
|
+
await saveEditedEntityRecord(
|
|
904
|
+
'postType',
|
|
905
|
+
template.type,
|
|
906
|
+
template.id
|
|
953
907
|
);
|
|
954
908
|
}
|
|
909
|
+
createSuccessNotice(
|
|
910
|
+
items.length > 1
|
|
911
|
+
? sprintf(
|
|
912
|
+
/* translators: The number of items. */
|
|
913
|
+
__( '%s items reset.' ),
|
|
914
|
+
items.length
|
|
915
|
+
)
|
|
916
|
+
: sprintf(
|
|
917
|
+
/* translators: The template/part's name. */
|
|
918
|
+
__( '"%s" reset.' ),
|
|
919
|
+
decodeEntities( getItemTitle( items[ 0 ] ) )
|
|
920
|
+
),
|
|
921
|
+
{
|
|
922
|
+
type: 'snackbar',
|
|
923
|
+
id: 'revert-template-action',
|
|
924
|
+
}
|
|
925
|
+
);
|
|
955
926
|
} catch ( error ) {
|
|
956
927
|
let fallbackErrorMessage;
|
|
957
928
|
if ( items[ 0 ].type === TEMPLATE_POST_TYPE ) {
|
|
@@ -24,8 +24,10 @@ function getJsonFromItem( item ) {
|
|
|
24
24
|
{
|
|
25
25
|
__file: item.type,
|
|
26
26
|
title: item.title || item.name,
|
|
27
|
-
content: item
|
|
28
|
-
syncStatus:
|
|
27
|
+
content: item?.patternPost?.content?.raw || item.content,
|
|
28
|
+
syncStatus:
|
|
29
|
+
item?.patternPost?.wp_pattern_sync_status ||
|
|
30
|
+
item.wp_pattern_sync_status,
|
|
29
31
|
},
|
|
30
32
|
null,
|
|
31
33
|
2
|
|
@@ -11,7 +11,6 @@ import { compose } from '@wordpress/compose';
|
|
|
11
11
|
*/
|
|
12
12
|
import PublishButtonLabel from './label';
|
|
13
13
|
import { store as editorStore } from '../../store';
|
|
14
|
-
import { unlock } from '../../lock-unlock';
|
|
15
14
|
|
|
16
15
|
const noop = () => {};
|
|
17
16
|
|
|
@@ -46,24 +45,14 @@ export class PostPublishButton extends Component {
|
|
|
46
45
|
|
|
47
46
|
createOnClick( callback ) {
|
|
48
47
|
return ( ...args ) => {
|
|
49
|
-
const {
|
|
50
|
-
|
|
51
|
-
hasPostMetaChanges,
|
|
52
|
-
setEntitiesSavedStatesCallback,
|
|
53
|
-
isPublished,
|
|
54
|
-
} = this.props;
|
|
48
|
+
const { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =
|
|
49
|
+
this.props;
|
|
55
50
|
// If a post with non-post entities is published, but the user
|
|
56
51
|
// elects to not save changes to the non-post entities, those
|
|
57
52
|
// entities will still be dirty when the Publish button is clicked.
|
|
58
53
|
// We also need to check that the `setEntitiesSavedStatesCallback`
|
|
59
54
|
// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383
|
|
60
|
-
|
|
61
|
-
// TODO: Explore how to manage `hasPostMetaChanges` and pre-publish workflow properly.
|
|
62
|
-
if (
|
|
63
|
-
( hasNonPostEntityChanges ||
|
|
64
|
-
( hasPostMetaChanges && isPublished ) ) &&
|
|
65
|
-
setEntitiesSavedStatesCallback
|
|
66
|
-
) {
|
|
55
|
+
if ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {
|
|
67
56
|
// The modal for multiple entity saving will open,
|
|
68
57
|
// hold the callback for saving/publishing the post
|
|
69
58
|
// so that we can call it if the post entity is checked.
|
|
@@ -223,8 +212,7 @@ export default compose( [
|
|
|
223
212
|
isSavingNonPostEntityChanges,
|
|
224
213
|
getEditedPostAttribute,
|
|
225
214
|
getPostEdits,
|
|
226
|
-
|
|
227
|
-
} = unlock( select( editorStore ) );
|
|
215
|
+
} = select( editorStore );
|
|
228
216
|
return {
|
|
229
217
|
isSaving: isSavingPost(),
|
|
230
218
|
isAutoSaving: isAutosavingPost(),
|
|
@@ -241,7 +229,6 @@ export default compose( [
|
|
|
241
229
|
postStatus: getEditedPostAttribute( 'status' ),
|
|
242
230
|
postStatusHasChanged: getPostEdits()?.status,
|
|
243
231
|
hasNonPostEntityChanges: hasNonPostEntityChanges(),
|
|
244
|
-
hasPostMetaChanges: hasPostMetaChanges(),
|
|
245
232
|
isSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),
|
|
246
233
|
};
|
|
247
234
|
} ),
|
|
@@ -21,6 +21,7 @@ import { store as preferencesStore } from '@wordpress/preferences';
|
|
|
21
21
|
/**
|
|
22
22
|
* Internal dependencies
|
|
23
23
|
*/
|
|
24
|
+
import { STATUS_OPTIONS } from '../../components/post-status';
|
|
24
25
|
import { store as editorStore } from '../../store';
|
|
25
26
|
|
|
26
27
|
/**
|
|
@@ -104,10 +105,19 @@ export default function PostSavedState( { forceIsDirty } ) {
|
|
|
104
105
|
return null;
|
|
105
106
|
}
|
|
106
107
|
|
|
108
|
+
// We shouldn't render the button if the post has not one of the following statuses: pending, draft, auto-draft.
|
|
109
|
+
// The reason for this is that this button handles the `save as pending` and `save draft` actions.
|
|
110
|
+
// An exception for this is when the post has a custom status and there should be a way to save changes without
|
|
111
|
+
// having to publish. This should be handled better in the future when custom statuses have better support.
|
|
112
|
+
// @see https://github.com/WordPress/gutenberg/issues/3144.
|
|
113
|
+
const isIneligibleStatus =
|
|
114
|
+
! [ 'pending', 'draft', 'auto-draft' ].includes( postStatus ) &&
|
|
115
|
+
STATUS_OPTIONS.map( ( { value } ) => value ).includes( postStatus );
|
|
116
|
+
|
|
107
117
|
if (
|
|
108
118
|
isPublished ||
|
|
109
119
|
isScheduled ||
|
|
110
|
-
|
|
120
|
+
isIneligibleStatus ||
|
|
111
121
|
( postStatusHasChanged &&
|
|
112
122
|
[ 'pending', 'draft' ].includes( postStatus ) )
|
|
113
123
|
) {
|