import React from 'react';
import PropTypes from 'prop-types';
import Editor, { EditorProps } from '../../editor';
import EditorContext from '../../ui/EditorContext';
import WithEditorActions from '../../ui/WithEditorActions';
import EditorActions from '../../actions';
export interface EditorWithActionsPropsOverride extends EditorProps {
onSave?: any;
onChange?: any;
onCancel?: any;
}
export interface EditorWithActionsProps extends EditorWithActionsPropsOverride {
onSave?: (actions: EditorActions) => void;
onChange?: (actions: EditorActions) => void;
onCancel?: (actions: EditorActions) => void;
}
export default class EditorWithActions extends React.Component<
EditorWithActionsProps,
{}
> {
static contextTypes = {
editorActions: PropTypes.object.isRequired,
};
context!: {
editorActions?: EditorActions;
};
handleSave = (actions: EditorActions) => () => {
this.props.onSave!(actions);
};
handleCancel = (actions: EditorActions) => () => {
this.props.onCancel!(actions);
};
handleChange = (actions: EditorActions) => () => {
this.props.onChange!(actions);
};
render() {
if (this.context.editorActions) {
const { editorActions: actions } = this.context;
return (
);
}
return (
(
)}
/>
);
}
}