diff --git a/packages/jaeger-ui/src/components/DeepDependencies/Graph/DdgNodeContent/__snapshots__/index.test.js.snap b/packages/jaeger-ui/src/components/DeepDependencies/Graph/DdgNodeContent/__snapshots__/index.test.js.snap index 72150326c8..2b6d3f228a 100644 --- a/packages/jaeger-ui/src/components/DeepDependencies/Graph/DdgNodeContent/__snapshots__/index.test.js.snap +++ b/packages/jaeger-ui/src/components/DeepDependencies/Graph/DdgNodeContent/__snapshots__/index.test.js.snap @@ -81,7 +81,6 @@ exports[` omits the operation if it is null 1`] = ` } > @@ -96,7 +95,6 @@ exports[` omits the operation if it is null 1`] = ` } > @@ -155,9 +153,7 @@ exports[` omits the operation if it is null 1`] = ` - + omits the operation if it is null 2`] = ` } > @@ -291,9 +286,7 @@ exports[` omits the operation if it is null 2`] = ` - + renders correctly when decorationValue is a string 1`] } > @@ -383,7 +375,6 @@ exports[` renders correctly when decorationValue is a string 1`] } > @@ -442,9 +433,7 @@ exports[` renders correctly when decorationValue is a string 1`] - + renders correctly when decorationValue is a string 2`] } > @@ -534,7 +522,6 @@ exports[` renders correctly when decorationValue is a string 2`] } > @@ -593,9 +580,7 @@ exports[` renders correctly when decorationValue is a string 2`] - + renders correctly when given decorationProgressbar 1`] } > @@ -685,7 +669,6 @@ exports[` renders correctly when given decorationProgressbar 1`] } > @@ -744,9 +727,7 @@ exports[` renders correctly when given decorationProgressbar 1`] - + renders correctly when given decorationProgressbar 2`] } > @@ -839,7 +819,6 @@ exports[` renders correctly when given decorationProgressbar 2`] } > @@ -898,9 +877,7 @@ exports[` renders correctly when given decorationProgressbar 2`] - + renders correctly when isFocalNode = true and focalNod } > @@ -990,7 +966,6 @@ exports[` renders correctly when isFocalNode = true and focalNod } > @@ -1049,9 +1024,7 @@ exports[` renders correctly when isFocalNode = true and focalNod - + renders correctly when isFocalNode = true and focalNod } > @@ -1141,7 +1113,6 @@ exports[` renders correctly when isFocalNode = true and focalNod } > @@ -1159,9 +1130,7 @@ exports[` renders correctly when isFocalNode = true and focalNod - + renders the number of operations if there are multiple } > @@ -1219,7 +1187,6 @@ exports[` renders the number of operations if there are multiple } > @@ -1278,9 +1245,7 @@ exports[` renders the number of operations if there are multiple - + renders the number of operations if there are multiple } > @@ -1446,9 +1410,7 @@ exports[` renders the number of operations if there are multiple - + render renders 1`] = ` className="Ddg--DetailsPanel--SvcOpHeader" >
render renders detailLink 1`] = ` className="Ddg--DetailsPanel--SvcOpHeader" >
render renders detailLink 1`] = ` rel="noreferrer noopener" target="_blank" > - +
@@ -89,9 +83,7 @@ exports[` render renders detailLink 1`] = ` className="Ddg--DetailsPanel--LoadingWrapper" > render renders details 1`] = ` className="Ddg--DetailsPanel--SvcOpHeader" >
render renders details error 1`] = ` className="Ddg--DetailsPanel--SvcOpHeader" >
render renders omitted array of operations 1`] = ` className="Ddg--DetailsPanel--SvcOpHeader" >
render renders while loading 1`] = ` className="Ddg--DetailsPanel--SvcOpHeader" >
render renders while loading 1`] = ` className="Ddg--DetailsPanel--LoadingWrapper" >
render renders with operation 1`] = ` className="Ddg--DetailsPanel--SvcOpHeader" >
render renders with progressbar 1`] = ` className="Ddg--DetailsPanel--SvcOpHeader" >
{ }; const formatServiceCalls = ( - serviceCalls: TServiceCall[] + serviceCalls: TServiceCall[] = [] ): { nodes: TVertex[]; edges: TEdge[]; @@ -77,10 +77,6 @@ const formatServiceCalls = ( const { classNameIsSmall } = Digraph.propsFactories; export default class DAG extends React.Component { - static defaultProps = { - serviceCalls: [], - }; - private data: { nodes: TVertex[]; edges: TEdge[]; @@ -94,10 +90,10 @@ export default class DAG extends React.Component { useDotEdges: true, }); - constructor(props: TProps) { - super(props); + constructor({ serviceCalls = [] }: TProps) { + super({ serviceCalls }); - this.data = formatServiceCalls(props.serviceCalls); + this.data = formatServiceCalls(serviceCalls); } componentWillUnmount() { diff --git a/packages/jaeger-ui/src/components/DependencyGraph/ForceGraphArrowLink.tsx b/packages/jaeger-ui/src/components/DependencyGraph/ForceGraphArrowLink.tsx index a336740995..48b36a0d24 100644 --- a/packages/jaeger-ui/src/components/DependencyGraph/ForceGraphArrowLink.tsx +++ b/packages/jaeger-ui/src/components/DependencyGraph/ForceGraphArrowLink.tsx @@ -38,47 +38,46 @@ type TProps = { targetRadius?: number; }; -function linkId(link: TLink) { +const linkId = (link: TLink) => { const { source, target } = link; const srcId = typeof source === 'string' ? source : source.id; const targetId = typeof target === 'string' ? target : target.id; return `${srcId}=>${targetId}`; -} +}; -export default class ForceGraphArrowLink extends React.PureComponent { - static defaultProps = { - className: '', - edgeOffset: 2, - opacity: 0.6, - stroke: '#999', - strokeWidth: 1, - targetRadius: 2, - }; +const ForceGraphArrowLink: React.FC = ({ + className = '', + edgeOffset = 2, + opacity = 0.6, + stroke = '#999', + strokeWidth = 1, + targetRadius = 2, + link, + color, + ...spreadable +}) => { + const id = `arrow-${linkId(link)}`; + return ( + + + + {Number(targetRadius) > 0 && ( + + )} + + - render() { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { link, targetRadius, edgeOffset: _, ...spreadable } = this.props; - const id = `arrow-${linkId(link)}`; - return ( - - - - {Number(targetRadius) > 0 && ( - - )} - - + + + ); +}; - - - ); - } -} +export default ForceGraphArrowLink; \ No newline at end of file diff --git a/packages/jaeger-ui/src/components/Monitor/ServicesView/__snapshots__/serviceGraph.test.js.snap b/packages/jaeger-ui/src/components/Monitor/ServicesView/__snapshots__/serviceGraph.test.js.snap index def2f5df7f..d460ba0e65 100644 --- a/packages/jaeger-ui/src/components/Monitor/ServicesView/__snapshots__/serviceGraph.test.js.snap +++ b/packages/jaeger-ui/src/components/Monitor/ServicesView/__snapshots__/serviceGraph.test.js.snap @@ -704,7 +704,6 @@ exports[` Loading indicator is displayed 1`] = ` >
@@ -735,7 +734,6 @@ exports[` Loading indicator is displayed when xDomain is empty 1`] > diff --git a/packages/jaeger-ui/src/components/Monitor/ServicesView/operationDetailsTable/__snapshots__/index.test.js.snap b/packages/jaeger-ui/src/components/Monitor/ServicesView/operationDetailsTable/__snapshots__/index.test.js.snap index ea5255080a..fc43653e88 100644 --- a/packages/jaeger-ui/src/components/Monitor/ServicesView/operationDetailsTable/__snapshots__/index.test.js.snap +++ b/packages/jaeger-ui/src/components/Monitor/ServicesView/operationDetailsTable/__snapshots__/index.test.js.snap @@ -11,7 +11,6 @@ exports[` "Couldn’t fetch data" displayed 1`] = ` exports[` Loading indicator is displayed 1`] = ` `; diff --git a/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/MetricCard.test.js.snap b/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/MetricCard.test.js.snap index b74afc719a..bfdf286020 100644 --- a/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/MetricCard.test.js.snap +++ b/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/MetricCard.test.js.snap @@ -32,9 +32,7 @@ exports[`MetricCard renders as expected when passCount is zero 1`] = ` rel="noreferrer noopener" target="_blank" > - +
@@ -109,9 +107,7 @@ exports[`MetricCard renders as expected with details 1`] = ` rel="noreferrer noopener" target="_blank" > - +
@@ -228,9 +224,7 @@ exports[`MetricCard renders as expected without details 1`] = ` rel="noreferrer noopener" target="_blank" > - +
@@ -305,9 +299,7 @@ exports[`MetricCard renders as expected without details 2`] = ` rel="noreferrer noopener" target="_blank" > - +
diff --git a/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/ScoreCard.test.js.snap b/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/ScoreCard.test.js.snap index 448f6364b9..48c5535765 100644 --- a/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/ScoreCard.test.js.snap +++ b/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/ScoreCard.test.js.snap @@ -25,9 +25,7 @@ exports[`ScoreCard renders as expected when score is below max 1`] = ` target="_blank" > How to improve - + `; @@ -57,9 +55,7 @@ exports[`ScoreCard renders as expected when score is max 1`] = ` target="_blank" > Great! What does this mean - + `; @@ -90,9 +86,7 @@ exports[`ScoreCard renders as expected when score is zero 1`] = ` target="_blank" > How to improve - + `; diff --git a/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/index.test.js.snap b/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/index.test.js.snap index 54a3975b79..fbc8341847 100644 --- a/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/index.test.js.snap +++ b/packages/jaeger-ui/src/components/QualityMetrics/__snapshots__/index.test.js.snap @@ -44,7 +44,6 @@ exports[`QualityMetrics UnconnectedQualityMetrics render renders when loading 1` /> `; diff --git a/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/index.tsx b/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/index.tsx index 63fc7c5a30..dd82212579 100644 --- a/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/index.tsx +++ b/packages/jaeger-ui/src/components/SearchTracePage/SearchResults/index.tsx @@ -1,5 +1,3 @@ -// TODO: @ flow - // Copyright (c) 2017 Uber Technologies, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -97,8 +95,6 @@ export function createBlob(rawTraces: TraceData[]) { } export class UnconnectedSearchResults extends React.PureComponent { - static defaultProps = { skipMessage: false, spanLinks: undefined, queryOfResults: undefined }; - toggleComparison = (traceID: string, remove?: boolean) => { const { cohortAddTrace, cohortRemoveTrace } = this.props; if (remove) { diff --git a/packages/jaeger-ui/src/components/TraceDiff/TraceDiffHeader/TraceHeader.tsx b/packages/jaeger-ui/src/components/TraceDiff/TraceDiffHeader/TraceHeader.tsx index 5baba664bb..90215204b2 100644 --- a/packages/jaeger-ui/src/components/TraceDiff/TraceDiffHeader/TraceHeader.tsx +++ b/packages/jaeger-ui/src/components/TraceDiff/TraceDiffHeader/TraceHeader.tsx @@ -75,8 +75,7 @@ export function Attrs(props: AttrsProps) { ); } -export default function TraceHeader(props: Props) { - const { duration, error, startTime, state, traceID, totalSpans, traceName } = props; +export default function TraceHeader({ duration, error = undefined, startTime, state, traceID, totalSpans, traceName }: Props) { const AttrsComponent = state === fetchedState.DONE ? Attrs : EmptyAttrs; return ( @@ -101,7 +100,3 @@ export default function TraceHeader(props: Props) { ); } - -TraceHeader.defaultProps = { - error: undefined, -}; diff --git a/packages/jaeger-ui/src/components/TracePage/TraceGraph/TraceGraph.tsx b/packages/jaeger-ui/src/components/TracePage/TraceGraph/TraceGraph.tsx index 04d39fe924..7eda0e1ce3 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceGraph/TraceGraph.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceGraph/TraceGraph.tsx @@ -119,10 +119,6 @@ export default class TraceGraph extends React.PureComponent { layoutManager: LayoutManager; - static defaultProps = { - ev: null, - }; - constructor(props: Props) { super(props); this.state = { diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanBarRow.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanBarRow.tsx index 310d6aec57..ac8ee27ff5 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanBarRow.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanBarRow.tsx @@ -38,20 +38,20 @@ type SpanBarRowProps = { onChildrenToggled: (spanID: string) => void; numTicks: number; rpc?: - | { - viewStart: number; - viewEnd: number; - color: string; - operationName: string; - serviceName: string; - } - | TNil; + | { + viewStart: number; + viewEnd: number; + color: string; + operationName: string; + serviceName: string; + } + | TNil; noInstrumentedServer?: - | { - color: string; - serviceName: string; - } - | TNil; + | { + color: string; + serviceName: string; + } + | TNil; showErrorIcon: boolean; getViewedBounds: ViewedBoundsFunctionType; traceStartTime: number; @@ -68,11 +68,6 @@ type SpanBarRowProps = { * performance than the stateless function. */ export default class SpanBarRow extends React.PureComponent { - static defaultProps = { - className: '', - rpc: null, - }; - _detailToggle = () => { this.props.onDetailToggled(this.props.span.spanID); }; @@ -83,7 +78,7 @@ export default class SpanBarRow extends React.PureComponent { render() { const { - className, + className = '', color, criticalPath, columnDivision, @@ -91,7 +86,7 @@ export default class SpanBarRow extends React.PureComponent { isDetailExpanded, isMatchingFilter, numTicks, - rpc, + rpc = null, noInstrumentedServer, showErrorIcon, getViewedBounds, @@ -182,9 +177,8 @@ export default class SpanBarRow extends React.PureComponent { {span.subsidiarilyReferencedBy && span.subsidiarilyReferencedBy.length > 0 && ( diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianKeyValues.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianKeyValues.tsx index d099fcaaed..295cca86b8 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianKeyValues.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianKeyValues.tsx @@ -35,7 +35,7 @@ type AccordianKeyValuesProps = { }; // export for tests -export function KeyValuesSummary(props: { data?: KeyValuePair[] }) { +export function KeyValuesSummary(props: { data?: KeyValuePair[] | null }) { const { data } = props; if (!Array.isArray(data) || !data.length) { return null; @@ -55,12 +55,7 @@ export function KeyValuesSummary(props: { data?: KeyValuePair[] }) { ); } -KeyValuesSummary.defaultProps = { - data: null, -}; - -export default function AccordianKeyValues(props: AccordianKeyValuesProps) { - const { className, data, highContrast, interactive, isOpen, label, linksGetter, onToggle } = props; +export default function AccordianKeyValues({ className, data, highContrast = false, interactive = true, isOpen, label, linksGetter, onToggle }: AccordianKeyValuesProps) { const isEmpty = !Array.isArray(data) || !data.length; const iconCls = cx('u-align-icon', { 'AccordianKeyValues--emptyIcon': isEmpty }); let arrow: React.ReactNode | null = null; @@ -93,11 +88,4 @@ export default function AccordianKeyValues(props: AccordianKeyValuesProps) { {isOpen && } ); -} - -AccordianKeyValues.defaultProps = { - className: null, - highContrast: false, - interactive: true, - onToggle: null, -}; +} \ No newline at end of file diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianLogs.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianLogs.tsx index 86b0833193..7d68e27998 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianLogs.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianLogs.tsx @@ -27,7 +27,7 @@ import './AccordianLogs.css'; type AccordianLogsProps = { interactive?: boolean; isOpen: boolean; - linksGetter: ((pairs: KeyValuePair[], index: number) => Link[]) | TNil; + linksGetter?: ((pairs: KeyValuePair[], index: number) => Link[]) | TNil | undefined; logs: Log[]; onItemToggle?: (log: Log) => void; onToggle?: () => void; @@ -35,8 +35,7 @@ type AccordianLogsProps = { timestamp: number; }; -export default function AccordianLogs(props: AccordianLogsProps) { - const { interactive, isOpen, linksGetter, logs, openedItems, onItemToggle, onToggle, timestamp } = props; +export default function AccordianLogs({ interactive = true, isOpen, linksGetter, logs, openedItems = undefined, onItemToggle = undefined, onToggle = undefined, timestamp }: AccordianLogsProps) { let arrow: React.ReactNode | null = null; let HeaderComponent: 'span' | 'a' = 'span'; let headerProps: object | null = null; @@ -83,12 +82,4 @@ export default function AccordianLogs(props: AccordianLogsProps) { )} ); -} - -AccordianLogs.defaultProps = { - interactive: true, - linksGetter: undefined, - onItemToggle: undefined, - onToggle: undefined, - openedItems: undefined, -}; +} \ No newline at end of file diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianReferences.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianReferences.tsx index 82b696fdfd..4db3f08d95 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianReferences.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianReferences.tsx @@ -72,14 +72,8 @@ export function References(props: ReferenceItemProps) { } export default class AccordianReferences extends React.PureComponent { - static defaultProps = { - highContrast: false, - interactive: true, - onToggle: null, - }; - render() { - const { data, highContrast, interactive, isOpen, onToggle, focusSpan } = this.props; + const { data, highContrast = false, interactive = true, isOpen, onToggle = null, focusSpan } = this.props; const isEmpty = !Array.isArray(data) || !data.length; const iconCls = cx('u-align-icon', { 'AccordianKReferences--emptyIcon': isEmpty }); let arrow: React.ReactNode | null = null; diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianText.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianText.tsx index ba21141524..54530ee6cb 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianText.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/AccordianText.tsx @@ -31,8 +31,7 @@ type AccordianTextProps = { onToggle?: null | (() => void); }; -export default function AccordianText(props: AccordianTextProps) { - const { className, data, headerClassName, highContrast, interactive, isOpen, label, onToggle } = props; +export default function AccordianText({ className, data, headerClassName, highContrast = false, interactive = true, isOpen, label, onToggle }: AccordianTextProps) { const isEmpty = !Array.isArray(data) || !data.length; const iconCls = cx('u-align-icon', { 'AccordianKeyValues--emptyIcon': isEmpty }); @@ -63,11 +62,4 @@ export default function AccordianText(props: AccordianTextProps) { {isOpen && } ); -} - -AccordianText.defaultProps = { - className: null, - highContrast: false, - interactive: true, - onToggle: null, -}; +} \ No newline at end of file diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/KeyValuesTable.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/KeyValuesTable.tsx index a1df1628bc..13ebc1b958 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/KeyValuesTable.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanDetail/KeyValuesTable.tsx @@ -116,19 +116,15 @@ function formatValue(key: string, value: any) { return
{content}
; } -export const LinkValue = (props: { href: string; title?: string; children: React.ReactNode }) => ( +export const LinkValue = (props: { href: string; title: string | ''; children: React.ReactNode }) => ( {props.children} ); -LinkValue.defaultProps = { - title: '', -}; - const linkValueList = (links: Link[]) => { const dropdownItems = links.map(({ text, url }, index) => ({ - label: {text}, + label: {text}, key: `${url}-${index}`, })); return dropdownItems; diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanTreeOffset.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanTreeOffset.tsx index b3204572f3..5e24761963 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanTreeOffset.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/SpanTreeOffset.tsx @@ -42,12 +42,6 @@ type TProps = TDispatchProps & { export class UnconnectedSpanTreeOffset extends React.PureComponent { ancestorIds: string[]; - static defaultProps = { - childrenVisible: false, - onClick: undefined, - showChildrenIcon: true, - }; - constructor(props: TProps) { super(props); @@ -94,7 +88,7 @@ export class UnconnectedSpanTreeOffset extends React.PureComponent { }; render() { - const { childrenVisible, onClick, showChildrenIcon, span } = this.props; + const { childrenVisible = false, onClick = undefined, showChildrenIcon = true, span } = this.props; const { hasChildren, spanID } = span; const wrapperProps = hasChildren ? { onClick, role: 'switch', 'aria-checked': childrenVisible } : null; const icon = diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/Ticks.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/Ticks.tsx index d6893be477..c3a20c265a 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/Ticks.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/Ticks.tsx @@ -27,7 +27,7 @@ type TicksProps = { }; export default function Ticks(props: TicksProps) { - const { endTime, numTicks, showLabels, startTime } = props; + const { endTime = null, numTicks, showLabels = null, startTime = null } = props; let labels: undefined | string[]; if (showLabels) { @@ -57,9 +57,3 @@ export default function Ticks(props: TicksProps) { } return
{ticks}
; } - -Ticks.defaultProps = { - endTime: null, - showLabels: null, - startTime: null, -}; diff --git a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/TimelineRow.tsx b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/TimelineRow.tsx index a041119396..5f1b361894 100644 --- a/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/TimelineRow.tsx +++ b/packages/jaeger-ui/src/components/TracePage/TraceTimelineViewer/TimelineRow.tsx @@ -25,11 +25,10 @@ interface ITimelineRowCellProps extends React.HTMLAttributes { children: React.ReactNode; className?: string; width: number; - style?: object; + style?: object | {}; } -export default function TimelineRow(props: TTimelineRowProps) { - const { children, className = '', ...rest } = props; +export default function TimelineRow({ children, className = '', ...rest }: TTimelineRowProps) { return (
{children} @@ -37,12 +36,7 @@ export default function TimelineRow(props: TTimelineRowProps) { ); } -TimelineRow.defaultProps = { - className: '', -}; - -function TimelineRowCell(props: ITimelineRowCellProps) { - const { children, className = '', width, style, ...rest } = props; +function TimelineRowCell({ children, className = '', width, style, ...rest }: ITimelineRowCellProps) { const widthPercent = `${width * 100}%`; const mergedStyle = { ...style, flexBasis: widthPercent, maxWidth: widthPercent }; return ( @@ -52,6 +46,4 @@ function TimelineRowCell(props: ITimelineRowCellProps) { ); } -TimelineRowCell.defaultProps = { className: '', style: {} }; - TimelineRow.Cell = TimelineRowCell; diff --git a/packages/jaeger-ui/src/components/common/BreakableText.tsx b/packages/jaeger-ui/src/components/common/BreakableText.tsx index a9090e5a63..238050b03a 100644 --- a/packages/jaeger-ui/src/components/common/BreakableText.tsx +++ b/packages/jaeger-ui/src/components/common/BreakableText.tsx @@ -24,8 +24,7 @@ type Props = { wordRegexp?: RegExp; }; -export default function BreakableText(props: Props) { - const { className, text, wordRegexp = WORD_RX } = props; +export default function BreakableText({ className = 'BreakableText', text, wordRegexp = WORD_RX }: Props) { if (!text) { return typeof text === 'string' ? text : null; } @@ -42,9 +41,4 @@ export default function BreakableText(props: Props) { match = wordRegexp.exec(text); } return spans; -} - -BreakableText.defaultProps = { - className: 'BreakableText', - wordRegexp: WORD_RX, -}; +} \ No newline at end of file diff --git a/packages/jaeger-ui/src/components/common/ErrorMessage.tsx b/packages/jaeger-ui/src/components/common/ErrorMessage.tsx index cfa7d1dd81..f750db0458 100644 --- a/packages/jaeger-ui/src/components/common/ErrorMessage.tsx +++ b/packages/jaeger-ui/src/components/common/ErrorMessage.tsx @@ -48,8 +48,7 @@ function ErrorAttr({ name, value }: ErrorAttrProps) { ); } -export function Message(props: SubPartProps) { - const { className, error, wrap, wrapperClassName } = props; +export function Message({ className = undefined, error, wrap = false, wrapperClassName = undefined }: SubPartProps) { const cssClass = `ErrorMessage--msg ${className || ''}`; const msg = @@ -66,15 +65,7 @@ export function Message(props: SubPartProps) { return msg; } -Message.defaultProps = { - className: undefined, - wrap: false, - wrapperClassName: undefined, -}; - -export function Details(props: SubPartProps) { - const { className, error, wrap, wrapperClassName } = props; - +export function Details({ className = undefined, error, wrap = false, wrapperClassName = undefined }: SubPartProps) { if (typeof error === 'string') { return null; } @@ -113,17 +104,11 @@ export function Details(props: SubPartProps) { return details; } -Details.defaultProps = { - className: undefined, - wrap: false, - wrapperClassName: undefined, -}; - export default function ErrorMessage({ - className, - detailClassName, + className = undefined, + detailClassName = undefined, error, - messageClassName, + messageClassName = undefined, }: ErrorMessageProps) { if (!error) { return null; @@ -139,10 +124,4 @@ export default function ErrorMessage({
); -} - -ErrorMessage.defaultProps = { - className: undefined, - detailClassName: undefined, - messageClassName: undefined, -}; +} \ No newline at end of file diff --git a/packages/jaeger-ui/src/components/common/LoadingIndicator.tsx b/packages/jaeger-ui/src/components/common/LoadingIndicator.tsx index 282e1188e3..a3e019aaad 100644 --- a/packages/jaeger-ui/src/components/common/LoadingIndicator.tsx +++ b/packages/jaeger-ui/src/components/common/LoadingIndicator.tsx @@ -25,8 +25,7 @@ type LoadingIndicatorProps = { style?: React.CSSProperties; }; -export default function LoadingIndicator(props: LoadingIndicatorProps) { - const { centered, vcentered, className, small, ...rest } = props; +export default function LoadingIndicator({ centered = false, vcentered, className = undefined, small = false, ...rest }: LoadingIndicatorProps) { const cls = ` LoadingIndicator ${centered ? 'is-centered' : ''} @@ -36,9 +35,3 @@ export default function LoadingIndicator(props: LoadingIndicatorProps) { `; return ; } - -LoadingIndicator.defaultProps = { - centered: false, - className: undefined, - small: false, -}; diff --git a/packages/jaeger-ui/src/components/common/NewWindowIcon.tsx b/packages/jaeger-ui/src/components/common/NewWindowIcon.tsx index bbe48f2c7f..4a5dd7037a 100644 --- a/packages/jaeger-ui/src/components/common/NewWindowIcon.tsx +++ b/packages/jaeger-ui/src/components/common/NewWindowIcon.tsx @@ -22,12 +22,7 @@ type Props = { isLarge?: boolean; }; -export default function NewWindowIcon(props: Props) { - const { isLarge, ...rest } = props; +export default function NewWindowIcon({ isLarge = false, ...rest }: Props) { const cls = cx('NewWindowIcon', { 'is-large': isLarge }); return ; } - -NewWindowIcon.defaultProps = { - isLarge: false, -}; diff --git a/packages/jaeger-ui/src/components/common/UiFindInput.tsx b/packages/jaeger-ui/src/components/common/UiFindInput.tsx index 462f7c4511..9d4633a5a2 100644 --- a/packages/jaeger-ui/src/components/common/UiFindInput.tsx +++ b/packages/jaeger-ui/src/components/common/UiFindInput.tsx @@ -46,13 +46,6 @@ type StateType = { }; export class UnconnectedUiFindInput extends React.PureComponent { - static defaultProps: Partial = { - forwardedRef: undefined, - inputProps: {}, - trackFindFunction: undefined, - uiFind: undefined, - }; - state = { ownInputValue: undefined, }; @@ -85,7 +78,8 @@ export class UnconnectedUiFindInput extends React.PureComponent clear renders with clear icon when not required and with renders with is-invalid when required and without a valu renders without exploding 1`] = ` renders without is-invalid when not required and without