4584a8b570
* Updating everything except the license headers themselves * Applying ESLint rules * Manually replacing the stragglers
52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
|
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
|
* Side Public License, v 1.
|
|
*/
|
|
|
|
import React from 'react';
|
|
import ReactDOM from 'react-dom';
|
|
import {
|
|
Container,
|
|
ContainerInput,
|
|
EmbeddableStart,
|
|
} from '../../../../src/plugins/embeddable/public';
|
|
import { ListContainerComponent } from './list_container_component';
|
|
|
|
export const LIST_CONTAINER = 'LIST_CONTAINER';
|
|
|
|
export class ListContainer extends Container<{}, ContainerInput> {
|
|
public readonly type = LIST_CONTAINER;
|
|
private node?: HTMLElement;
|
|
|
|
constructor(input: ContainerInput, private embeddableServices: EmbeddableStart) {
|
|
super(input, { embeddableLoaded: {} }, embeddableServices.getEmbeddableFactory);
|
|
}
|
|
|
|
getInheritedInput() {
|
|
return {
|
|
viewMode: this.input.viewMode,
|
|
};
|
|
}
|
|
|
|
public render(node: HTMLElement) {
|
|
if (this.node) {
|
|
ReactDOM.unmountComponentAtNode(this.node);
|
|
}
|
|
this.node = node;
|
|
ReactDOM.render(
|
|
<ListContainerComponent embeddable={this} embeddableServices={this.embeddableServices} />,
|
|
node
|
|
);
|
|
}
|
|
|
|
public destroy() {
|
|
super.destroy();
|
|
if (this.node) {
|
|
ReactDOM.unmountComponentAtNode(this.node);
|
|
}
|
|
}
|
|
}
|