@wordpress/editor 14.35.1-next.16d95556a.0 → 14.35.2-next.dc3f6d3c1.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 +6 -0
- package/build/components/collab-sidebar/comments.js +57 -14
- package/build/components/collab-sidebar/comments.js.map +2 -2
- package/build/components/global-styles/index.js +8 -8
- package/build/components/global-styles/index.js.map +2 -2
- package/build/components/post-featured-image/index.js +1 -32
- package/build/components/post-featured-image/index.js.map +3 -3
- package/build/components/provider/use-block-editor-settings.js +9 -1
- package/build/components/provider/use-block-editor-settings.js.map +2 -2
- package/build/hooks/media-upload.js +89 -6
- package/build/hooks/media-upload.js.map +3 -3
- package/build-module/components/collab-sidebar/comments.js +57 -14
- package/build-module/components/collab-sidebar/comments.js.map +2 -2
- package/build-module/components/global-styles/index.js +8 -8
- package/build-module/components/global-styles/index.js.map +2 -2
- package/build-module/components/post-featured-image/index.js +3 -35
- package/build-module/components/post-featured-image/index.js.map +2 -2
- package/build-module/components/provider/use-block-editor-settings.js +9 -1
- package/build-module/components/provider/use-block-editor-settings.js.map +2 -2
- package/build-module/hooks/media-upload.js +67 -6
- package/build-module/hooks/media-upload.js.map +2 -2
- package/build-style/style-rtl.css +49 -16
- package/build-style/style.css +49 -16
- package/build-types/components/global-styles/index.d.ts.map +1 -1
- package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
- package/package.json +40 -40
- package/src/bindings/test/post-data.js +199 -0
- package/src/components/collab-sidebar/comments.js +66 -8
- package/src/components/global-styles/index.js +8 -9
- package/src/components/global-styles-sidebar/style.scss +7 -0
- package/src/components/post-featured-image/index.js +1 -44
- package/src/components/provider/use-block-editor-settings.js +8 -0
- package/src/hooks/media-upload.js +75 -7
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -25,19 +25,15 @@ import {
|
|
|
25
25
|
MediaUpload,
|
|
26
26
|
MediaUploadCheck,
|
|
27
27
|
store as blockEditorStore,
|
|
28
|
-
privateApis as blockEditorPrivateApis,
|
|
29
28
|
} from '@wordpress/block-editor';
|
|
30
29
|
import { store as coreStore } from '@wordpress/core-data';
|
|
31
30
|
|
|
32
31
|
/**
|
|
33
32
|
* Internal dependencies
|
|
34
33
|
*/
|
|
35
|
-
import { unlock } from '../../lock-unlock';
|
|
36
34
|
import PostFeaturedImageCheck from './check';
|
|
37
35
|
import { store as editorStore } from '../../store';
|
|
38
36
|
|
|
39
|
-
const { MediaUploadModal } = unlock( blockEditorPrivateApis );
|
|
40
|
-
|
|
41
37
|
const ALLOWED_MEDIA_TYPES = [ 'image' ];
|
|
42
38
|
|
|
43
39
|
// Used when labels from post type were not yet loaded or when they are not present.
|
|
@@ -52,45 +48,6 @@ const instructions = (
|
|
|
52
48
|
</p>
|
|
53
49
|
);
|
|
54
50
|
|
|
55
|
-
/**
|
|
56
|
-
* Conditional Media component that uses MediaUploadModal when experiment is enabled,
|
|
57
|
-
* otherwise falls back to MediaUpload.
|
|
58
|
-
*
|
|
59
|
-
* @param {Object} root0 Component props.
|
|
60
|
-
* @param {Function} root0.render Render prop function that receives { open } object.
|
|
61
|
-
* @return {JSX.Element} The component.
|
|
62
|
-
*/
|
|
63
|
-
function ConditionalMediaUpload( { render, ...props } ) {
|
|
64
|
-
const [ isModalOpen, setIsModalOpen ] = useState( false );
|
|
65
|
-
const mediaUpload = useSelect( ( select ) => {
|
|
66
|
-
const { getSettings } = select( blockEditorStore );
|
|
67
|
-
return getSettings().mediaUpload;
|
|
68
|
-
}, [] );
|
|
69
|
-
|
|
70
|
-
if ( window.__experimentalDataViewsMediaModal ) {
|
|
71
|
-
return (
|
|
72
|
-
<>
|
|
73
|
-
{ render && render( { open: () => setIsModalOpen( true ) } ) }
|
|
74
|
-
<MediaUploadModal
|
|
75
|
-
{ ...props }
|
|
76
|
-
isOpen={ isModalOpen }
|
|
77
|
-
onClose={ () => {
|
|
78
|
-
setIsModalOpen( false );
|
|
79
|
-
props.onClose?.();
|
|
80
|
-
} }
|
|
81
|
-
onSelect={ ( media ) => {
|
|
82
|
-
setIsModalOpen( false );
|
|
83
|
-
props.onSelect?.( media );
|
|
84
|
-
} }
|
|
85
|
-
onUpload={ mediaUpload }
|
|
86
|
-
/>
|
|
87
|
-
</>
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
return <MediaUpload { ...props } render={ render } />;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
51
|
function getMediaDetails( media, postId ) {
|
|
95
52
|
if ( ! media ) {
|
|
96
53
|
return {};
|
|
@@ -224,7 +181,7 @@ function PostFeaturedImage( {
|
|
|
224
181
|
</div>
|
|
225
182
|
) }
|
|
226
183
|
<MediaUploadCheck fallback={ instructions }>
|
|
227
|
-
<
|
|
184
|
+
<MediaUpload
|
|
228
185
|
title={
|
|
229
186
|
postType?.labels?.featured_image ||
|
|
230
187
|
DEFAULT_FEATURE_IMAGE_LABEL
|
|
@@ -96,6 +96,7 @@ const {
|
|
|
96
96
|
reusableBlocksSelectKey,
|
|
97
97
|
sectionRootClientIdKey,
|
|
98
98
|
mediaEditKey,
|
|
99
|
+
getMediaSelectKey,
|
|
99
100
|
} = unlock( privateApis );
|
|
100
101
|
|
|
101
102
|
/**
|
|
@@ -293,6 +294,13 @@ function useBlockEditorSettings( settings, postType, postId, renderingMode ) {
|
|
|
293
294
|
hasFixedToolbar,
|
|
294
295
|
isDistractionFree,
|
|
295
296
|
keepCaretInsideBlock,
|
|
297
|
+
[ getMediaSelectKey ]: ( select, attachmentId ) => {
|
|
298
|
+
return select( coreStore ).getEntityRecord(
|
|
299
|
+
'postType',
|
|
300
|
+
'attachment',
|
|
301
|
+
attachmentId
|
|
302
|
+
);
|
|
303
|
+
},
|
|
296
304
|
[ mediaEditKey ]: hasUploadPermissions
|
|
297
305
|
? editMediaEntity
|
|
298
306
|
: undefined,
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
+
import { Component } from '@wordpress/element';
|
|
4
5
|
import { addFilter } from '@wordpress/hooks';
|
|
6
|
+
import deprecated from '@wordpress/deprecated';
|
|
5
7
|
import {
|
|
6
8
|
MediaUpload,
|
|
7
9
|
privateApis as mediaUtilsPrivateApis,
|
|
@@ -16,16 +18,82 @@ const { MediaUploadModal: MediaUploadModalComponent } = unlock(
|
|
|
16
18
|
mediaUtilsPrivateApis
|
|
17
19
|
);
|
|
18
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Class component wrapper for MediaUploadModal to maintain compatibility
|
|
23
|
+
* with the stable MediaUpload component API (render prop pattern).
|
|
24
|
+
*/
|
|
25
|
+
class MediaUploadModalWrapper extends Component {
|
|
26
|
+
constructor( props ) {
|
|
27
|
+
super( props );
|
|
28
|
+
this.state = {
|
|
29
|
+
isOpen: false,
|
|
30
|
+
};
|
|
31
|
+
this.openModal = this.openModal.bind( this );
|
|
32
|
+
this.closeModal = this.closeModal.bind( this );
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
openModal() {
|
|
36
|
+
this.setState( { isOpen: true } );
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
closeModal() {
|
|
40
|
+
this.setState( { isOpen: false } );
|
|
41
|
+
this.props.onClose?.();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
render() {
|
|
45
|
+
const {
|
|
46
|
+
allowedTypes,
|
|
47
|
+
multiple,
|
|
48
|
+
value,
|
|
49
|
+
onSelect,
|
|
50
|
+
title,
|
|
51
|
+
modalClass,
|
|
52
|
+
render,
|
|
53
|
+
} = this.props;
|
|
54
|
+
const { isOpen } = this.state;
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<>
|
|
58
|
+
{ render( { open: this.openModal } ) }
|
|
59
|
+
<MediaUploadModalComponent
|
|
60
|
+
allowedTypes={ allowedTypes }
|
|
61
|
+
multiple={ multiple }
|
|
62
|
+
value={ value }
|
|
63
|
+
onSelect={ ( media ) => {
|
|
64
|
+
onSelect( media );
|
|
65
|
+
this.closeModal();
|
|
66
|
+
} }
|
|
67
|
+
onClose={ this.closeModal }
|
|
68
|
+
title={ title }
|
|
69
|
+
isOpen={ isOpen }
|
|
70
|
+
modalClass={ modalClass }
|
|
71
|
+
/>
|
|
72
|
+
</>
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
19
77
|
if ( window.__experimentalDataViewsMediaModal ) {
|
|
20
|
-
//
|
|
78
|
+
// Use the wrapper component for editor.MediaUpload when the experimental flag is enabled
|
|
79
|
+
addFilter(
|
|
80
|
+
'editor.MediaUpload',
|
|
81
|
+
'core/editor/components/media-upload',
|
|
82
|
+
() => {
|
|
83
|
+
deprecated( 'Extending MediaUpload as a class component', {
|
|
84
|
+
since: '7.0',
|
|
85
|
+
version: '7.2',
|
|
86
|
+
hint: 'MediaUpload will become a function component in WordPress 7.2 Please update any custom implementations to use function components instead.',
|
|
87
|
+
} );
|
|
88
|
+
return MediaUploadModalWrapper;
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
} else {
|
|
21
92
|
addFilter(
|
|
22
|
-
'editor.
|
|
23
|
-
'core/editor/components/media-upload
|
|
93
|
+
'editor.MediaUpload',
|
|
94
|
+
'core/editor/components/media-upload',
|
|
24
95
|
() => {
|
|
25
|
-
return
|
|
96
|
+
return MediaUpload;
|
|
26
97
|
}
|
|
27
98
|
);
|
|
28
99
|
}
|
|
29
|
-
addFilter( 'editor.MediaUpload', 'core/editor/components/media-upload', () => {
|
|
30
|
-
return MediaUpload;
|
|
31
|
-
} );
|