Set BlockList layout
[MAILPOET-5688]
This commit is contained in:
committed by
Rostislav Wolný
parent
e1df697ce7
commit
aa40d7eb7b
@ -46,6 +46,7 @@ export function BlockEditor() {
|
|||||||
hasFixedToolbar,
|
hasFixedToolbar,
|
||||||
focusMode,
|
focusMode,
|
||||||
layoutStyles,
|
layoutStyles,
|
||||||
|
layout,
|
||||||
} = useSelect(
|
} = useSelect(
|
||||||
(select) => ({
|
(select) => ({
|
||||||
isFullscreenActive: select(storeName).isFeatureActive('fullscreenMode'),
|
isFullscreenActive: select(storeName).isFeatureActive('fullscreenMode'),
|
||||||
@ -60,6 +61,7 @@ export function BlockEditor() {
|
|||||||
hasFixedToolbar: select(storeName).isFeatureActive('fixedToolbar'),
|
hasFixedToolbar: select(storeName).isFeatureActive('fixedToolbar'),
|
||||||
focusMode: select(storeName).isFeatureActive('focusMode'),
|
focusMode: select(storeName).isFeatureActive('focusMode'),
|
||||||
layoutStyles: select(storeName).getLayoutStyles(),
|
layoutStyles: select(storeName).getLayoutStyles(),
|
||||||
|
layout: select(storeName).getLayout(),
|
||||||
}),
|
}),
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
@ -164,7 +166,12 @@ export function BlockEditor() {
|
|||||||
<BlockTools>
|
<BlockTools>
|
||||||
<WritingFlow>
|
<WritingFlow>
|
||||||
<ObserveTyping>
|
<ObserveTyping>
|
||||||
<BlockList className="is-layout-constrained" />
|
<BlockList
|
||||||
|
className="is-layout-constrained"
|
||||||
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||||
|
// @ts-ignore We have an older package of @wordpress/block-editor that doesn't contain the correct type
|
||||||
|
layout={layout}
|
||||||
|
/>
|
||||||
</ObserveTyping>
|
</ObserveTyping>
|
||||||
</WritingFlow>
|
</WritingFlow>
|
||||||
</BlockTools>
|
</BlockTools>
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
import { State } from './types';
|
import { State } from './types';
|
||||||
import { getEditorSettings, getEmailLayoutStyles } from './settings';
|
import {
|
||||||
|
getEditorLayout,
|
||||||
|
getEditorSettings,
|
||||||
|
getEmailLayoutStyles,
|
||||||
|
} from './settings';
|
||||||
|
|
||||||
export function getInitialState(): State {
|
export function getInitialState(): State {
|
||||||
const searchParams = new URLSearchParams(window.location.search);
|
const searchParams = new URLSearchParams(window.location.search);
|
||||||
@ -14,6 +18,7 @@ export function getInitialState(): State {
|
|||||||
postId,
|
postId,
|
||||||
editorSettings: getEditorSettings(),
|
editorSettings: getEditorSettings(),
|
||||||
layoutStyles: getEmailLayoutStyles(),
|
layoutStyles: getEmailLayoutStyles(),
|
||||||
|
layout: getEditorLayout(),
|
||||||
preview: {
|
preview: {
|
||||||
deviceType: 'Desktop',
|
deviceType: 'Desktop',
|
||||||
toEmail: window.MailPoetEmailEditor.current_wp_user_email,
|
toEmail: window.MailPoetEmailEditor.current_wp_user_email,
|
||||||
|
@ -84,3 +84,7 @@ export function getPreviewState(state: State): State['preview'] {
|
|||||||
export function getLayoutStyles(state: State): State['layoutStyles'] {
|
export function getLayoutStyles(state: State): State['layoutStyles'] {
|
||||||
return state.layoutStyles;
|
return state.layoutStyles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getLayout(state: State): State['layout'] {
|
||||||
|
return state.layout;
|
||||||
|
}
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
import { EmailEditorSettings, EmailLayoutStyles } from './types';
|
import {
|
||||||
|
EmailEditorSettings,
|
||||||
|
EmailLayoutStyles,
|
||||||
|
EmailEditorLayout,
|
||||||
|
} from './types';
|
||||||
|
|
||||||
export function getEditorSettings(): EmailEditorSettings {
|
export function getEditorSettings(): EmailEditorSettings {
|
||||||
return window.MailPoetEmailEditor.editor_settings as EmailEditorSettings;
|
return window.MailPoetEmailEditor.editor_settings as EmailEditorSettings;
|
||||||
@ -7,3 +11,7 @@ export function getEditorSettings(): EmailEditorSettings {
|
|||||||
export function getEmailLayoutStyles(): EmailLayoutStyles {
|
export function getEmailLayoutStyles(): EmailLayoutStyles {
|
||||||
return window.MailPoetEmailEditor.email_layout_styles as EmailLayoutStyles;
|
return window.MailPoetEmailEditor.email_layout_styles as EmailLayoutStyles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getEditorLayout(): EmailEditorLayout {
|
||||||
|
return window.MailPoetEmailEditor.editor_layout as EmailEditorLayout;
|
||||||
|
}
|
||||||
|
@ -36,6 +36,11 @@ export type EmailLayoutStyles = {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type EmailEditorLayout = {
|
||||||
|
type: string;
|
||||||
|
contentSize: string;
|
||||||
|
};
|
||||||
|
|
||||||
export type State = {
|
export type State = {
|
||||||
inserterSidebar: {
|
inserterSidebar: {
|
||||||
isOpened: boolean;
|
isOpened: boolean;
|
||||||
@ -46,6 +51,7 @@ export type State = {
|
|||||||
postId: number;
|
postId: number;
|
||||||
editorSettings: EmailEditorSettings;
|
editorSettings: EmailEditorSettings;
|
||||||
layoutStyles: EmailLayoutStyles;
|
layoutStyles: EmailLayoutStyles;
|
||||||
|
layout: EmailEditorLayout;
|
||||||
preview: {
|
preview: {
|
||||||
deviceType: string;
|
deviceType: string;
|
||||||
toEmail: string;
|
toEmail: string;
|
||||||
|
@ -5,6 +5,7 @@ interface Window {
|
|||||||
api_version: string;
|
api_version: string;
|
||||||
current_wp_user_email: string;
|
current_wp_user_email: string;
|
||||||
editor_settings: unknown; // Can't import type in global.d.ts. Typed in getEditorSettings() in store/settings.ts
|
editor_settings: unknown; // Can't import type in global.d.ts. Typed in getEditorSettings() in store/settings.ts
|
||||||
email_layout_styles: unknown; // Can't import type in global.d.ts. Typed in getEditorSettings() in store/settings.ts
|
email_layout_styles: unknown; // Can't import type in global.d.ts. Typed in getEmailLayoutStyles() in store/settings.ts
|
||||||
|
editor_layout: unknown; // Can't import type in global.d.ts. Typed in getEmailLayout() in store/settings.ts
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,7 @@ class EmailEditor {
|
|||||||
'current_wp_user_email' => esc_js($currentUserEmail),
|
'current_wp_user_email' => esc_js($currentUserEmail),
|
||||||
'editor_settings' => $this->settingsController->getSettings(),
|
'editor_settings' => $this->settingsController->getSettings(),
|
||||||
'email_layout_styles' => $this->settingsController->getEmailLayoutStyles(),
|
'email_layout_styles' => $this->settingsController->getEmailLayoutStyles(),
|
||||||
|
'editor_layout' => $this->settingsController->getLayout(),
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -111,6 +111,16 @@ class SettingsController {
|
|||||||
return $settings;
|
return $settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{contentSize: string, layout: string}
|
||||||
|
*/
|
||||||
|
public function getLayout(): array {
|
||||||
|
return [
|
||||||
|
'contentSize' => self::EMAIL_WIDTH,
|
||||||
|
'layout' => 'constrained',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
public function getEmailContentStyles(): array {
|
public function getEmailContentStyles(): array {
|
||||||
return self::DEFAULT_EMAIL_CONTENT_STYLES;
|
return self::DEFAULT_EMAIL_CONTENT_STYLES;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user