diff --git a/src/plugins/embeddable/public/lib/panel/embeddable_panel.tsx b/src/plugins/embeddable/public/lib/panel/embeddable_panel.tsx index 980b17ff17f1c..91846e45525fc 100644 --- a/src/plugins/embeddable/public/lib/panel/embeddable_panel.tsx +++ b/src/plugins/embeddable/public/lib/panel/embeddable_panel.tsx @@ -81,6 +81,7 @@ export class EmbeddablePanel extends React.Component { private embeddableRoot: React.RefObject; private parentSubscription?: Subscription; private subscription?: Subscription; + private drilldownCountSubscription?: Subscription; private mounted: boolean = false; private generateId = htmlIdGenerator(); @@ -154,6 +155,9 @@ export class EmbeddablePanel extends React.Component { if (this.subscription) { this.subscription.unsubscribe(); } + if (this.drilldownCountSubscription) { + this.drilldownCountSubscription.unsubscribe(); + } if (this.parentSubscription) { this.parentSubscription.unsubscribe(); } @@ -210,10 +214,10 @@ export class EmbeddablePanel extends React.Component { const dynamicActions = this.props.embeddable.dynamicActions; if (dynamicActions) { - dynamicActions.count().then(drilldownCount => { - if (this.mounted) { - this.setState({ drilldownCount }); - } + this.setState({ drilldownCount: dynamicActions.state.get().events.length }); + this.drilldownCountSubscription = dynamicActions.state.state$.subscribe(({ events }) => { + if (!this.mounted) return; + this.setState({ drilldownCount: events.length }); }); } } diff --git a/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx b/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx index 6a6a3510602d1..ed1ae739502a7 100644 --- a/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx +++ b/src/plugins/embeddable/public/lib/panel/panel_header/panel_header.tsx @@ -150,7 +150,7 @@ export function PanelHeader({ )} {renderBadges(badges, embeddable)} - {!isViewMode && drilldownCount && ( + {!isViewMode && !!drilldownCount && ( {drilldownCount} diff --git a/src/plugins/ui_actions/public/actions/dynamic_action_manager.ts b/src/plugins/ui_actions/public/actions/dynamic_action_manager.ts index fbeed44b3b731..4853f9edf9919 100644 --- a/src/plugins/ui_actions/public/actions/dynamic_action_manager.ts +++ b/src/plugins/ui_actions/public/actions/dynamic_action_manager.ts @@ -220,7 +220,7 @@ export class DynamicActionManager { /** * @deprecated * - * Use `.state.getState()` instead. + * Use `.state.get().events` instead. */ public async list(): Promise { return this.state.get().events; @@ -229,9 +229,9 @@ export class DynamicActionManager { /** * @deprecated * - * Use `.state.getState()` instead. + * Use `.state.get().events.length` instead. */ public async count(): Promise { - return (await this.list()).length; + return this.state.get().events.length; } }