import React from 'react'; import { Loader, NoContent } from 'UI'; import { widgetHOC, domain, Styles, AvgLabel } from '../common'; import { ResponsiveContainer, AreaChart, XAxis, YAxis, CartesianGrid, Area, Tooltip } from 'recharts'; import { LAST_24_HOURS, LAST_30_MINUTES, YESTERDAY, LAST_7_DAYS } from 'Types/app/period'; import WidgetAutoComplete from 'Shared/WidgetAutoComplete'; import { withRequest } from 'HOCs'; import { toUnderscore } from 'App/utils'; const WIDGET_KEY = 'pagesResponseTime'; const customParams = rangeName => { const params = { density: 70 } if (rangeName === LAST_24_HOURS) params.density = 70 if (rangeName === LAST_30_MINUTES) params.density = 70 if (rangeName === YESTERDAY) params.density = 70 if (rangeName === LAST_7_DAYS) params.density = 70 return params } @withRequest({ dataName: "options", initialData: [], dataWrapper: data => data, // resetBeforeRequest: true, loadingName: "optionsLoading", requestName: "fetchOptions", endpoint: '/dashboard/' + toUnderscore(WIDGET_KEY) + '/search', method: 'GET' }) @widgetHOC(WIDGET_KEY, { customParams }) export default class ResponseTime extends React.PureComponent { onSelect = (params) => { const _params = customParams(this.props.period.rangeName) this.props.fetchWidget(WIDGET_KEY, this.props.period, this.props.platform, {..._params, url: params.value }, this.props.filters) } render() { const { data, loading, optionsLoading, compare = false, showSync = false } = this.props; const colors = compare ? Styles.compareColors : Styles.colors; const gradientDef = Styles.gradientDef(); return (
{gradientDef} `${val}` } label={{ ...Styles.axisLabelLeft, value: "Page Response Time (ms)" }} />
); } }