Enable media upload

[MAILPOET-5660]
This commit is contained in:
Rostislav Wolny
2023-10-20 14:35:25 +02:00
committed by Jan Lysý
parent 6b7cd39dc1
commit 554b862bf3
3 changed files with 13 additions and 3 deletions

View File

@@ -12,6 +12,7 @@ import {
__experimentalUseResizeCanvas as useResizeCanvas, __experimentalUseResizeCanvas as useResizeCanvas,
BlockSelectionClearer, BlockSelectionClearer,
} from '@wordpress/block-editor'; } from '@wordpress/block-editor';
import { uploadMedia } from '@wordpress/media-utils';
import classnames from 'classnames'; import classnames from 'classnames';
import { useSelect } from '@wordpress/data'; import { useSelect } from '@wordpress/data';
import { import {
@@ -19,8 +20,8 @@ import {
FullscreenMode, FullscreenMode,
InterfaceSkeleton, InterfaceSkeleton,
} from '@wordpress/interface'; } from '@wordpress/interface';
import { useEntityBlockEditor } from '@wordpress/core-data';
import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';
import { storeName } from '../../store'; import { storeName } from '../../store';
import { Sidebar } from '../sidebar/sidebar'; import { Sidebar } from '../sidebar/sidebar';
import { Header } from '../header'; import { Header } from '../header';
@@ -37,6 +38,7 @@ export function BlockEditor() {
isListviewSidebarOpened, isListviewSidebarOpened,
isEmailLoaded, isEmailLoaded,
postId, postId,
canUserEditMedia,
} = useSelect( } = useSelect(
(select) => ({ (select) => ({
isFullscreenActive: select(storeName).isFeatureActive('fullscreenMode'), isFullscreenActive: select(storeName).isFeatureActive('fullscreenMode'),
@@ -47,6 +49,7 @@ export function BlockEditor() {
initialSettings: select(storeName).getInitialEditorSettings(), initialSettings: select(storeName).getInitialEditorSettings(),
previewDeviceType: select(storeName).getPreviewState().deviceType, previewDeviceType: select(storeName).getPreviewState().deviceType,
isEmailLoaded: select(storeName).isEmailLoaded(), isEmailLoaded: select(storeName).isEmailLoaded(),
canUserEditMedia: select(coreStore).canUser('create', 'media'),
}), }),
[], [],
); );
@@ -86,6 +89,11 @@ export function BlockEditor() {
previewDeviceType === 'Desktop' ? layoutBackground : 'transparent', previewDeviceType === 'Desktop' ? layoutBackground : 'transparent',
}; };
const settings = {
...initialSettings,
mediaUpload: canUserEditMedia ? uploadMedia : null,
};
// Do not render editor if email is not loaded yet. // Do not render editor if email is not loaded yet.
if (!isEmailLoaded) { if (!isEmailLoaded) {
return null; return null;
@@ -96,7 +104,7 @@ export function BlockEditor() {
value={blocks} value={blocks}
onInput={onInput} onInput={onInput}
onChange={onChange} onChange={onChange}
settings={initialSettings} settings={settings}
useSubRegistry={false} useSubRegistry={false}
> >
<FullscreenMode isActive={isFullscreenActive} /> <FullscreenMode isActive={isFullscreenActive} />

View File

@@ -33,11 +33,11 @@ function Editor() {
} }
export function initialize(elementId: string) { export function initialize(elementId: string) {
createStore();
const container = document.getElementById(elementId); const container = document.getElementById(elementId);
if (!container) { if (!container) {
return; return;
} }
createStore();
registerCoreBlocks(); registerCoreBlocks();
const root = createRoot(container); const root = createRoot(container);
root.render(<Editor />); root.render(<Editor />);

View File

@@ -64,6 +64,8 @@ class EmailEditor {
// Load CSS from Post Editor // Load CSS from Post Editor
$this->wp->wpEnqueueStyle('wp-edit-post'); $this->wp->wpEnqueueStyle('wp-edit-post');
// Enqueue media library scripts
$this->wp->wpEnqueueMedia();
echo '<div id="mailpoet-email-editor"></div>'; echo '<div id="mailpoet-email-editor"></div>';
} }