kibana/x-pack/plugins/lens/public/visualization_container.tsx
Brandon Kobel 4584a8b570
Elastic License 2.0 (#90099)
* Updating everything except the license headers themselves

* Applying ESLint rules

* Manually replacing the stragglers
2021-02-03 18:12:39 -08:00

50 lines
1.3 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; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import './visualization_container.scss';
import React from 'react';
import classNames from 'classnames';
interface Props extends React.HTMLAttributes<HTMLDivElement> {
isReady?: boolean;
reportTitle?: string;
reportDescription?: string;
}
/**
* This is a convenience component that wraps rendered Lens visualizations. It adds reporting
* attributes (data-shared-item, data-render-complete, and data-title).
*/
export function VisualizationContainer({
isReady = true,
reportTitle,
reportDescription,
children,
className,
...rest
}: Props) {
const attributes: Partial<{ 'data-title': string; 'data-description': string }> = {};
if (reportTitle) {
attributes['data-title'] = reportTitle;
}
if (reportDescription) {
attributes['data-description'] = reportDescription;
}
return (
<div
data-shared-item
data-render-complete={isReady}
className={classNames(className, 'lnsVisualizationContainer')}
{...attributes}
{...rest}
>
{children}
</div>
);
}