@wordpress/editor 13.12.5 → 13.12.7
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/components/index.js +8 -1
- package/build/components/index.js.map +1 -1
- package/build/components/post-sync-status/index.js +79 -5
- package/build/components/post-sync-status/index.js.map +1 -1
- package/build-module/components/index.js +1 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/post-sync-status/index.js +80 -8
- package/build-module/components/post-sync-status/index.js.map +1 -1
- package/package.json +9 -9
- package/src/components/index.js +4 -1
- package/src/components/post-sync-status/index.js +99 -6
|
@@ -54,6 +54,7 @@ var _exportNames = {
|
|
|
54
54
|
PostStickyCheck: true,
|
|
55
55
|
PostSwitchToDraftButton: true,
|
|
56
56
|
PostSyncStatus: true,
|
|
57
|
+
PostSyncStatusModal: true,
|
|
57
58
|
PostTaxonomies: true,
|
|
58
59
|
PostTaxonomiesFlatTermSelector: true,
|
|
59
60
|
PostTaxonomiesHierarchicalTermSelector: true,
|
|
@@ -355,6 +356,12 @@ Object.defineProperty(exports, "PostSyncStatus", {
|
|
|
355
356
|
return _postSyncStatus.default;
|
|
356
357
|
}
|
|
357
358
|
});
|
|
359
|
+
Object.defineProperty(exports, "PostSyncStatusModal", {
|
|
360
|
+
enumerable: true,
|
|
361
|
+
get: function () {
|
|
362
|
+
return _postSyncStatus.PostSyncStatusModal;
|
|
363
|
+
}
|
|
364
|
+
});
|
|
358
365
|
Object.defineProperty(exports, "PostTaxonomies", {
|
|
359
366
|
enumerable: true,
|
|
360
367
|
get: function () {
|
|
@@ -618,7 +625,7 @@ var _check11 = _interopRequireDefault(require("./post-sticky/check"));
|
|
|
618
625
|
|
|
619
626
|
var _postSwitchToDraftButton = _interopRequireDefault(require("./post-switch-to-draft-button"));
|
|
620
627
|
|
|
621
|
-
var _postSyncStatus =
|
|
628
|
+
var _postSyncStatus = _interopRequireWildcard(require("./post-sync-status"));
|
|
622
629
|
|
|
623
630
|
var _postTaxonomies = _interopRequireDefault(require("./post-taxonomies"));
|
|
624
631
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AAEA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["// Block Creation Components.\nexport * from './autocompleters';\n\n// Post Related Components.\nexport { default as AutosaveMonitor } from './autosave-monitor';\nexport { default as DocumentOutline } from './document-outline';\nexport { default as DocumentOutlineCheck } from './document-outline/check';\nexport { default as VisualEditorGlobalKeyboardShortcuts } from './global-keyboard-shortcuts/visual-editor-shortcuts';\nexport { default as TextEditorGlobalKeyboardShortcuts } from './global-keyboard-shortcuts/text-editor-shortcuts';\nexport { default as EditorKeyboardShortcutsRegister } from './global-keyboard-shortcuts/register-shortcuts';\nexport { default as EditorHistoryRedo } from './editor-history/redo';\nexport { default as EditorHistoryUndo } from './editor-history/undo';\nexport { default as EditorNotices } from './editor-notices';\nexport { default as EditorSnackbars } from './editor-snackbars';\nexport { default as EntitiesSavedStates } from './entities-saved-states';\nexport { useIsDirty as useEntitiesSavedStatesIsDirty } from './entities-saved-states/hooks/use-is-dirty';\nexport { default as ErrorBoundary } from './error-boundary';\nexport { default as LocalAutosaveMonitor } from './local-autosave-monitor';\nexport { default as PageAttributesCheck } from './page-attributes/check';\nexport { default as PageAttributesOrder } from './page-attributes/order';\nexport { default as PageAttributesParent } from './page-attributes/parent';\nexport { default as PageTemplate } from './post-template';\nexport { default as PostAuthor } from './post-author';\nexport { default as PostAuthorCheck } from './post-author/check';\nexport { default as PostComments } from './post-comments';\nexport { default as PostExcerpt } from './post-excerpt';\nexport { default as PostExcerptCheck } from './post-excerpt/check';\nexport { default as PostFeaturedImage } from './post-featured-image';\nexport { default as PostFeaturedImageCheck } from './post-featured-image/check';\nexport { default as PostFormat } from './post-format';\nexport { default as PostFormatCheck } from './post-format/check';\nexport { default as PostLastRevision } from './post-last-revision';\nexport { default as PostLastRevisionCheck } from './post-last-revision/check';\nexport { default as PostLockedModal } from './post-locked-modal';\nexport { default as PostPendingStatus } from './post-pending-status';\nexport { default as PostPendingStatusCheck } from './post-pending-status/check';\nexport { default as PostPingbacks } from './post-pingbacks';\nexport { default as PostPreviewButton } from './post-preview-button';\nexport { default as PostPublishButton } from './post-publish-button';\nexport { default as PostPublishButtonLabel } from './post-publish-button/label';\nexport { default as PostPublishPanel } from './post-publish-panel';\nexport { default as PostSavedState } from './post-saved-state';\nexport { default as PostSchedule } from './post-schedule';\nexport { default as PostScheduleCheck } from './post-schedule/check';\nexport {\n\tdefault as PostScheduleLabel,\n\tusePostScheduleLabel,\n} from './post-schedule/label';\nexport { default as PostSlug } from './post-slug';\nexport { default as PostSlugCheck } from './post-slug/check';\nexport { default as PostSticky } from './post-sticky';\nexport { default as PostStickyCheck } from './post-sticky/check';\nexport { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';\nexport {\n\tdefault as PostSyncStatus,\n\tPostSyncStatusModal,\n} from './post-sync-status';\nexport { default as PostTaxonomies } from './post-taxonomies';\nexport { FlatTermSelector as PostTaxonomiesFlatTermSelector } from './post-taxonomies/flat-term-selector';\nexport { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } from './post-taxonomies/hierarchical-term-selector';\nexport { default as PostTaxonomiesCheck } from './post-taxonomies/check';\nexport { default as PostTextEditor } from './post-text-editor';\nexport { default as PostTitle } from './post-title';\nexport { default as PostTrash } from './post-trash';\nexport { default as PostTrashCheck } from './post-trash/check';\nexport { default as PostTypeSupportCheck } from './post-type-support-check';\nexport { default as PostURL } from './post-url';\nexport { default as PostURLCheck } from './post-url/check';\nexport { default as PostURLLabel, usePostURLLabel } from './post-url/label';\nexport { default as PostVisibility } from './post-visibility';\nexport {\n\tdefault as PostVisibilityLabel,\n\tusePostVisibilityLabel,\n} from './post-visibility/label';\nexport { default as PostVisibilityCheck } from './post-visibility/check';\nexport { default as TableOfContents } from './table-of-contents';\nexport { default as ThemeSupportCheck } from './theme-support-check';\nexport { default as UnsavedChangesWarning } from './unsaved-changes-warning';\nexport { default as WordCount } from './word-count';\nexport { default as TimeToRead } from './time-to-read';\nexport { default as CharacterCount } from './character-count';\n\n// State Related Components.\nexport { default as EditorProvider } from './provider';\n\nexport * from './deprecated';\n"]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.PostSyncStatusModal = PostSyncStatusModal;
|
|
6
7
|
exports.default = PostSyncStatus;
|
|
7
8
|
|
|
8
9
|
var _element = require("@wordpress/element");
|
|
@@ -13,6 +14,8 @@ var _i18n = require("@wordpress/i18n");
|
|
|
13
14
|
|
|
14
15
|
var _components = require("@wordpress/components");
|
|
15
16
|
|
|
17
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
18
|
+
|
|
16
19
|
var _store = require("../../store");
|
|
17
20
|
|
|
18
21
|
/**
|
|
@@ -25,24 +28,95 @@ var _store = require("../../store");
|
|
|
25
28
|
function PostSyncStatus() {
|
|
26
29
|
const {
|
|
27
30
|
syncStatus,
|
|
28
|
-
postType
|
|
31
|
+
postType,
|
|
32
|
+
meta
|
|
29
33
|
} = (0, _data.useSelect)(select => {
|
|
30
34
|
const {
|
|
31
35
|
getEditedPostAttribute
|
|
32
36
|
} = select(_store.store);
|
|
33
37
|
return {
|
|
34
38
|
syncStatus: getEditedPostAttribute('wp_pattern_sync_status'),
|
|
39
|
+
meta: getEditedPostAttribute('meta'),
|
|
35
40
|
postType: getEditedPostAttribute('type')
|
|
36
41
|
};
|
|
37
|
-
}
|
|
42
|
+
});
|
|
38
43
|
|
|
39
44
|
if (postType !== 'wp_block') {
|
|
40
45
|
return null;
|
|
41
|
-
}
|
|
46
|
+
} // When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
|
|
49
|
+
const currentSyncStatus = meta?.wp_pattern_sync_status === 'unsynced' ? 'unsynced' : syncStatus;
|
|
44
50
|
return (0, _element.createElement)(_components.PanelRow, {
|
|
45
51
|
className: "edit-post-sync-status"
|
|
46
|
-
}, (0, _element.createElement)("span", null, (0, _i18n.__)('Sync status')), (0, _element.createElement)("div", null,
|
|
52
|
+
}, (0, _element.createElement)("span", null, (0, _i18n.__)('Sync status')), (0, _element.createElement)("div", null, currentSyncStatus === 'unsynced' ? (0, _i18n.__)('Not synced') : (0, _i18n.__)('Fully synced')));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function PostSyncStatusModal() {
|
|
56
|
+
const {
|
|
57
|
+
editPost
|
|
58
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
59
|
+
const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
|
|
60
|
+
const [syncType, setSyncType] = (0, _element.useState)(undefined);
|
|
61
|
+
const {
|
|
62
|
+
postType,
|
|
63
|
+
isNewPost
|
|
64
|
+
} = (0, _data.useSelect)(select => {
|
|
65
|
+
const {
|
|
66
|
+
getEditedPostAttribute,
|
|
67
|
+
isCleanNewPost
|
|
68
|
+
} = select(_store.store);
|
|
69
|
+
return {
|
|
70
|
+
postType: getEditedPostAttribute('type'),
|
|
71
|
+
isNewPost: isCleanNewPost()
|
|
72
|
+
};
|
|
73
|
+
}, []);
|
|
74
|
+
(0, _element.useEffect)(() => {
|
|
75
|
+
if (isNewPost && postType === 'wp_block') {
|
|
76
|
+
setIsModalOpen(true);
|
|
77
|
+
} // We only want the modal to open when the page is first loaded.
|
|
78
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
79
|
+
|
|
80
|
+
}, []);
|
|
81
|
+
|
|
82
|
+
const setSyncStatus = () => {
|
|
83
|
+
editPost({
|
|
84
|
+
meta: {
|
|
85
|
+
wp_pattern_sync_status: syncType
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
if (postType !== 'wp_block' || !isNewPost) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return (0, _element.createElement)(_element.Fragment, null, isModalOpen && (0, _element.createElement)(_components.Modal, {
|
|
95
|
+
title: (0, _i18n.__)('Set pattern sync status'),
|
|
96
|
+
onRequestClose: () => {
|
|
97
|
+
setIsModalOpen(false);
|
|
98
|
+
},
|
|
99
|
+
overlayClassName: "reusable-blocks-menu-items__convert-modal"
|
|
100
|
+
}, (0, _element.createElement)("form", {
|
|
101
|
+
onSubmit: event => {
|
|
102
|
+
event.preventDefault();
|
|
103
|
+
setIsModalOpen(false);
|
|
104
|
+
setSyncStatus();
|
|
105
|
+
}
|
|
106
|
+
}, (0, _element.createElement)(_components.__experimentalVStack, {
|
|
107
|
+
spacing: "5"
|
|
108
|
+
}, (0, _element.createElement)(_blockEditor.ReusableBlocksRenameHint, null), (0, _element.createElement)(_components.ToggleControl, {
|
|
109
|
+
label: (0, _i18n.__)('Synced'),
|
|
110
|
+
help: (0, _i18n.__)('Editing the pattern will update it anywhere it is used.'),
|
|
111
|
+
checked: !syncType,
|
|
112
|
+
onChange: () => {
|
|
113
|
+
setSyncType(!syncType ? 'unsynced' : undefined);
|
|
114
|
+
}
|
|
115
|
+
}), (0, _element.createElement)(_components.__experimentalHStack, {
|
|
116
|
+
justify: "right"
|
|
117
|
+
}, (0, _element.createElement)(_components.Button, {
|
|
118
|
+
variant: "primary",
|
|
119
|
+
type: "submit"
|
|
120
|
+
}, (0, _i18n.__)('Create')))))));
|
|
47
121
|
}
|
|
48
122
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-sync-status/index.js"],"names":["PostSyncStatus","syncStatus","postType","select","getEditedPostAttribute","editorStore","
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-sync-status/index.js"],"names":["PostSyncStatus","syncStatus","postType","meta","select","getEditedPostAttribute","editorStore","currentSyncStatus","wp_pattern_sync_status","PostSyncStatusModal","editPost","isModalOpen","setIsModalOpen","syncType","setSyncType","undefined","isNewPost","isCleanNewPost","setSyncStatus","event","preventDefault"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelRow,\n\tModal,\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { ReusableBlocksRenameHint } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostSyncStatus() {\n\tconst { syncStatus, postType, meta } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\treturn {\n\t\t\tsyncStatus: getEditedPostAttribute( 'wp_pattern_sync_status' ),\n\t\t\tmeta: getEditedPostAttribute( 'meta' ),\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t};\n\t} );\n\n\tif ( postType !== 'wp_block' ) {\n\t\treturn null;\n\t}\n\t// When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.\n\tconst currentSyncStatus =\n\t\tmeta?.wp_pattern_sync_status === 'unsynced' ? 'unsynced' : syncStatus;\n\n\treturn (\n\t\t<PanelRow className=\"edit-post-sync-status\">\n\t\t\t<span>{ __( 'Sync status' ) }</span>\n\t\t\t<div>\n\t\t\t\t{ currentSyncStatus === 'unsynced'\n\t\t\t\t\t? __( 'Not synced' )\n\t\t\t\t\t: __( 'Fully synced' ) }\n\t\t\t</div>\n\t\t</PanelRow>\n\t);\n}\n\nexport function PostSyncStatusModal() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst [ syncType, setSyncType ] = useState( undefined );\n\n\tconst { postType, isNewPost } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute, isCleanNewPost } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t\tisNewPost: isCleanNewPost(),\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( isNewPost && postType === 'wp_block' ) {\n\t\t\tsetIsModalOpen( true );\n\t\t}\n\t\t// We only want the modal to open when the page is first loaded.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tconst setSyncStatus = () => {\n\t\teditPost( {\n\t\t\tmeta: {\n\t\t\t\twp_pattern_sync_status: syncType,\n\t\t\t},\n\t\t} );\n\t};\n\n\tif ( postType !== 'wp_block' || ! isNewPost ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Set pattern sync status' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\tsetSyncStatus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<ReusableBlocksRenameHint />\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Synced' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Editing the pattern will update it anywhere it is used.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ ! syncType }\n\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\t\t\t\t! syncType ? 'unsynced' : undefined\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -47,7 +47,7 @@ export { default as PostSlugCheck } from './post-slug/check';
|
|
|
47
47
|
export { default as PostSticky } from './post-sticky';
|
|
48
48
|
export { default as PostStickyCheck } from './post-sticky/check';
|
|
49
49
|
export { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';
|
|
50
|
-
export { default as PostSyncStatus } from './post-sync-status';
|
|
50
|
+
export { default as PostSyncStatus, PostSyncStatusModal } from './post-sync-status';
|
|
51
51
|
export { default as PostTaxonomies } from './post-taxonomies';
|
|
52
52
|
export { FlatTermSelector as PostTaxonomiesFlatTermSelector } from './post-taxonomies/flat-term-selector';
|
|
53
53
|
export { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } from './post-taxonomies/hierarchical-term-selector';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/index.js"],"names":["default","AutosaveMonitor","DocumentOutline","DocumentOutlineCheck","VisualEditorGlobalKeyboardShortcuts","TextEditorGlobalKeyboardShortcuts","EditorKeyboardShortcutsRegister","EditorHistoryRedo","EditorHistoryUndo","EditorNotices","EditorSnackbars","EntitiesSavedStates","useIsDirty","useEntitiesSavedStatesIsDirty","ErrorBoundary","LocalAutosaveMonitor","PageAttributesCheck","PageAttributesOrder","PageAttributesParent","PageTemplate","PostAuthor","PostAuthorCheck","PostComments","PostExcerpt","PostExcerptCheck","PostFeaturedImage","PostFeaturedImageCheck","PostFormat","PostFormatCheck","PostLastRevision","PostLastRevisionCheck","PostLockedModal","PostPendingStatus","PostPendingStatusCheck","PostPingbacks","PostPreviewButton","PostPublishButton","PostPublishButtonLabel","PostPublishPanel","PostSavedState","PostSchedule","PostScheduleCheck","PostScheduleLabel","usePostScheduleLabel","PostSlug","PostSlugCheck","PostSticky","PostStickyCheck","PostSwitchToDraftButton","PostSyncStatus","PostTaxonomies","FlatTermSelector","PostTaxonomiesFlatTermSelector","HierarchicalTermSelector","PostTaxonomiesHierarchicalTermSelector","PostTaxonomiesCheck","PostTextEditor","PostTitle","PostTrash","PostTrashCheck","PostTypeSupportCheck","PostURL","PostURLCheck","PostURLLabel","usePostURLLabel","PostVisibility","PostVisibilityLabel","usePostVisibilityLabel","PostVisibilityCheck","TableOfContents","ThemeSupportCheck","UnsavedChangesWarning","WordCount","TimeToRead","CharacterCount","EditorProvider"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/index.js"],"names":["default","AutosaveMonitor","DocumentOutline","DocumentOutlineCheck","VisualEditorGlobalKeyboardShortcuts","TextEditorGlobalKeyboardShortcuts","EditorKeyboardShortcutsRegister","EditorHistoryRedo","EditorHistoryUndo","EditorNotices","EditorSnackbars","EntitiesSavedStates","useIsDirty","useEntitiesSavedStatesIsDirty","ErrorBoundary","LocalAutosaveMonitor","PageAttributesCheck","PageAttributesOrder","PageAttributesParent","PageTemplate","PostAuthor","PostAuthorCheck","PostComments","PostExcerpt","PostExcerptCheck","PostFeaturedImage","PostFeaturedImageCheck","PostFormat","PostFormatCheck","PostLastRevision","PostLastRevisionCheck","PostLockedModal","PostPendingStatus","PostPendingStatusCheck","PostPingbacks","PostPreviewButton","PostPublishButton","PostPublishButtonLabel","PostPublishPanel","PostSavedState","PostSchedule","PostScheduleCheck","PostScheduleLabel","usePostScheduleLabel","PostSlug","PostSlugCheck","PostSticky","PostStickyCheck","PostSwitchToDraftButton","PostSyncStatus","PostSyncStatusModal","PostTaxonomies","FlatTermSelector","PostTaxonomiesFlatTermSelector","HierarchicalTermSelector","PostTaxonomiesHierarchicalTermSelector","PostTaxonomiesCheck","PostTextEditor","PostTitle","PostTrash","PostTrashCheck","PostTypeSupportCheck","PostURL","PostURLCheck","PostURLLabel","usePostURLLabel","PostVisibility","PostVisibilityLabel","usePostVisibilityLabel","PostVisibilityCheck","TableOfContents","ThemeSupportCheck","UnsavedChangesWarning","WordCount","TimeToRead","CharacterCount","EditorProvider"],"mappings":"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","sourcesContent":["// Block Creation Components.\nexport * from './autocompleters';\n\n// Post Related Components.\nexport { default as AutosaveMonitor } from './autosave-monitor';\nexport { default as DocumentOutline } from './document-outline';\nexport { default as DocumentOutlineCheck } from './document-outline/check';\nexport { default as VisualEditorGlobalKeyboardShortcuts } from './global-keyboard-shortcuts/visual-editor-shortcuts';\nexport { default as TextEditorGlobalKeyboardShortcuts } from './global-keyboard-shortcuts/text-editor-shortcuts';\nexport { default as EditorKeyboardShortcutsRegister } from './global-keyboard-shortcuts/register-shortcuts';\nexport { default as EditorHistoryRedo } from './editor-history/redo';\nexport { default as EditorHistoryUndo } from './editor-history/undo';\nexport { default as EditorNotices } from './editor-notices';\nexport { default as EditorSnackbars } from './editor-snackbars';\nexport { default as EntitiesSavedStates } from './entities-saved-states';\nexport { useIsDirty as useEntitiesSavedStatesIsDirty } from './entities-saved-states/hooks/use-is-dirty';\nexport { default as ErrorBoundary } from './error-boundary';\nexport { default as LocalAutosaveMonitor } from './local-autosave-monitor';\nexport { default as PageAttributesCheck } from './page-attributes/check';\nexport { default as PageAttributesOrder } from './page-attributes/order';\nexport { default as PageAttributesParent } from './page-attributes/parent';\nexport { default as PageTemplate } from './post-template';\nexport { default as PostAuthor } from './post-author';\nexport { default as PostAuthorCheck } from './post-author/check';\nexport { default as PostComments } from './post-comments';\nexport { default as PostExcerpt } from './post-excerpt';\nexport { default as PostExcerptCheck } from './post-excerpt/check';\nexport { default as PostFeaturedImage } from './post-featured-image';\nexport { default as PostFeaturedImageCheck } from './post-featured-image/check';\nexport { default as PostFormat } from './post-format';\nexport { default as PostFormatCheck } from './post-format/check';\nexport { default as PostLastRevision } from './post-last-revision';\nexport { default as PostLastRevisionCheck } from './post-last-revision/check';\nexport { default as PostLockedModal } from './post-locked-modal';\nexport { default as PostPendingStatus } from './post-pending-status';\nexport { default as PostPendingStatusCheck } from './post-pending-status/check';\nexport { default as PostPingbacks } from './post-pingbacks';\nexport { default as PostPreviewButton } from './post-preview-button';\nexport { default as PostPublishButton } from './post-publish-button';\nexport { default as PostPublishButtonLabel } from './post-publish-button/label';\nexport { default as PostPublishPanel } from './post-publish-panel';\nexport { default as PostSavedState } from './post-saved-state';\nexport { default as PostSchedule } from './post-schedule';\nexport { default as PostScheduleCheck } from './post-schedule/check';\nexport {\n\tdefault as PostScheduleLabel,\n\tusePostScheduleLabel,\n} from './post-schedule/label';\nexport { default as PostSlug } from './post-slug';\nexport { default as PostSlugCheck } from './post-slug/check';\nexport { default as PostSticky } from './post-sticky';\nexport { default as PostStickyCheck } from './post-sticky/check';\nexport { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';\nexport {\n\tdefault as PostSyncStatus,\n\tPostSyncStatusModal,\n} from './post-sync-status';\nexport { default as PostTaxonomies } from './post-taxonomies';\nexport { FlatTermSelector as PostTaxonomiesFlatTermSelector } from './post-taxonomies/flat-term-selector';\nexport { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } from './post-taxonomies/hierarchical-term-selector';\nexport { default as PostTaxonomiesCheck } from './post-taxonomies/check';\nexport { default as PostTextEditor } from './post-text-editor';\nexport { default as PostTitle } from './post-title';\nexport { default as PostTrash } from './post-trash';\nexport { default as PostTrashCheck } from './post-trash/check';\nexport { default as PostTypeSupportCheck } from './post-type-support-check';\nexport { default as PostURL } from './post-url';\nexport { default as PostURLCheck } from './post-url/check';\nexport { default as PostURLLabel, usePostURLLabel } from './post-url/label';\nexport { default as PostVisibility } from './post-visibility';\nexport {\n\tdefault as PostVisibilityLabel,\n\tusePostVisibilityLabel,\n} from './post-visibility/label';\nexport { default as PostVisibilityCheck } from './post-visibility/check';\nexport { default as TableOfContents } from './table-of-contents';\nexport { default as ThemeSupportCheck } from './theme-support-check';\nexport { default as UnsavedChangesWarning } from './unsaved-changes-warning';\nexport { default as WordCount } from './word-count';\nexport { default as TimeToRead } from './time-to-read';\nexport { default as CharacterCount } from './character-count';\n\n// State Related Components.\nexport { default as EditorProvider } from './provider';\n\nexport * from './deprecated';\n"]}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { createElement } from "@wordpress/element";
|
|
1
|
+
import { createElement, Fragment } from "@wordpress/element";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
|
-
import { useSelect } from '@wordpress/data';
|
|
6
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
7
7
|
import { __ } from '@wordpress/i18n';
|
|
8
|
-
import { PanelRow } from '@wordpress/components';
|
|
8
|
+
import { PanelRow, Modal, Button, __experimentalHStack as HStack, __experimentalVStack as VStack, ToggleControl } from '@wordpress/components';
|
|
9
|
+
import { useEffect, useState } from '@wordpress/element';
|
|
10
|
+
import { ReusableBlocksRenameHint } from '@wordpress/block-editor';
|
|
9
11
|
/**
|
|
10
12
|
* Internal dependencies
|
|
11
13
|
*/
|
|
@@ -14,24 +16,94 @@ import { store as editorStore } from '../../store';
|
|
|
14
16
|
export default function PostSyncStatus() {
|
|
15
17
|
const {
|
|
16
18
|
syncStatus,
|
|
17
|
-
postType
|
|
19
|
+
postType,
|
|
20
|
+
meta
|
|
18
21
|
} = useSelect(select => {
|
|
19
22
|
const {
|
|
20
23
|
getEditedPostAttribute
|
|
21
24
|
} = select(editorStore);
|
|
22
25
|
return {
|
|
23
26
|
syncStatus: getEditedPostAttribute('wp_pattern_sync_status'),
|
|
27
|
+
meta: getEditedPostAttribute('meta'),
|
|
24
28
|
postType: getEditedPostAttribute('type')
|
|
25
29
|
};
|
|
26
|
-
}
|
|
30
|
+
});
|
|
27
31
|
|
|
28
32
|
if (postType !== 'wp_block') {
|
|
29
33
|
return null;
|
|
30
|
-
}
|
|
34
|
+
} // When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.
|
|
35
|
+
|
|
31
36
|
|
|
32
|
-
const
|
|
37
|
+
const currentSyncStatus = meta?.wp_pattern_sync_status === 'unsynced' ? 'unsynced' : syncStatus;
|
|
33
38
|
return createElement(PanelRow, {
|
|
34
39
|
className: "edit-post-sync-status"
|
|
35
|
-
}, createElement("span", null, __('Sync status')), createElement("div", null,
|
|
40
|
+
}, createElement("span", null, __('Sync status')), createElement("div", null, currentSyncStatus === 'unsynced' ? __('Not synced') : __('Fully synced')));
|
|
41
|
+
}
|
|
42
|
+
export function PostSyncStatusModal() {
|
|
43
|
+
const {
|
|
44
|
+
editPost
|
|
45
|
+
} = useDispatch(editorStore);
|
|
46
|
+
const [isModalOpen, setIsModalOpen] = useState(false);
|
|
47
|
+
const [syncType, setSyncType] = useState(undefined);
|
|
48
|
+
const {
|
|
49
|
+
postType,
|
|
50
|
+
isNewPost
|
|
51
|
+
} = useSelect(select => {
|
|
52
|
+
const {
|
|
53
|
+
getEditedPostAttribute,
|
|
54
|
+
isCleanNewPost
|
|
55
|
+
} = select(editorStore);
|
|
56
|
+
return {
|
|
57
|
+
postType: getEditedPostAttribute('type'),
|
|
58
|
+
isNewPost: isCleanNewPost()
|
|
59
|
+
};
|
|
60
|
+
}, []);
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (isNewPost && postType === 'wp_block') {
|
|
63
|
+
setIsModalOpen(true);
|
|
64
|
+
} // We only want the modal to open when the page is first loaded.
|
|
65
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
66
|
+
|
|
67
|
+
}, []);
|
|
68
|
+
|
|
69
|
+
const setSyncStatus = () => {
|
|
70
|
+
editPost({
|
|
71
|
+
meta: {
|
|
72
|
+
wp_pattern_sync_status: syncType
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
if (postType !== 'wp_block' || !isNewPost) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return createElement(Fragment, null, isModalOpen && createElement(Modal, {
|
|
82
|
+
title: __('Set pattern sync status'),
|
|
83
|
+
onRequestClose: () => {
|
|
84
|
+
setIsModalOpen(false);
|
|
85
|
+
},
|
|
86
|
+
overlayClassName: "reusable-blocks-menu-items__convert-modal"
|
|
87
|
+
}, createElement("form", {
|
|
88
|
+
onSubmit: event => {
|
|
89
|
+
event.preventDefault();
|
|
90
|
+
setIsModalOpen(false);
|
|
91
|
+
setSyncStatus();
|
|
92
|
+
}
|
|
93
|
+
}, createElement(VStack, {
|
|
94
|
+
spacing: "5"
|
|
95
|
+
}, createElement(ReusableBlocksRenameHint, null), createElement(ToggleControl, {
|
|
96
|
+
label: __('Synced'),
|
|
97
|
+
help: __('Editing the pattern will update it anywhere it is used.'),
|
|
98
|
+
checked: !syncType,
|
|
99
|
+
onChange: () => {
|
|
100
|
+
setSyncType(!syncType ? 'unsynced' : undefined);
|
|
101
|
+
}
|
|
102
|
+
}), createElement(HStack, {
|
|
103
|
+
justify: "right"
|
|
104
|
+
}, createElement(Button, {
|
|
105
|
+
variant: "primary",
|
|
106
|
+
type: "submit"
|
|
107
|
+
}, __('Create')))))));
|
|
36
108
|
}
|
|
37
109
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-sync-status/index.js"],"names":["useSelect","__","PanelRow","store","editorStore","PostSyncStatus","syncStatus","postType","select","getEditedPostAttribute","
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-sync-status/index.js"],"names":["useSelect","useDispatch","__","PanelRow","Modal","Button","__experimentalHStack","HStack","__experimentalVStack","VStack","ToggleControl","useEffect","useState","ReusableBlocksRenameHint","store","editorStore","PostSyncStatus","syncStatus","postType","meta","select","getEditedPostAttribute","currentSyncStatus","wp_pattern_sync_status","PostSyncStatusModal","editPost","isModalOpen","setIsModalOpen","syncType","setSyncType","undefined","isNewPost","isCleanNewPost","setSyncStatus","event","preventDefault"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelRow,\n\tModal,\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tToggleControl,\n} from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { ReusableBlocksRenameHint } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostSyncStatus() {\n\tconst { syncStatus, postType, meta } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\treturn {\n\t\t\tsyncStatus: getEditedPostAttribute( 'wp_pattern_sync_status' ),\n\t\t\tmeta: getEditedPostAttribute( 'meta' ),\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t};\n\t} );\n\n\tif ( postType !== 'wp_block' ) {\n\t\treturn null;\n\t}\n\t// When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.\n\tconst currentSyncStatus =\n\t\tmeta?.wp_pattern_sync_status === 'unsynced' ? 'unsynced' : syncStatus;\n\n\treturn (\n\t\t<PanelRow className=\"edit-post-sync-status\">\n\t\t\t<span>{ __( 'Sync status' ) }</span>\n\t\t\t<div>\n\t\t\t\t{ currentSyncStatus === 'unsynced'\n\t\t\t\t\t? __( 'Not synced' )\n\t\t\t\t\t: __( 'Fully synced' ) }\n\t\t\t</div>\n\t\t</PanelRow>\n\t);\n}\n\nexport function PostSyncStatusModal() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst [ syncType, setSyncType ] = useState( undefined );\n\n\tconst { postType, isNewPost } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute, isCleanNewPost } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t\tisNewPost: isCleanNewPost(),\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( isNewPost && postType === 'wp_block' ) {\n\t\t\tsetIsModalOpen( true );\n\t\t}\n\t\t// We only want the modal to open when the page is first loaded.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tconst setSyncStatus = () => {\n\t\teditPost( {\n\t\t\tmeta: {\n\t\t\t\twp_pattern_sync_status: syncType,\n\t\t\t},\n\t\t} );\n\t};\n\n\tif ( postType !== 'wp_block' || ! isNewPost ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Set pattern sync status' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\tsetSyncStatus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<ReusableBlocksRenameHint />\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Synced' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Editing the pattern will update it anywhere it is used.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ ! syncType }\n\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\tsetSyncType(\n\t\t\t\t\t\t\t\t\t\t! syncType ? 'unsynced' : undefined\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/editor",
|
|
3
|
-
"version": "13.12.
|
|
3
|
+
"version": "13.12.7",
|
|
4
4
|
"description": "Enhanced block editor for WordPress posts.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
"@wordpress/a11y": "^3.35.1",
|
|
35
35
|
"@wordpress/api-fetch": "^6.32.1",
|
|
36
36
|
"@wordpress/blob": "^3.35.1",
|
|
37
|
-
"@wordpress/block-editor": "^12.3.
|
|
37
|
+
"@wordpress/block-editor": "^12.3.7",
|
|
38
38
|
"@wordpress/blocks": "^12.12.3",
|
|
39
|
-
"@wordpress/components": "^25.1.
|
|
39
|
+
"@wordpress/components": "^25.1.7",
|
|
40
40
|
"@wordpress/compose": "^6.12.1",
|
|
41
|
-
"@wordpress/core-data": "^6.12.
|
|
41
|
+
"@wordpress/core-data": "^6.12.7",
|
|
42
42
|
"@wordpress/data": "^9.5.3",
|
|
43
43
|
"@wordpress/date": "^4.35.1",
|
|
44
44
|
"@wordpress/deprecated": "^3.35.1",
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
"@wordpress/keycodes": "^3.35.1",
|
|
53
53
|
"@wordpress/media-utils": "^4.26.1",
|
|
54
54
|
"@wordpress/notices": "^4.3.3",
|
|
55
|
-
"@wordpress/preferences": "^3.12.
|
|
55
|
+
"@wordpress/preferences": "^3.12.7",
|
|
56
56
|
"@wordpress/private-apis": "^0.17.1",
|
|
57
|
-
"@wordpress/reusable-blocks": "^4.12.
|
|
58
|
-
"@wordpress/rich-text": "^6.12.
|
|
59
|
-
"@wordpress/server-side-render": "^4.12.
|
|
57
|
+
"@wordpress/reusable-blocks": "^4.12.7",
|
|
58
|
+
"@wordpress/rich-text": "^6.12.4",
|
|
59
|
+
"@wordpress/server-side-render": "^4.12.7",
|
|
60
60
|
"@wordpress/url": "^3.36.1",
|
|
61
61
|
"@wordpress/wordcount": "^3.35.1",
|
|
62
62
|
"classnames": "^2.3.1",
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"publishConfig": {
|
|
74
74
|
"access": "public"
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "5a52ea1ed29bbf8f3ead96f83b17d2c1cf84c880"
|
|
77
77
|
}
|
package/src/components/index.js
CHANGED
|
@@ -51,7 +51,10 @@ export { default as PostSlugCheck } from './post-slug/check';
|
|
|
51
51
|
export { default as PostSticky } from './post-sticky';
|
|
52
52
|
export { default as PostStickyCheck } from './post-sticky/check';
|
|
53
53
|
export { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';
|
|
54
|
-
export {
|
|
54
|
+
export {
|
|
55
|
+
default as PostSyncStatus,
|
|
56
|
+
PostSyncStatusModal,
|
|
57
|
+
} from './post-sync-status';
|
|
55
58
|
export { default as PostTaxonomies } from './post-taxonomies';
|
|
56
59
|
export { FlatTermSelector as PostTaxonomiesFlatTermSelector } from './post-taxonomies/flat-term-selector';
|
|
57
60
|
export { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } from './post-taxonomies/hierarchical-term-selector';
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { useSelect } from '@wordpress/data';
|
|
4
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
5
|
import { __ } from '@wordpress/i18n';
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
PanelRow,
|
|
8
|
+
Modal,
|
|
9
|
+
Button,
|
|
10
|
+
__experimentalHStack as HStack,
|
|
11
|
+
__experimentalVStack as VStack,
|
|
12
|
+
ToggleControl,
|
|
13
|
+
} from '@wordpress/components';
|
|
14
|
+
import { useEffect, useState } from '@wordpress/element';
|
|
15
|
+
import { ReusableBlocksRenameHint } from '@wordpress/block-editor';
|
|
7
16
|
|
|
8
17
|
/**
|
|
9
18
|
* Internal dependencies
|
|
@@ -11,24 +20,108 @@ import { PanelRow } from '@wordpress/components';
|
|
|
11
20
|
import { store as editorStore } from '../../store';
|
|
12
21
|
|
|
13
22
|
export default function PostSyncStatus() {
|
|
14
|
-
const { syncStatus, postType } = useSelect( ( select ) => {
|
|
23
|
+
const { syncStatus, postType, meta } = useSelect( ( select ) => {
|
|
15
24
|
const { getEditedPostAttribute } = select( editorStore );
|
|
16
25
|
return {
|
|
17
26
|
syncStatus: getEditedPostAttribute( 'wp_pattern_sync_status' ),
|
|
27
|
+
meta: getEditedPostAttribute( 'meta' ),
|
|
18
28
|
postType: getEditedPostAttribute( 'type' ),
|
|
19
29
|
};
|
|
20
|
-
}
|
|
30
|
+
} );
|
|
31
|
+
|
|
21
32
|
if ( postType !== 'wp_block' ) {
|
|
22
33
|
return null;
|
|
23
34
|
}
|
|
24
|
-
|
|
35
|
+
// When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.
|
|
36
|
+
const currentSyncStatus =
|
|
37
|
+
meta?.wp_pattern_sync_status === 'unsynced' ? 'unsynced' : syncStatus;
|
|
25
38
|
|
|
26
39
|
return (
|
|
27
40
|
<PanelRow className="edit-post-sync-status">
|
|
28
41
|
<span>{ __( 'Sync status' ) }</span>
|
|
29
42
|
<div>
|
|
30
|
-
{
|
|
43
|
+
{ currentSyncStatus === 'unsynced'
|
|
44
|
+
? __( 'Not synced' )
|
|
45
|
+
: __( 'Fully synced' ) }
|
|
31
46
|
</div>
|
|
32
47
|
</PanelRow>
|
|
33
48
|
);
|
|
34
49
|
}
|
|
50
|
+
|
|
51
|
+
export function PostSyncStatusModal() {
|
|
52
|
+
const { editPost } = useDispatch( editorStore );
|
|
53
|
+
const [ isModalOpen, setIsModalOpen ] = useState( false );
|
|
54
|
+
const [ syncType, setSyncType ] = useState( undefined );
|
|
55
|
+
|
|
56
|
+
const { postType, isNewPost } = useSelect( ( select ) => {
|
|
57
|
+
const { getEditedPostAttribute, isCleanNewPost } =
|
|
58
|
+
select( editorStore );
|
|
59
|
+
return {
|
|
60
|
+
postType: getEditedPostAttribute( 'type' ),
|
|
61
|
+
isNewPost: isCleanNewPost(),
|
|
62
|
+
};
|
|
63
|
+
}, [] );
|
|
64
|
+
|
|
65
|
+
useEffect( () => {
|
|
66
|
+
if ( isNewPost && postType === 'wp_block' ) {
|
|
67
|
+
setIsModalOpen( true );
|
|
68
|
+
}
|
|
69
|
+
// We only want the modal to open when the page is first loaded.
|
|
70
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
71
|
+
}, [] );
|
|
72
|
+
|
|
73
|
+
const setSyncStatus = () => {
|
|
74
|
+
editPost( {
|
|
75
|
+
meta: {
|
|
76
|
+
wp_pattern_sync_status: syncType,
|
|
77
|
+
},
|
|
78
|
+
} );
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
if ( postType !== 'wp_block' || ! isNewPost ) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<>
|
|
87
|
+
{ isModalOpen && (
|
|
88
|
+
<Modal
|
|
89
|
+
title={ __( 'Set pattern sync status' ) }
|
|
90
|
+
onRequestClose={ () => {
|
|
91
|
+
setIsModalOpen( false );
|
|
92
|
+
} }
|
|
93
|
+
overlayClassName="reusable-blocks-menu-items__convert-modal"
|
|
94
|
+
>
|
|
95
|
+
<form
|
|
96
|
+
onSubmit={ ( event ) => {
|
|
97
|
+
event.preventDefault();
|
|
98
|
+
setIsModalOpen( false );
|
|
99
|
+
setSyncStatus();
|
|
100
|
+
} }
|
|
101
|
+
>
|
|
102
|
+
<VStack spacing="5">
|
|
103
|
+
<ReusableBlocksRenameHint />
|
|
104
|
+
<ToggleControl
|
|
105
|
+
label={ __( 'Synced' ) }
|
|
106
|
+
help={ __(
|
|
107
|
+
'Editing the pattern will update it anywhere it is used.'
|
|
108
|
+
) }
|
|
109
|
+
checked={ ! syncType }
|
|
110
|
+
onChange={ () => {
|
|
111
|
+
setSyncType(
|
|
112
|
+
! syncType ? 'unsynced' : undefined
|
|
113
|
+
);
|
|
114
|
+
} }
|
|
115
|
+
/>
|
|
116
|
+
<HStack justify="right">
|
|
117
|
+
<Button variant="primary" type="submit">
|
|
118
|
+
{ __( 'Create' ) }
|
|
119
|
+
</Button>
|
|
120
|
+
</HStack>
|
|
121
|
+
</VStack>
|
|
122
|
+
</form>
|
|
123
|
+
</Modal>
|
|
124
|
+
) }
|
|
125
|
+
</>
|
|
126
|
+
);
|
|
127
|
+
}
|