feat: 🎸 don't show drilldown action in "edit" mode (#69371)

This commit is contained in:
Vadim Dalecky 2020-06-17 14:44:46 +02:00 committed by GitHub
parent 47e50f8102
commit 3ea717a7b3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -17,6 +17,7 @@ import {
defaultEmbeddableFactoryProvider,
EmbeddableContext,
PANEL_NOTIFICATION_TRIGGER,
ViewMode,
} from '../../../../src/plugins/embeddable/public';
import { EnhancedEmbeddable, EnhancedEmbeddableContext } from './types';
import {
@ -106,6 +107,15 @@ export class EmbeddableEnhancedPlugin
);
}
private readonly isEmbeddableContext = (context: unknown): context is EmbeddableContext => {
if (!(context as EmbeddableContext)?.embeddable) {
// eslint-disable-next-line no-console
console.warn('For drilldowns to work action context should contain .embeddable field.');
return false;
}
return true;
};
private enhanceEmbeddableWithDynamicActions<E extends IEmbeddable>(
embeddable: E
): EnhancedEmbeddable<E> {
@ -114,13 +124,9 @@ export class EmbeddableEnhancedPlugin
const storage = new EmbeddableActionStorage(embeddable as EmbeddableWithDynamicActions);
const dynamicActions = new DynamicActionManager({
isCompatible: async (context: unknown) => {
if (!(context as EmbeddableContext)?.embeddable) {
// eslint-disable-next-line no-console
console.warn('For drilldowns to work action context should contain .embeddable field.');
return false;
}
return (context as EmbeddableContext).embeddable.runtimeId === embeddable.runtimeId;
if (!this.isEmbeddableContext(context)) return false;
if (context.embeddable.getInput().viewMode !== ViewMode.VIEW) return false;
return context.embeddable.runtimeId === embeddable.runtimeId;
},
storage,
uiActions: this.uiActions!,