@wordpress/editor 12.6.0 → 12.7.0
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/CHANGELOG.md +2 -0
- package/build/components/post-featured-image/index.js +84 -41
- package/build/components/post-featured-image/index.js.map +1 -1
- package/build/components/post-taxonomies/index.js +7 -1
- package/build/components/post-taxonomies/index.js.map +1 -1
- package/build/components/post-text-editor/index.js +11 -0
- package/build/components/post-text-editor/index.js.map +1 -1
- package/build/components/post-visibility/index.js +132 -167
- package/build/components/post-visibility/index.js.map +1 -1
- package/build/components/post-visibility/label.js +5 -22
- package/build/components/post-visibility/label.js.map +1 -1
- package/build/components/post-visibility/utils.js +14 -13
- package/build/components/post-visibility/utils.js.map +1 -1
- package/build-module/components/post-featured-image/index.js +86 -42
- package/build-module/components/post-featured-image/index.js.map +1 -1
- package/build-module/components/post-taxonomies/index.js +7 -1
- package/build-module/components/post-taxonomies/index.js.map +1 -1
- package/build-module/components/post-text-editor/index.js +12 -1
- package/build-module/components/post-text-editor/index.js.map +1 -1
- package/build-module/components/post-visibility/index.js +132 -166
- package/build-module/components/post-visibility/index.js.map +1 -1
- package/build-module/components/post-visibility/label.js +5 -20
- package/build-module/components/post-visibility/label.js.map +1 -1
- package/build-module/components/post-visibility/utils.js +14 -13
- package/build-module/components/post-visibility/utils.js.map +1 -1
- package/build-style/style-rtl.css +42 -51
- package/build-style/style.css +42 -51
- package/package.json +28 -27
- package/src/components/autosave-monitor/test/index.js +3 -0
- package/src/components/post-featured-image/index.js +102 -69
- package/src/components/post-taxonomies/index.js +3 -1
- package/src/components/post-text-editor/index.js +14 -1
- package/src/components/post-visibility/index.js +130 -150
- package/src/components/post-visibility/label.js +6 -15
- package/src/components/post-visibility/style.scss +25 -20
- package/src/components/post-visibility/utils.js +7 -12
|
@@ -11,8 +11,10 @@ import { has, get } from 'lodash';
|
|
|
11
11
|
import { __, sprintf } from '@wordpress/i18n';
|
|
12
12
|
import { applyFilters } from '@wordpress/hooks';
|
|
13
13
|
import { DropZone, Button, Spinner, ResponsiveWrapper, withNotices, withFilters } from '@wordpress/components';
|
|
14
|
+
import { isBlobURL } from '@wordpress/blob';
|
|
15
|
+
import { useState } from '@wordpress/element';
|
|
14
16
|
import { compose } from '@wordpress/compose';
|
|
15
|
-
import {
|
|
17
|
+
import { useSelect, withDispatch, withSelect } from '@wordpress/data';
|
|
16
18
|
import { MediaUpload, MediaUploadCheck, store as blockEditorStore } from '@wordpress/block-editor';
|
|
17
19
|
import { store as coreStore } from '@wordpress/core-data';
|
|
18
20
|
/**
|
|
@@ -29,6 +31,42 @@ const DEFAULT_SET_FEATURE_IMAGE_LABEL = __('Set featured image');
|
|
|
29
31
|
|
|
30
32
|
const DEFAULT_REMOVE_FEATURE_IMAGE_LABEL = __('Remove image');
|
|
31
33
|
|
|
34
|
+
const instructions = createElement("p", null, __('To edit the featured image, you need permission to upload media.'));
|
|
35
|
+
|
|
36
|
+
function getMediaDetails(media, postId) {
|
|
37
|
+
if (!media) {
|
|
38
|
+
return {};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const defaultSize = applyFilters('editor.PostFeaturedImage.imageSize', 'large', media.id, postId);
|
|
42
|
+
|
|
43
|
+
if (has(media, ['media_details', 'sizes', defaultSize])) {
|
|
44
|
+
return {
|
|
45
|
+
mediaWidth: media.media_details.sizes[defaultSize].width,
|
|
46
|
+
mediaHeight: media.media_details.sizes[defaultSize].height,
|
|
47
|
+
mediaSourceUrl: media.media_details.sizes[defaultSize].source_url
|
|
48
|
+
};
|
|
49
|
+
} // Use fallbackSize when defaultSize is not available.
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
const fallbackSize = applyFilters('editor.PostFeaturedImage.imageSize', 'thumbnail', media.id, postId);
|
|
53
|
+
|
|
54
|
+
if (has(media, ['media_details', 'sizes', fallbackSize])) {
|
|
55
|
+
return {
|
|
56
|
+
mediaWidth: media.media_details.sizes[fallbackSize].width,
|
|
57
|
+
mediaHeight: media.media_details.sizes[fallbackSize].height,
|
|
58
|
+
mediaSourceUrl: media.media_details.sizes[fallbackSize].source_url
|
|
59
|
+
};
|
|
60
|
+
} // Use full image size when fallbackSize and defaultSize are not available.
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
mediaWidth: media.media_details.width,
|
|
65
|
+
mediaHeight: media.media_details.height,
|
|
66
|
+
mediaSourceUrl: media.source_url
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
32
70
|
function PostFeaturedImage(_ref) {
|
|
33
71
|
var _media$media_details$, _media$media_details$2;
|
|
34
72
|
|
|
@@ -36,40 +74,46 @@ function PostFeaturedImage(_ref) {
|
|
|
36
74
|
currentPostId,
|
|
37
75
|
featuredImageId,
|
|
38
76
|
onUpdateImage,
|
|
39
|
-
onDropImage,
|
|
40
77
|
onRemoveImage,
|
|
41
78
|
media,
|
|
42
79
|
postType,
|
|
43
|
-
noticeUI
|
|
80
|
+
noticeUI,
|
|
81
|
+
noticeOperations
|
|
44
82
|
} = _ref;
|
|
83
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
84
|
+
const mediaUpload = useSelect(select => {
|
|
85
|
+
return select(blockEditorStore).getSettings().mediaUpload;
|
|
86
|
+
}, []);
|
|
45
87
|
const postLabel = get(postType, ['labels'], {});
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
88
|
+
const {
|
|
89
|
+
mediaWidth,
|
|
90
|
+
mediaHeight,
|
|
91
|
+
mediaSourceUrl
|
|
92
|
+
} = getMediaDetails(media, currentPostId);
|
|
93
|
+
|
|
94
|
+
function onDropFiles(filesList) {
|
|
95
|
+
mediaUpload({
|
|
96
|
+
allowedTypes: ['image'],
|
|
97
|
+
filesList,
|
|
98
|
+
|
|
99
|
+
onFileChange(_ref2) {
|
|
100
|
+
let [image] = _ref2;
|
|
101
|
+
|
|
102
|
+
if (isBlobURL(image === null || image === void 0 ? void 0 : image.url)) {
|
|
103
|
+
setIsLoading(true);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
onUpdateImage(image);
|
|
108
|
+
setIsLoading(false);
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
onError(message) {
|
|
112
|
+
noticeOperations.removeAllNotices();
|
|
113
|
+
noticeOperations.createErrorNotice(message);
|
|
71
114
|
}
|
|
72
|
-
|
|
115
|
+
|
|
116
|
+
});
|
|
73
117
|
}
|
|
74
118
|
|
|
75
119
|
return createElement(PostFeaturedImageCheck, null, noticeUI, createElement("div", {
|
|
@@ -87,10 +131,10 @@ function PostFeaturedImage(_ref) {
|
|
|
87
131
|
unstableFeaturedImageFlow: true,
|
|
88
132
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
89
133
|
modalClass: "editor-post-featured-image__media-modal",
|
|
90
|
-
render:
|
|
134
|
+
render: _ref3 => {
|
|
91
135
|
let {
|
|
92
136
|
open
|
|
93
|
-
} =
|
|
137
|
+
} = _ref3;
|
|
94
138
|
return createElement("div", {
|
|
95
139
|
className: "editor-post-featured-image__container"
|
|
96
140
|
}, createElement(Button, {
|
|
@@ -105,27 +149,27 @@ function PostFeaturedImage(_ref) {
|
|
|
105
149
|
}, createElement("img", {
|
|
106
150
|
src: mediaSourceUrl,
|
|
107
151
|
alt: ""
|
|
108
|
-
})),
|
|
109
|
-
onFilesDrop:
|
|
152
|
+
})), isLoading && createElement(Spinner, null), !featuredImageId && !isLoading && (postLabel.set_featured_image || DEFAULT_SET_FEATURE_IMAGE_LABEL)), createElement(DropZone, {
|
|
153
|
+
onFilesDrop: onDropFiles
|
|
110
154
|
}));
|
|
111
155
|
},
|
|
112
156
|
value: featuredImageId
|
|
113
|
-
})), !!featuredImageId &&
|
|
157
|
+
})), !!featuredImageId && createElement(MediaUploadCheck, null, media && createElement(MediaUpload, {
|
|
114
158
|
title: postLabel.featured_image || DEFAULT_FEATURE_IMAGE_LABEL,
|
|
115
159
|
onSelect: onUpdateImage,
|
|
116
160
|
unstableFeaturedImageFlow: true,
|
|
117
161
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
118
162
|
modalClass: "editor-post-featured-image__media-modal",
|
|
119
|
-
render:
|
|
163
|
+
render: _ref4 => {
|
|
120
164
|
let {
|
|
121
165
|
open
|
|
122
|
-
} =
|
|
166
|
+
} = _ref4;
|
|
123
167
|
return createElement(Button, {
|
|
124
168
|
onClick: open,
|
|
125
169
|
variant: "secondary"
|
|
126
170
|
}, __('Replace Image'));
|
|
127
171
|
}
|
|
128
|
-
})
|
|
172
|
+
}), createElement(Button, {
|
|
129
173
|
onClick: onRemoveImage,
|
|
130
174
|
variant: "link",
|
|
131
175
|
isDestructive: true
|
|
@@ -151,13 +195,13 @@ const applyWithSelect = withSelect(select => {
|
|
|
151
195
|
featuredImageId
|
|
152
196
|
};
|
|
153
197
|
});
|
|
154
|
-
const applyWithDispatch = withDispatch((dispatch,
|
|
198
|
+
const applyWithDispatch = withDispatch((dispatch, _ref5, _ref6) => {
|
|
155
199
|
let {
|
|
156
200
|
noticeOperations
|
|
157
|
-
} =
|
|
201
|
+
} = _ref5;
|
|
158
202
|
let {
|
|
159
203
|
select
|
|
160
|
-
} =
|
|
204
|
+
} = _ref6;
|
|
161
205
|
const {
|
|
162
206
|
editPost
|
|
163
207
|
} = dispatch(editorStore);
|
|
@@ -173,8 +217,8 @@ const applyWithDispatch = withDispatch((dispatch, _ref4, _ref5) => {
|
|
|
173
217
|
allowedTypes: ['image'],
|
|
174
218
|
filesList,
|
|
175
219
|
|
|
176
|
-
onFileChange(
|
|
177
|
-
let [image] =
|
|
220
|
+
onFileChange(_ref7) {
|
|
221
|
+
let [image] = _ref7;
|
|
178
222
|
editPost({
|
|
179
223
|
featured_media: image.id
|
|
180
224
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-featured-image/index.js"],"names":["has","get","__","sprintf","applyFilters","DropZone","Button","Spinner","ResponsiveWrapper","withNotices","withFilters","compose","withSelect","withDispatch","MediaUpload","MediaUploadCheck","store","blockEditorStore","coreStore","PostFeaturedImageCheck","editorStore","ALLOWED_MEDIA_TYPES","DEFAULT_FEATURE_IMAGE_LABEL","DEFAULT_SET_FEATURE_IMAGE_LABEL","DEFAULT_REMOVE_FEATURE_IMAGE_LABEL","PostFeaturedImage","currentPostId","featuredImageId","onUpdateImage","onDropImage","onRemoveImage","media","postType","noticeUI","postLabel","instructions","mediaWidth","mediaHeight","mediaSourceUrl","mediaSize","id","media_details","sizes","width","height","source_url","fallbackMediaSize","alt_text","full","file","slug","featured_image","open","set_featured_image","isLoading","remove_featured_image","applyWithSelect","select","getMedia","getPostType","getCurrentPostId","getEditedPostAttribute","context","applyWithDispatch","dispatch","noticeOperations","editPost","image","featured_media","filesList","getSettings","mediaUpload","allowedTypes","onFileChange","onError","message","removeAllNotices","createErrorNotice"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { has, get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport {\n\tDropZone,\n\tButton,\n\tSpinner,\n\tResponsiveWrapper,\n\twithNotices,\n\twithFilters,\n} from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFeaturedImageCheck from './check';\nimport { store as editorStore } from '../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n// Used when labels from post type were not yet loaded or when they are not present.\nconst DEFAULT_FEATURE_IMAGE_LABEL = __( 'Featured image' );\nconst DEFAULT_SET_FEATURE_IMAGE_LABEL = __( 'Set featured image' );\nconst DEFAULT_REMOVE_FEATURE_IMAGE_LABEL = __( 'Remove image' );\n\nfunction PostFeaturedImage( {\n\tcurrentPostId,\n\tfeaturedImageId,\n\tonUpdateImage,\n\tonDropImage,\n\tonRemoveImage,\n\tmedia,\n\tpostType,\n\tnoticeUI,\n} ) {\n\tconst postLabel = get( postType, [ 'labels' ], {} );\n\tconst instructions = (\n\t\t<p>\n\t\t\t{ __(\n\t\t\t\t'To edit the featured image, you need permission to upload media.'\n\t\t\t) }\n\t\t</p>\n\t);\n\n\tlet mediaWidth, mediaHeight, mediaSourceUrl;\n\tif ( media ) {\n\t\tconst mediaSize = applyFilters(\n\t\t\t'editor.PostFeaturedImage.imageSize',\n\t\t\t'post-thumbnail',\n\t\t\tmedia.id,\n\t\t\tcurrentPostId\n\t\t);\n\t\tif ( has( media, [ 'media_details', 'sizes', mediaSize ] ) ) {\n\t\t\t// Use mediaSize when available.\n\t\t\tmediaWidth = media.media_details.sizes[ mediaSize ].width;\n\t\t\tmediaHeight = media.media_details.sizes[ mediaSize ].height;\n\t\t\tmediaSourceUrl = media.media_details.sizes[ mediaSize ].source_url;\n\t\t} else {\n\t\t\t// Get fallbackMediaSize if mediaSize is not available.\n\t\t\tconst fallbackMediaSize = applyFilters(\n\t\t\t\t'editor.PostFeaturedImage.imageSize',\n\t\t\t\t'thumbnail',\n\t\t\t\tmedia.id,\n\t\t\t\tcurrentPostId\n\t\t\t);\n\t\t\tif (\n\t\t\t\thas( media, [ 'media_details', 'sizes', fallbackMediaSize ] )\n\t\t\t) {\n\t\t\t\t// Use fallbackMediaSize when mediaSize is not available.\n\t\t\t\tmediaWidth =\n\t\t\t\t\tmedia.media_details.sizes[ fallbackMediaSize ].width;\n\t\t\t\tmediaHeight =\n\t\t\t\t\tmedia.media_details.sizes[ fallbackMediaSize ].height;\n\t\t\t\tmediaSourceUrl =\n\t\t\t\t\tmedia.media_details.sizes[ fallbackMediaSize ].source_url;\n\t\t\t} else {\n\t\t\t\t// Use full image size when mediaFallbackSize and mediaSize are not available.\n\t\t\t\tmediaWidth = media.media_details.width;\n\t\t\t\tmediaHeight = media.media_details.height;\n\t\t\t\tmediaSourceUrl = media.source_url;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (\n\t\t<PostFeaturedImageCheck>\n\t\t\t{ noticeUI }\n\t\t\t<div className=\"editor-post-featured-image\">\n\t\t\t\t{ media && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ `editor-post-featured-image-${ featuredImageId }-describedby` }\n\t\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image alt text.\n\t\t\t\t\t\t\t\t__( 'Current image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image filename.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'The current image has no alternative text. The file name is: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmedia.media_details.sizes?.full?.file ||\n\t\t\t\t\t\t\t\t\tmedia.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<MediaUploadCheck fallback={ instructions }>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tpostLabel.featured_image ||\n\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<div className=\"editor-post-featured-image__container\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? 'editor-post-featured-image__toggle'\n\t\t\t\t\t\t\t\t\t\t\t: 'editor-post-featured-image__preview'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit or update the image' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: `editor-post-featured-image-${ featuredImageId }-describedby`\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\t\t{ !! featuredImageId && media && (\n\t\t\t\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\t\t\t\tnaturalWidth={ mediaWidth }\n\t\t\t\t\t\t\t\t\t\t\tnaturalHeight={ mediaHeight }\n\t\t\t\t\t\t\t\t\t\t\tisInline\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={ mediaSourceUrl }\n\t\t\t\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ !! featuredImageId && ! media && (\n\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! featuredImageId &&\n\t\t\t\t\t\t\t\t\t\t( postLabel.set_featured_image ||\n\t\t\t\t\t\t\t\t\t\t\tDEFAULT_SET_FEATURE_IMAGE_LABEL ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropImage } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ featuredImageId }\n\t\t\t\t\t/>\n\t\t\t\t</MediaUploadCheck>\n\t\t\t\t{ !! featuredImageId && media && ! media.isLoading && (\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\tpostLabel.featured_image ||\n\t\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<Button onClick={ open } variant=\"secondary\">\n\t\t\t\t\t\t\t\t\t{ __( 'Replace Image' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t) }\n\t\t\t\t{ !! featuredImageId && (\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ onRemoveImage }\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postLabel.remove_featured_image ||\n\t\t\t\t\t\t\t\tDEFAULT_REMOVE_FEATURE_IMAGE_LABEL }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PostFeaturedImageCheck>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getMedia, getPostType } = select( coreStore );\n\tconst { getCurrentPostId, getEditedPostAttribute } = select( editorStore );\n\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn {\n\t\tmedia: featuredImageId\n\t\t\t? getMedia( featuredImageId, { context: 'view' } )\n\t\t\t: null,\n\t\tcurrentPostId: getCurrentPostId(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tfeaturedImageId,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch(\n\t( dispatch, { noticeOperations }, { select } ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateImage( image ) {\n\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t},\n\t\t\tonDropImage( filesList ) {\n\t\t\t\tselect( blockEditorStore )\n\t\t\t\t\t.getSettings()\n\t\t\t\t\t.mediaUpload( {\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t\tfilesList,\n\t\t\t\t\t\tonFileChange( [ image ] ) {\n\t\t\t\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t},\n\t\t\tonRemoveImage() {\n\t\t\t\teditPost( { featured_media: 0 } );\n\t\t\t},\n\t\t};\n\t}\n);\n\nexport default compose(\n\twithNotices,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\twithFilters( 'editor.PostFeaturedImage' )\n)( PostFeaturedImage );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-featured-image/index.js"],"names":["has","get","__","sprintf","applyFilters","DropZone","Button","Spinner","ResponsiveWrapper","withNotices","withFilters","isBlobURL","useState","compose","useSelect","withDispatch","withSelect","MediaUpload","MediaUploadCheck","store","blockEditorStore","coreStore","PostFeaturedImageCheck","editorStore","ALLOWED_MEDIA_TYPES","DEFAULT_FEATURE_IMAGE_LABEL","DEFAULT_SET_FEATURE_IMAGE_LABEL","DEFAULT_REMOVE_FEATURE_IMAGE_LABEL","instructions","getMediaDetails","media","postId","defaultSize","id","mediaWidth","media_details","sizes","width","mediaHeight","height","mediaSourceUrl","source_url","fallbackSize","PostFeaturedImage","currentPostId","featuredImageId","onUpdateImage","onRemoveImage","postType","noticeUI","noticeOperations","isLoading","setIsLoading","mediaUpload","select","getSettings","postLabel","onDropFiles","filesList","allowedTypes","onFileChange","image","url","onError","message","removeAllNotices","createErrorNotice","alt_text","full","file","slug","featured_image","open","set_featured_image","remove_featured_image","applyWithSelect","getMedia","getPostType","getCurrentPostId","getEditedPostAttribute","context","applyWithDispatch","dispatch","editPost","featured_media","onDropImage"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { has, get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport {\n\tDropZone,\n\tButton,\n\tSpinner,\n\tResponsiveWrapper,\n\twithNotices,\n\twithFilters,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useState } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { useSelect, withDispatch, withSelect } from '@wordpress/data';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFeaturedImageCheck from './check';\nimport { store as editorStore } from '../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n// Used when labels from post type were not yet loaded or when they are not present.\nconst DEFAULT_FEATURE_IMAGE_LABEL = __( 'Featured image' );\nconst DEFAULT_SET_FEATURE_IMAGE_LABEL = __( 'Set featured image' );\nconst DEFAULT_REMOVE_FEATURE_IMAGE_LABEL = __( 'Remove image' );\n\nconst instructions = (\n\t<p>\n\t\t{ __(\n\t\t\t'To edit the featured image, you need permission to upload media.'\n\t\t) }\n\t</p>\n);\n\nfunction getMediaDetails( media, postId ) {\n\tif ( ! media ) {\n\t\treturn {};\n\t}\n\n\tconst defaultSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'large',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( has( media, [ 'media_details', 'sizes', defaultSize ] ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ defaultSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ defaultSize ].height,\n\t\t\tmediaSourceUrl: media.media_details.sizes[ defaultSize ].source_url,\n\t\t};\n\t}\n\n\t// Use fallbackSize when defaultSize is not available.\n\tconst fallbackSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'thumbnail',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( has( media, [ 'media_details', 'sizes', fallbackSize ] ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ fallbackSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ fallbackSize ].height,\n\t\t\tmediaSourceUrl:\n\t\t\t\tmedia.media_details.sizes[ fallbackSize ].source_url,\n\t\t};\n\t}\n\n\t// Use full image size when fallbackSize and defaultSize are not available.\n\treturn {\n\t\tmediaWidth: media.media_details.width,\n\t\tmediaHeight: media.media_details.height,\n\t\tmediaSourceUrl: media.source_url,\n\t};\n}\n\nfunction PostFeaturedImage( {\n\tcurrentPostId,\n\tfeaturedImageId,\n\tonUpdateImage,\n\tonRemoveImage,\n\tmedia,\n\tpostType,\n\tnoticeUI,\n\tnoticeOperations,\n} ) {\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst postLabel = get( postType, [ 'labels' ], {} );\n\tconst { mediaWidth, mediaHeight, mediaSourceUrl } = getMediaDetails(\n\t\tmedia,\n\t\tcurrentPostId\n\t);\n\n\tfunction onDropFiles( filesList ) {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonUpdateImage( image );\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError( message ) {\n\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PostFeaturedImageCheck>\n\t\t\t{ noticeUI }\n\t\t\t<div className=\"editor-post-featured-image\">\n\t\t\t\t{ media && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ `editor-post-featured-image-${ featuredImageId }-describedby` }\n\t\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image alt text.\n\t\t\t\t\t\t\t\t__( 'Current image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image filename.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'The current image has no alternative text. The file name is: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmedia.media_details.sizes?.full?.file ||\n\t\t\t\t\t\t\t\t\tmedia.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<MediaUploadCheck fallback={ instructions }>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tpostLabel.featured_image ||\n\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<div className=\"editor-post-featured-image__container\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? 'editor-post-featured-image__toggle'\n\t\t\t\t\t\t\t\t\t\t\t: 'editor-post-featured-image__preview'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit or update the image' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: `editor-post-featured-image-${ featuredImageId }-describedby`\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\t\t{ !! featuredImageId && media && (\n\t\t\t\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\t\t\t\tnaturalWidth={ mediaWidth }\n\t\t\t\t\t\t\t\t\t\t\tnaturalHeight={ mediaHeight }\n\t\t\t\t\t\t\t\t\t\t\tisInline\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={ mediaSourceUrl }\n\t\t\t\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t\t{ ! featuredImageId &&\n\t\t\t\t\t\t\t\t\t\t! isLoading &&\n\t\t\t\t\t\t\t\t\t\t( postLabel.set_featured_image ||\n\t\t\t\t\t\t\t\t\t\t\tDEFAULT_SET_FEATURE_IMAGE_LABEL ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ featuredImageId }\n\t\t\t\t\t/>\n\t\t\t\t</MediaUploadCheck>\n\t\t\t\t{ !! featuredImageId && (\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t{ media && (\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\tpostLabel.featured_image ||\n\t\t\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Replace Image' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ onRemoveImage }\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postLabel.remove_featured_image ||\n\t\t\t\t\t\t\t\tDEFAULT_REMOVE_FEATURE_IMAGE_LABEL }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PostFeaturedImageCheck>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getMedia, getPostType } = select( coreStore );\n\tconst { getCurrentPostId, getEditedPostAttribute } = select( editorStore );\n\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn {\n\t\tmedia: featuredImageId\n\t\t\t? getMedia( featuredImageId, { context: 'view' } )\n\t\t\t: null,\n\t\tcurrentPostId: getCurrentPostId(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tfeaturedImageId,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch(\n\t( dispatch, { noticeOperations }, { select } ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateImage( image ) {\n\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t},\n\t\t\tonDropImage( filesList ) {\n\t\t\t\tselect( blockEditorStore )\n\t\t\t\t\t.getSettings()\n\t\t\t\t\t.mediaUpload( {\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t\tfilesList,\n\t\t\t\t\t\tonFileChange( [ image ] ) {\n\t\t\t\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t},\n\t\t\tonRemoveImage() {\n\t\t\t\teditPost( { featured_media: 0 } );\n\t\t\t},\n\t\t};\n\t}\n);\n\nexport default compose(\n\twithNotices,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\twithFilters( 'editor.PostFeaturedImage' )\n)( PostFeaturedImage );\n"]}
|
|
@@ -26,7 +26,13 @@ export function PostTaxonomies(_ref) {
|
|
|
26
26
|
taxonomyWrapper = identity
|
|
27
27
|
} = _ref;
|
|
28
28
|
const availableTaxonomies = filter(taxonomies, taxonomy => includes(taxonomy.types, postType));
|
|
29
|
-
const visibleTaxonomies = filter(availableTaxonomies,
|
|
29
|
+
const visibleTaxonomies = filter(availableTaxonomies, // In some circumstances .visibility can end up as undefined so optional chaining operator required.
|
|
30
|
+
// https://github.com/WordPress/gutenberg/issues/40326
|
|
31
|
+
taxonomy => {
|
|
32
|
+
var _taxonomy$visibility;
|
|
33
|
+
|
|
34
|
+
return (_taxonomy$visibility = taxonomy.visibility) === null || _taxonomy$visibility === void 0 ? void 0 : _taxonomy$visibility.show_ui;
|
|
35
|
+
});
|
|
30
36
|
return visibleTaxonomies.map(taxonomy => {
|
|
31
37
|
const TaxonomyComponent = taxonomy.hierarchical ? HierarchicalTermSelector : FlatTermSelector;
|
|
32
38
|
return createElement(Fragment, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/index.js"],"names":["filter","identity","includes","Fragment","withSelect","compose","store","coreStore","HierarchicalTermSelector","FlatTermSelector","editorStore","PostTaxonomies","postType","taxonomies","taxonomyWrapper","availableTaxonomies","taxonomy","types","visibleTaxonomies","visibility","show_ui","map","TaxonomyComponent","hierarchical","slug","select","getCurrentPostType","getTaxonomies","per_page"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,MAAT,EAAiBC,QAAjB,EAA2BC,QAA3B,QAA2C,QAA3C;AAEA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,wBAAP,MAAqC,8BAArC;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,SAASH,KAAK,IAAII,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,cAAT,OAIH;AAAA,MAJ4B;AAC/BC,IAAAA,QAD+B;AAE/BC,IAAAA,UAF+B;AAG/BC,IAAAA,eAAe,GAAGb;AAHa,GAI5B;AACH,QAAMc,mBAAmB,GAAGf,MAAM,CAAEa,UAAF,EAAgBG,QAAF,IAC/Cd,QAAQ,CAAEc,QAAQ,CAACC,KAAX,EAAkBL,QAAlB,CADyB,CAAlC;AAGA,QAAMM,iBAAiB,GAAGlB,MAAM,CAC/Be,mBAD+B,
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-taxonomies/index.js"],"names":["filter","identity","includes","Fragment","withSelect","compose","store","coreStore","HierarchicalTermSelector","FlatTermSelector","editorStore","PostTaxonomies","postType","taxonomies","taxonomyWrapper","availableTaxonomies","taxonomy","types","visibleTaxonomies","visibility","show_ui","map","TaxonomyComponent","hierarchical","slug","select","getCurrentPostType","getTaxonomies","per_page"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,MAAT,EAAiBC,QAAjB,EAA2BC,QAA3B,QAA2C,QAA3C;AAEA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,UAAT,QAA2B,iBAA3B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,KAAK,IAAIC,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,OAAOC,wBAAP,MAAqC,8BAArC;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,SAASH,KAAK,IAAII,WAAlB,QAAqC,aAArC;AAEA,OAAO,SAASC,cAAT,OAIH;AAAA,MAJ4B;AAC/BC,IAAAA,QAD+B;AAE/BC,IAAAA,UAF+B;AAG/BC,IAAAA,eAAe,GAAGb;AAHa,GAI5B;AACH,QAAMc,mBAAmB,GAAGf,MAAM,CAAEa,UAAF,EAAgBG,QAAF,IAC/Cd,QAAQ,CAAEc,QAAQ,CAACC,KAAX,EAAkBL,QAAlB,CADyB,CAAlC;AAGA,QAAMM,iBAAiB,GAAGlB,MAAM,CAC/Be,mBAD+B,EAE/B;AACA;AACEC,EAAAA,QAAF;AAAA;;AAAA,mCAAgBA,QAAQ,CAACG,UAAzB,yDAAgB,qBAAqBC,OAArC;AAAA,GAJ+B,CAAhC;AAMA,SAAOF,iBAAiB,CAACG,GAAlB,CAAyBL,QAAF,IAAgB;AAC7C,UAAMM,iBAAiB,GAAGN,QAAQ,CAACO,YAAT,GACvBf,wBADuB,GAEvBC,gBAFH;AAGA,WACC,cAAC,QAAD;AAAU,MAAA,GAAG,EAAI,YAAYO,QAAQ,CAACQ,IAAM;AAA5C,OACGV,eAAe,CAChB,cAAC,iBAAD;AAAmB,MAAA,IAAI,EAAGE,QAAQ,CAACQ;AAAnC,MADgB,EAEhBR,QAFgB,CADlB,CADD;AAQA,GAZM,CAAP;AAaA;AAED,eAAeX,OAAO,CAAE,CACvBD,UAAU,CAAIqB,MAAF,IAAc;AACzB,SAAO;AACNb,IAAAA,QAAQ,EAAEa,MAAM,CAAEf,WAAF,CAAN,CAAsBgB,kBAAtB,EADJ;AAENb,IAAAA,UAAU,EAAEY,MAAM,CAAElB,SAAF,CAAN,CAAoBoB,aAApB,CAAmC;AAAEC,MAAAA,QAAQ,EAAE,CAAC;AAAb,KAAnC;AAFN,GAAP;AAIA,CALS,CADa,CAAF,CAAP,CAOVjB,cAPU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { filter, identity, includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport HierarchicalTermSelector from './hierarchical-term-selector';\nimport FlatTermSelector from './flat-term-selector';\nimport { store as editorStore } from '../../store';\n\nexport function PostTaxonomies( {\n\tpostType,\n\ttaxonomies,\n\ttaxonomyWrapper = identity,\n} ) {\n\tconst availableTaxonomies = filter( taxonomies, ( taxonomy ) =>\n\t\tincludes( taxonomy.types, postType )\n\t);\n\tconst visibleTaxonomies = filter(\n\t\tavailableTaxonomies,\n\t\t// In some circumstances .visibility can end up as undefined so optional chaining operator required.\n\t\t// https://github.com/WordPress/gutenberg/issues/40326\n\t\t( taxonomy ) => taxonomy.visibility?.show_ui\n\t);\n\treturn visibleTaxonomies.map( ( taxonomy ) => {\n\t\tconst TaxonomyComponent = taxonomy.hierarchical\n\t\t\t? HierarchicalTermSelector\n\t\t\t: FlatTermSelector;\n\t\treturn (\n\t\t\t<Fragment key={ `taxonomy-${ taxonomy.slug }` }>\n\t\t\t\t{ taxonomyWrapper(\n\t\t\t\t\t<TaxonomyComponent slug={ taxonomy.slug } />,\n\t\t\t\t\ttaxonomy\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t} );\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t\ttaxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t};\n\t} ),\n] )( PostTaxonomies );\n"]}
|
|
@@ -9,7 +9,7 @@ import Textarea from 'react-autosize-textarea';
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { __ } from '@wordpress/i18n';
|
|
12
|
-
import { useState } from '@wordpress/element';
|
|
12
|
+
import { useEffect, useState, useRef } from '@wordpress/element';
|
|
13
13
|
import { parse } from '@wordpress/blocks';
|
|
14
14
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
15
15
|
import { useInstanceId } from '@wordpress/compose';
|
|
@@ -28,6 +28,7 @@ export default function PostTextEditor() {
|
|
|
28
28
|
const [value, setValue] = useState(postContent);
|
|
29
29
|
const [isDirty, setIsDirty] = useState(false);
|
|
30
30
|
const instanceId = useInstanceId(PostTextEditor);
|
|
31
|
+
const valueRef = useRef();
|
|
31
32
|
|
|
32
33
|
if (!isDirty && value !== postContent) {
|
|
33
34
|
setValue(postContent);
|
|
@@ -68,6 +69,16 @@ export default function PostTextEditor() {
|
|
|
68
69
|
}
|
|
69
70
|
};
|
|
70
71
|
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
valueRef.current = value;
|
|
74
|
+
}, [value]); // Ensure changes aren't lost when component unmounts.
|
|
75
|
+
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
return () => {
|
|
78
|
+
const blocks = parse(valueRef.current);
|
|
79
|
+
resetEditorBlocks(blocks);
|
|
80
|
+
};
|
|
81
|
+
}, []);
|
|
71
82
|
return createElement(Fragment, null, createElement(VisuallyHidden, {
|
|
72
83
|
as: "label",
|
|
73
84
|
htmlFor: `post-content-${instanceId}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/editor/src/components/post-text-editor/index.js"],"names":["Textarea","__","useState","parse","useDispatch","useSelect","useInstanceId","VisuallyHidden","store","editorStore","PostTextEditor","postContent","select","getEditedPostContent","editPost","resetEditorBlocks","value","setValue","isDirty","setIsDirty","instanceId","onChange","event","newValue","target","content","stopEditing","blocks"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,QAAP,MAAqB,yBAArB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,
|
|
1
|
+
{"version":3,"sources":["@wordpress/editor/src/components/post-text-editor/index.js"],"names":["Textarea","__","useEffect","useState","useRef","parse","useDispatch","useSelect","useInstanceId","VisuallyHidden","store","editorStore","PostTextEditor","postContent","select","getEditedPostContent","editPost","resetEditorBlocks","value","setValue","isDirty","setIsDirty","instanceId","valueRef","onChange","event","newValue","target","content","stopEditing","blocks","current"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,QAAP,MAAqB,yBAArB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,QAApB,EAA8BC,MAA9B,QAA4C,oBAA5C;AACA,SAASC,KAAT,QAAsB,mBAAtB;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,aAAT,QAA8B,oBAA9B;AACA,SAASC,cAAT,QAA+B,uBAA/B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,aAArC;AAEA,eAAe,SAASC,cAAT,GAA0B;AACxC,QAAMC,WAAW,GAAGN,SAAS,CAC1BO,MAAF,IAAcA,MAAM,CAAEH,WAAF,CAAN,CAAsBI,oBAAtB,EADc,EAE5B,EAF4B,CAA7B;AAKA,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAkCX,WAAW,CAAEK,WAAF,CAAnD;AAEA,QAAM,CAAEO,KAAF,EAASC,QAAT,IAAsBhB,QAAQ,CAAEU,WAAF,CAApC;AACA,QAAM,CAAEO,OAAF,EAAWC,UAAX,IAA0BlB,QAAQ,CAAE,KAAF,CAAxC;AACA,QAAMmB,UAAU,GAAGd,aAAa,CAAEI,cAAF,CAAhC;AACA,QAAMW,QAAQ,GAAGnB,MAAM,EAAvB;;AAEA,MAAK,CAAEgB,OAAF,IAAaF,KAAK,KAAKL,WAA5B,EAA0C;AACzCM,IAAAA,QAAQ,CAAEN,WAAF,CAAR;AACA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACC,QAAMW,QAAQ,GAAKC,KAAF,IAAa;AAC7B,UAAMC,QAAQ,GAAGD,KAAK,CAACE,MAAN,CAAaT,KAA9B;AACAF,IAAAA,QAAQ,CAAE;AAAEY,MAAAA,OAAO,EAAEF;AAAX,KAAF,CAAR;AACAP,IAAAA,QAAQ,CAAEO,QAAF,CAAR;AACAL,IAAAA,UAAU,CAAE,IAAF,CAAV;AACA,GALD;AAOA;AACD;AACA;AACA;AACA;;;AACC,QAAMQ,WAAW,GAAG,MAAM;AACzB,QAAKT,OAAL,EAAe;AACd,YAAMU,MAAM,GAAGzB,KAAK,CAAEa,KAAF,CAApB;AACAD,MAAAA,iBAAiB,CAAEa,MAAF,CAAjB;AACAT,MAAAA,UAAU,CAAE,KAAF,CAAV;AACA;AACD,GAND;;AAQAnB,EAAAA,SAAS,CAAE,MAAM;AAChBqB,IAAAA,QAAQ,CAACQ,OAAT,GAAmBb,KAAnB;AACA,GAFQ,EAEN,CAAEA,KAAF,CAFM,CAAT,CAhDwC,CAoDxC;;AACAhB,EAAAA,SAAS,CAAE,MAAM;AAChB,WAAO,MAAM;AACZ,YAAM4B,MAAM,GAAGzB,KAAK,CAAEkB,QAAQ,CAACQ,OAAX,CAApB;AACAd,MAAAA,iBAAiB,CAAEa,MAAF,CAAjB;AACA,KAHD;AAIA,GALQ,EAKN,EALM,CAAT;AAOA,SACC,8BACC,cAAC,cAAD;AACC,IAAA,EAAE,EAAC,OADJ;AAEC,IAAA,OAAO,EAAI,gBAAgBR,UAAY;AAFxC,KAIGrB,EAAE,CAAE,mBAAF,CAJL,CADD,EAOC,cAAC,QAAD;AACC,IAAA,YAAY,EAAC,KADd;AAEC,IAAA,GAAG,EAAC,MAFL;AAGC,IAAA,KAAK,EAAGiB,KAHT;AAIC,IAAA,QAAQ,EAAGM,QAJZ;AAKC,IAAA,MAAM,EAAGK,WALV;AAMC,IAAA,SAAS,EAAC,yBANX;AAOC,IAAA,EAAE,EAAI,gBAAgBP,UAAY,EAPnC;AAQC,IAAA,WAAW,EAAGrB,EAAE,CAAE,iCAAF;AARjB,IAPD,CADD;AAoBA","sourcesContent":["/**\n * External dependencies\n */\nimport Textarea from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, useRef } from '@wordpress/element';\nimport { parse } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { VisuallyHidden } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostTextEditor() {\n\tconst postContent = useSelect(\n\t\t( select ) => select( editorStore ).getEditedPostContent(),\n\t\t[]\n\t);\n\n\tconst { editPost, resetEditorBlocks } = useDispatch( editorStore );\n\n\tconst [ value, setValue ] = useState( postContent );\n\tconst [ isDirty, setIsDirty ] = useState( false );\n\tconst instanceId = useInstanceId( PostTextEditor );\n\tconst valueRef = useRef();\n\n\tif ( ! isDirty && value !== postContent ) {\n\t\tsetValue( postContent );\n\t}\n\n\t/**\n\t * Handles a textarea change event to notify the onChange prop callback and\n\t * reflect the new value in the component's own state. This marks the start\n\t * of the user's edits, if not already changed, preventing future props\n\t * changes to value from replacing the rendered value. This is expected to\n\t * be followed by a reset to dirty state via `stopEditing`.\n\t *\n\t * @see stopEditing\n\t *\n\t * @param {Event} event Change event.\n\t */\n\tconst onChange = ( event ) => {\n\t\tconst newValue = event.target.value;\n\t\teditPost( { content: newValue } );\n\t\tsetValue( newValue );\n\t\tsetIsDirty( true );\n\t};\n\n\t/**\n\t * Function called when the user has completed their edits, responsible for\n\t * ensuring that changes, if made, are surfaced to the onPersist prop\n\t * callback and resetting dirty state.\n\t */\n\tconst stopEditing = () => {\n\t\tif ( isDirty ) {\n\t\t\tconst blocks = parse( value );\n\t\t\tresetEditorBlocks( blocks );\n\t\t\tsetIsDirty( false );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tvalueRef.current = value;\n\t}, [ value ] );\n\n\t// Ensure changes aren't lost when component unmounts.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tconst blocks = parse( valueRef.current );\n\t\t\tresetEditorBlocks( blocks );\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<VisuallyHidden\n\t\t\t\tas=\"label\"\n\t\t\t\thtmlFor={ `post-content-${ instanceId }` }\n\t\t\t>\n\t\t\t\t{ __( 'Type text or HTML' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t<Textarea\n\t\t\t\tautoComplete=\"off\"\n\t\t\t\tdir=\"auto\"\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonBlur={ stopEditing }\n\t\t\t\tclassName=\"editor-post-text-editor\"\n\t\t\t\tid={ `post-content-${ instanceId }` }\n\t\t\t\tplaceholder={ __( 'Start writing with text or HTML' ) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}
|