mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
ErrorBoundary: Support recovering from errors in PanelChrome & PanelRenderer (#40785)
* ErrorBoundary: Support recovering from errors in PanelChrome & PanelRenderer * Rename recover to dependencies * Pushed an update that fixed test and adds new error mode to DebugPanel
This commit is contained in:
@@ -13,18 +13,17 @@ export class DebugPanel extends Component<Props> {
|
||||
render() {
|
||||
const { options } = this.props;
|
||||
|
||||
if (options.mode === DebugMode.Events) {
|
||||
return <EventBusLoggerPanel eventBus={this.props.eventBus} />;
|
||||
switch (options.mode) {
|
||||
case DebugMode.Events:
|
||||
return <EventBusLoggerPanel eventBus={this.props.eventBus} />;
|
||||
case DebugMode.Cursor:
|
||||
return <CursorView eventBus={this.props.eventBus} />;
|
||||
case DebugMode.State:
|
||||
return <StateView {...this.props} />;
|
||||
case DebugMode.ThrowError:
|
||||
throw new Error('I failed you and for that i am deeply sorry');
|
||||
default:
|
||||
return <RenderInfoViewer {...this.props} />;
|
||||
}
|
||||
|
||||
if (options.mode === DebugMode.Cursor) {
|
||||
return <CursorView eventBus={this.props.eventBus} />;
|
||||
}
|
||||
|
||||
if (options.mode === DebugMode.State) {
|
||||
return <StateView {...this.props} />;
|
||||
}
|
||||
|
||||
return <RenderInfoViewer {...this.props} />;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import { DebugMode, DebugPanelOptions } from './types';
|
||||
|
||||
export const plugin = new PanelPlugin<DebugPanelOptions>(DebugPanel).useFieldConfig().setPanelOptions((builder) => {
|
||||
builder
|
||||
.addRadio({
|
||||
.addSelect({
|
||||
path: 'mode',
|
||||
name: 'Mode',
|
||||
defaultValue: DebugMode.Render,
|
||||
@@ -14,7 +14,9 @@ export const plugin = new PanelPlugin<DebugPanelOptions>(DebugPanel).useFieldCon
|
||||
{ label: 'Render', value: DebugMode.Render },
|
||||
{ label: 'Events', value: DebugMode.Events },
|
||||
{ label: 'Cursor', value: DebugMode.Cursor },
|
||||
{ label: 'Cursor', value: DebugMode.Cursor },
|
||||
{ label: 'Share state', value: DebugMode.State },
|
||||
{ label: 'Throw error', value: DebugMode.ThrowError },
|
||||
],
|
||||
},
|
||||
})
|
||||
|
||||
@@ -13,6 +13,7 @@ export enum DebugMode {
|
||||
Events = 'events',
|
||||
Cursor = 'cursor',
|
||||
State = 'State',
|
||||
ThrowError = 'ThrowError',
|
||||
}
|
||||
|
||||
export interface DebugPanelOptions {
|
||||
|
||||
Reference in New Issue
Block a user