Began work on handling panel type switching and keep setting

This commit is contained in:
Torkel Ödegaard
2019-02-17 07:03:42 +01:00
parent 1d4dae7aa8
commit dede40d459
5 changed files with 25 additions and 11 deletions
+7
View File
@@ -25,10 +25,13 @@ export interface PanelEditorProps<T = any> {
onChange: (options: T) => void;
}
export type PreservePanelOptionsHandler<TOptions> = (pluginId: string, prevOptions: any) => Partial<TOptions>;
export class ReactPanelPlugin<TOptions = any> {
panel: ComponentClass<PanelProps<TOptions>>;
editor?: ComponentClass<PanelEditorProps<TOptions>>;
defaults?: TOptions;
preserveOptions?: PreservePanelOptionsHandler<TOptions>;
constructor(panel: ComponentClass<PanelProps<TOptions>>) {
this.panel = panel;
@@ -41,6 +44,10 @@ export class ReactPanelPlugin<TOptions = any> {
setDefaults(defaults: TOptions) {
this.defaults = defaults;
}
setPreserveOptionsHandler(handler: PreservePanelOptionsHandler<TOptions>) {
this.preserveOptions = handler;
}
}
export interface PanelSize {