diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000000..44a2c41f737 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,7 @@ +node_modules +compiled +build +vendor +devenv +data +dist diff --git a/.eslintrc b/.eslintrc index 57c5efa8e15..f5e6138229e 100644 --- a/.eslintrc +++ b/.eslintrc @@ -3,7 +3,7 @@ "root": true, "overrides": [ { - "files": ["packages/**/*.{ts,tsx}", "public/app/**/*.{ts,tsx}"], + "files": ["packages/grafana-ui/**/*.{ts,tsx}", "public/app/**/*.{ts,tsx}"], "rules": { "react-hooks/rules-of-hooks": "off", "react-hooks/exhaustive-deps": "off" diff --git a/package.json b/package.json index 7c55d14db57..e2a6f364eea 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "e2e:debug": "./e2e/start-and-run-suite debug", "e2e:dev": "./e2e/start-and-run-suite dev", "jest": "jest --notify --watch", - "lint": "eslint . --ext .js,.tsx,.ts --cache --ignore-path .gitignore --ignore-pattern devenv", + "lint": "eslint . --ext .js,.tsx,.ts --cache", "jest-ci": "mkdir -p reports/junit && export JEST_JUNIT_OUTPUT_DIR=reports/junit && jest --ci --reporters=default --reporters=jest-junit -w ${TEST_MAX_WORKERS:-100%}", "lint:fix": "yarn lint --fix", "packages:build": "lerna run clean && lerna run build --ignore @grafana-plugins/input-datasource", diff --git a/packages/grafana-toolkit/.eslintrc b/packages/grafana-toolkit/.eslintrc index b12d2a226c9..a465b644a3b 100644 --- a/packages/grafana-toolkit/.eslintrc +++ b/packages/grafana-toolkit/.eslintrc @@ -1,5 +1,14 @@ { "rules": { "no-restricted-imports": ["error", { "patterns": ["@grafana/runtime"] }] - } + }, + "overrides": [ + { + "files": ["./**/*.{ts,tsx}"], + "rules": { + "react-hooks/rules-of-hooks": "off", + "react-hooks/exhaustive-deps": "off" + } + } + ] } diff --git a/packages/jaeger-ui-components/src/TracePageHeader/TracePageHeader.tsx b/packages/jaeger-ui-components/src/TracePageHeader/TracePageHeader.tsx index 6e7deb34702..4158af2f43c 100644 --- a/packages/jaeger-ui-components/src/TracePageHeader/TracePageHeader.tsx +++ b/packages/jaeger-ui-components/src/TracePageHeader/TracePageHeader.tsx @@ -164,14 +164,13 @@ export const HEADER_ITEMS = [ { key: 'timestamp', label: 'Trace Start', - renderer: (trace: Trace) => { - const styles = getStyles(useTheme()); + renderer: (trace: Trace, styles?: ReturnType) => { const dateStr = formatDatetime(trace.startTime); const match = dateStr.match(/^(.+)(:\d\d\.\d+)$/); return match ? ( - + {match[1]} - {match[2]} + {match[2]} ) : ( dateStr @@ -223,22 +222,26 @@ export default function TracePageHeader(props: TracePageHeaderEmbedProps) { hideSearchButtons, } = props; + const styles = getStyles(useTheme()); + const links = useMemo(() => { + if (!trace) { + return []; + } + return getTraceLinks(trace); + }, [trace]); + if (!trace) { return null; } - const links = useMemo(() => getTraceLinks(trace), [trace]); - const summaryItems = !hideSummary && !slimView && HEADER_ITEMS.map(item => { const { renderer, ...rest } = item; - return { ...rest, value: renderer(trace) }; + return { ...rest, value: renderer(trace, styles) }; }); - const styles = getStyles(useTheme()); - const title = (

{' '} diff --git a/packages/jaeger-ui-components/src/TraceTimelineViewer/SpanDetail/AccordianKeyValues.tsx b/packages/jaeger-ui-components/src/TraceTimelineViewer/SpanDetail/AccordianKeyValues.tsx index 802d4ff2ec3..8d15ddec78a 100644 --- a/packages/jaeger-ui-components/src/TraceTimelineViewer/SpanDetail/AccordianKeyValues.tsx +++ b/packages/jaeger-ui-components/src/TraceTimelineViewer/SpanDetail/AccordianKeyValues.tsx @@ -96,10 +96,12 @@ type AccordianKeyValuesProps = { // export for tests export function KeyValuesSummary(props: { data?: TraceKeyValuePair[] }) { const { data } = props; + const styles = getStyles(useTheme()); + if (!Array.isArray(data) || !data.length) { return null; } - const styles = getStyles(useTheme()); + return (
    {data.map((item, i) => (