@prisma-cms/front-editor
Version:
63 lines (62 loc) • 2.97 kB
TypeScript
import React, { PureComponent } from 'react';
import { PrismaCmsContext } from '@prisma-cms/context';
import { EditorContextValue } from './context/EditorContext/interfaces';
import EditorComponent, { EditorComponentObject } from './EditorComponent';
import { FrontEditorProps, FrontEditorState } from './interfaces';
export * from './interfaces';
export * from './EditorComponent';
export * from './context';
export declare function registerComponents<T extends typeof EditorComponent>(_keys: T[]): (p: EditorComponentObject & {
component: typeof _keys[number]['Name'];
components: Array<typeof p>;
}) => EditorComponentObject;
export declare class FrontEditor<P extends FrontEditorProps = FrontEditorProps, S extends FrontEditorState = FrontEditorState> extends PureComponent<P, S> {
context: PrismaCmsContext;
static contextType: React.Context<PrismaCmsContext>;
static defaultProps: Pick<FrontEditorProps, 'itemsOnly' | 'inEditMode' | 'Components' | 'className'>;
/**
* Этот массив используется для быстрого поиска всех отрендеренных компонентов
*/
mountedComponents: EditorComponent[];
actionPanel: HTMLDivElement | undefined;
settingsViewContainer: HTMLDivElement | undefined;
constructor(props: P);
registerMountedComponent: (component: EditorComponent) => void;
setActiveItem: (component: EditorContextValue['activeItem']) => void;
getDragItem: () => S["dragItem"];
getDragTarget: () => S["dragTarget"];
getActiveItem: () => S["activeItem"];
getHoveredItem: () => S["hoveredItem"];
getSettingsViewContainer: () => HTMLDivElement | undefined;
onDragStart: (_event: React.DragEvent, item: EditorComponentObject) => void;
onDragEnd: () => void;
setDragTarget: (component: EditorComponent) => void;
setHoveredItem: (component: EditorComponent | null) => void;
getActionPanel: () => HTMLDivElement | undefined;
unregisterMountedComponent: (component: EditorComponent) => void;
initContext(): EditorContextValue;
updateContext(data: Partial<EditorContextValue>): void;
/**
* @deprecated
*/
getContextValue(name: keyof S['editorContext']): S["editorContext"][keyof S["editorContext"]];
/**
* @deprecated use next/head instead
*/
setPageMeta(_meta?: {}): void;
componentDidUpdate(prevProps: P, prevState: S): void;
prepareComponents(): P['Components'];
settingsViewContainerRef: (el: HTMLDivElement) => void;
renderPanels(): JSX.Element;
renderItems(): JSX.Element | null;
getComponents(): S["Components"];
actionPanelRef: (el: HTMLDivElement) => void;
onWindowClick: () => void;
componentDidMount(): void;
componentWillUnmount(): void;
addEvents(): void;
removeEvents(): void;
stopPropagation: (event: React.MouseEvent<HTMLDivElement>) => void;
render(): JSX.Element;
}
export default FrontEditor;