Files
grafana/public/app/plugins/datasource/cloudwatch/components/LogsQueryEditor.tsx
Josh Hunt cb948d10e0 CloudWatch: Fix strict Typescript errors (#41160)
* CloudWatch: Fix strict typscript errors

* Update public/app/plugins/datasource/cloudwatch/components/ConfigEditor.tsx

Co-authored-by: Sarah Zinger <sarahzinger@users.noreply.github.com>

* Chore: reduce strict error

* Update ci-check-strict.sh

Co-authored-by: Sarah Zinger <sarahzinger@users.noreply.github.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
2021-11-02 13:16:46 +00:00

63 lines
1.8 KiB
TypeScript

// Libraries
import React, { memo } from 'react';
// Types
import { AbsoluteTimeRange, QueryEditorProps } from '@grafana/data';
import { InlineFormLabel } from '@grafana/ui';
import { CloudWatchDatasource } from '../datasource';
import { CloudWatchJsonData, CloudWatchLogsQuery, CloudWatchQuery } from '../types';
import { CloudWatchLogsQueryField } from './LogsQueryField';
import CloudWatchLink from './CloudWatchLink';
import { css } from '@emotion/css';
type Props = QueryEditorProps<CloudWatchDatasource, CloudWatchQuery, CloudWatchJsonData> & {
allowCustomValue?: boolean;
};
const labelClass = css`
margin-left: 3px;
flex-grow: 0;
`;
export const CloudWatchLogsQueryEditor = memo(function CloudWatchLogsQueryEditor(props: Props) {
const { query, data, datasource, onRunQuery, onChange, exploreId, allowCustomValue = false } = props;
let absolute: AbsoluteTimeRange;
if (data?.request?.range?.from) {
const { range } = data.request;
absolute = {
from: range.from.valueOf(),
to: range.to.valueOf(),
};
} else {
absolute = {
from: Date.now() - 10000,
to: Date.now(),
};
}
return (
<CloudWatchLogsQueryField
exploreId={exploreId}
datasource={datasource}
query={query}
onBlur={() => {}}
onChange={(val: CloudWatchQuery) => {
onChange({ ...val, queryMode: 'Logs' });
}}
onRunQuery={onRunQuery}
history={[]}
data={data}
absoluteRange={absolute}
allowCustomValue={allowCustomValue}
ExtraFieldElement={
<InlineFormLabel className={`gf-form-label--btn ${labelClass}`} width="auto" tooltip="Link to Graph in AWS">
<CloudWatchLink query={query as CloudWatchLogsQuery} panelData={data} datasource={datasource} />
</InlineFormLabel>
}
/>
);
});
export default CloudWatchLogsQueryEditor;