diff --git a/.eslintrc.js b/.eslintrc.js index f0b7d6864bef0..bf27022f13465 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -91,7 +91,6 @@ module.exports = { { files: ['x-pack/plugins/canvas/**/*.{js,ts,tsx}'], rules: { - 'react-hooks/exhaustive-deps': 'off', 'jsx-a11y/click-events-have-key-events': 'off', }, }, diff --git a/x-pack/plugins/canvas/public/apps/workpad/workpad_app/workpad_telemetry.tsx b/x-pack/plugins/canvas/public/apps/workpad/workpad_app/workpad_telemetry.tsx index 47b461f22ad65..3014369d94857 100644 --- a/x-pack/plugins/canvas/public/apps/workpad/workpad_app/workpad_telemetry.tsx +++ b/x-pack/plugins/canvas/public/apps/workpad/workpad_app/workpad_telemetry.tsx @@ -69,6 +69,7 @@ export const withUnconnectedElementsLoadedTelemetry =
(
) =>
function ElementsLoadedTelemetry(props: ElementsLoadedTelemetryProps) {
const { telemetryElementCounts, workpad, telemetryResolvedArgs, ...other } = props;
+ const { error, pending } = telemetryElementCounts;
const [currentWorkpadId, setWorkpadId] = useState (
0
);
- if (
- workpadElementCount === 0 ||
- (resolvedArgsAreForWorkpad && telemetryElementCounts.pending === 0)
- ) {
+ if (workpadElementCount === 0 || (resolvedArgsAreForWorkpad && pending === 0)) {
setHasReported(true);
} else {
setHasReported(false);
}
- } else if (
- !hasReported &&
- telemetryElementCounts.pending === 0 &&
- resolvedArgsAreForWorkpad
- ) {
- if (telemetryElementCounts.error > 0) {
+ } else if (!hasReported && pending === 0 && resolvedArgsAreForWorkpad) {
+ if (error > 0) {
trackMetric(METRIC_TYPE.LOADED, [WorkpadLoadedMetric, WorkpadLoadedWithErrorsMetric]);
} else {
trackMetric(METRIC_TYPE.LOADED, WorkpadLoadedMetric);
}
setHasReported(true);
}
- });
+ }, [currentWorkpadId, hasReported, error, pending, telemetryResolvedArgs, workpad]);
return