Skip to content

Commit

Permalink
Rename embeddable error handler component
Browse files Browse the repository at this point in the history
  • Loading branch information
dokmic committed Oct 28, 2022
1 parent ba705a9 commit 4c290de
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,17 @@ import type { EmbeddableInput, EmbeddableOutput, IEmbeddable } from './i_embedda

type IReactEmbeddable = IEmbeddable<EmbeddableInput, EmbeddableOutput, MaybePromise<ReactNode>>;

interface EmbeddableErrorProps {
interface EmbeddableErrorHandlerProps {
children: IReactEmbeddable['catchError'];
embeddable?: IReactEmbeddable;
error: ErrorLike | string;
}

export function EmbeddableError({ children, embeddable, error }: EmbeddableErrorProps) {
export function EmbeddableErrorHandler({
children,
embeddable,
error,
}: EmbeddableErrorHandlerProps) {
const [node, setNode] = useState<ReactNode>();
const ref = useRef<HTMLDivElement>(null);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { EuiText } from '@elastic/eui';
import { isPromise } from '@kbn/std';
import { MaybePromise } from '@kbn/utility-types';
import { EmbeddableInput, EmbeddableOutput, IEmbeddable } from './i_embeddable';
import { EmbeddableError } from './embeddable_error';
import { EmbeddableErrorHandler } from './embeddable_error_handler';

interface Props {
embeddable?: IEmbeddable<EmbeddableInput, EmbeddableOutput, MaybePromise<ReactNode>>;
Expand Down Expand Up @@ -93,9 +93,9 @@ export class EmbeddableRoot extends React.Component<Props, State> {
<div ref={this.root}>{this.state.node}</div>
{this.props.loading && <EuiLoadingSpinner data-test-subj="embedSpinner" />}
{this.props.error && (
<EmbeddableError embeddable={this.props.embeddable} error={this.props.error}>
<EmbeddableErrorHandler embeddable={this.props.embeddable} error={this.props.error}>
{({ message }) => <EuiText data-test-subj="embedError">{message}</EuiText>}
</EmbeddableError>
</EmbeddableErrorHandler>
)}
</React.Fragment>
);
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/embeddable/public/lib/embeddables/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
export type { EmbeddableOutput, EmbeddableInput, IEmbeddable } from './i_embeddable';
export { isEmbeddable } from './is_embeddable';
export { Embeddable } from './embeddable';
export { EmbeddableError } from './embeddable_error';
export { EmbeddableErrorHandler } from './embeddable_error_handler';
export * from './embeddable_factory';
export * from './embeddable_factory_definition';
export * from './default_embeddable_factory_provider';
Expand Down
11 changes: 8 additions & 3 deletions src/plugins/embeddable/public/lib/panel/embeddable_panel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,12 @@ import {
EmbeddableContext,
contextMenuTrigger,
} from '../triggers';
import { EmbeddableError, EmbeddableInput, EmbeddableOutput, IEmbeddable } from '../embeddables';
import {
EmbeddableErrorHandler,
EmbeddableInput,
EmbeddableOutput,
IEmbeddable,
} from '../embeddables';
import { ViewMode } from '../types';

import { EmbeddablePanelError } from './embeddable_panel_error';
Expand Down Expand Up @@ -309,15 +314,15 @@ export class EmbeddablePanel extends React.Component<Props, State> {
justifyContent="center"
>
<EuiFlexItem>
<EmbeddableError embeddable={this.props.embeddable} error={this.state.error}>
<EmbeddableErrorHandler embeddable={this.props.embeddable} error={this.state.error}>
{(error) => (
<EmbeddablePanelError
editPanelAction={this.state.universalActions.editPanel}
embeddable={this.props.embeddable}
error={error}
/>
)}
</EmbeddableError>
</EmbeddableErrorHandler>
</EuiFlexItem>
</EuiFlexGroup>
)}
Expand Down

0 comments on commit 4c290de

Please sign in to comment.