Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
cauemarcondes committed Dec 2, 2019
1 parent ca896ae commit b973951
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
*/

import { getFormattedBuckets } from '../index';
import { IBucket } from '../../../../../../server/lib/transactions/distribution/get_buckets/transform';

describe('Distribution', () => {
it('getFormattedBuckets', () => {
Expand All @@ -30,7 +31,7 @@ describe('Distribution', () => {
}
]
}
];
] as IBucket[];
expect(getFormattedBuckets(buckets, 20)).toEqual([
{ x: 20, x0: 0, y: 0, style: { cursor: 'default' }, samples: [] },
{ x: 40, x0: 20, y: 0, style: { cursor: 'default' }, samples: [] },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export function getFormattedBuckets(buckets: IBucket[], bucketSize: number) {
x: key + bucketSize,
y: count,
style: {
cursor: count > 0 && !isEmpty(samples) ? 'pointer' : 'default'
cursor: isEmpty(samples) ? 'default' : 'pointer'
}
};
}
Expand Down Expand Up @@ -94,17 +94,17 @@ interface Props {
distribution?: TransactionDistributionAPIResponse;
urlParams: IUrlParams;
isLoading: boolean;
onBucketSelected(index: number): void;
bucketIndex: number;
}

export const TransactionDistribution: FunctionComponent<Props> = (
props: Props
) => {
const {
distribution,
urlParams: { transactionId, traceId, transactionType },
urlParams: { transactionType },
isLoading,
onBucketSelected
bucketIndex
} = props;

const formatYShort = useCallback(getFormatYShort(transactionType), [
Expand Down Expand Up @@ -139,16 +139,6 @@ export const TransactionDistribution: FunctionComponent<Props> = (
const xMax = d3.max(buckets, d => d.x) || 0;
const timeFormatter = getDurationFormatter(xMax);

const bucketIndex = buckets.findIndex(bucket => {
const sampleFound = bucket.samples.findIndex(
sample =>
sample.transactionId === transactionId && sample.traceId === traceId
);
return sampleFound !== -1;
});

onBucketSelected(bucketIndex);

return (
<div>
<EuiTitle size="xs">
Expand Down Expand Up @@ -183,7 +173,7 @@ export const TransactionDistribution: FunctionComponent<Props> = (
bucketSize={distribution.bucketSize}
bucketIndex={bucketIndex}
onClick={(bucket: IChartPoint) => {
if (!isEmpty(bucket.samples) && bucket.y > 0) {
if (!isEmpty(bucket.samples)) {
const sample = bucket.samples[0];
history.push({
...history.location,
Expand All @@ -198,12 +188,8 @@ export const TransactionDistribution: FunctionComponent<Props> = (
formatX={(time: number) => timeFormatter(time).formatted}
formatYShort={formatYShort}
formatYLong={formatYLong}
verticalLineHover={(bucket: IChartPoint) =>
bucket.y > 0 && isEmpty(bucket.samples)
}
backgroundHover={(bucket: IChartPoint) =>
bucket.y > 0 && !isEmpty(bucket.samples)
}
verticalLineHover={(bucket: IChartPoint) => isEmpty(bucket.samples)}
backgroundHover={(bucket: IChartPoint) => !isEmpty(bucket.samples)}
tooltipHeader={(bucket: IChartPoint) => {
const xFormatted = timeFormatter(bucket.x);
const x0Formatted = timeFormatter(bucket.x0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,10 @@ import { IBucket } from '../../../../../server/lib/transactions/distribution/get
import { history } from '../../../../utils/history';
import { fromQuery, toQuery } from '../../../shared/Links/url_helpers';
import { MaybeViewTraceLink } from './MaybeViewTraceLink';
import { units, px } from '../../../../style/variables';

const PaginationContainer = styled.div`
margin-left: 4px;
margin-left: ${px(units.quarter)};
display: flex;
align-items: center;
Expand All @@ -39,7 +40,7 @@ const PaginationContainer = styled.div`
}
> span:last-of-type {
margin-right: 8px;
margin-right: ${px(units.half)};
}
`;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
EuiFlexItem
} from '@elastic/eui';
import _ from 'lodash';
import React, { useMemo, useState } from 'react';
import React, { useMemo } from 'react';
import { useTransactionCharts } from '../../../hooks/useTransactionCharts';
import { useTransactionDistribution } from '../../../hooks/useTransactionDistribution';
import { useWaterfall } from '../../../hooks/useWaterfall';
Expand Down Expand Up @@ -61,8 +61,15 @@ export function TransactionDetails() {
return config;
}, [transactionName, transactionType, serviceName]);

const [selectedBucket, setSelectedBucket] = useState(-1);
const traceSamples = distributionData.buckets[selectedBucket]?.samples;
const bucketIndex = distributionData.buckets.findIndex(bucket =>
bucket.samples.some(
sample =>
sample.transactionId === urlParams.transactionId &&
sample.traceId === urlParams.traceId
)
);

const traceSamples = distributionData.buckets[bucketIndex]?.samples;

return (
<div>
Expand Down Expand Up @@ -97,7 +104,7 @@ export function TransactionDetails() {
distribution={distributionData}
isLoading={distributionStatus === FETCH_STATUS.LOADING}
urlParams={urlParams}
onBucketSelected={setSelectedBucket}
bucketIndex={bucketIndex}
/>
</EuiPanel>

Expand Down

0 comments on commit b973951

Please sign in to comment.