Files
twenty_crm/front/src/modules/ui/utilities/debug/components/TimingProfiler.tsx
Charles Bochet 07450df1a1 Add no-console eslint rule (#1890)
* Add no-console eslint rule

* Remove unused test
2023-10-05 21:16:02 +02:00

45 lines
852 B
TypeScript

import { Profiler } from 'react';
import { Interaction } from 'scheduler/tracing';
import { logDebug } from '~/utils/logDebug';
type OwnProps = {
id: string;
children: React.ReactNode;
};
export const TimingProfiler = ({ id, children }: OwnProps) => {
const handleRender = (
id: string,
phase: 'mount' | 'update',
actualDuration: number,
baseDuration: number,
startTime: number,
commitTime: number,
interactions: Set<Interaction>,
) => {
logDebug(
'TimingProfiler',
JSON.stringify(
{
id,
phase,
actualDuration,
baseDuration,
startTime,
commitTime,
interactions,
},
null,
2,
),
);
};
return (
<Profiler id={id} onRender={handleRender}>
{children}
</Profiler>
);
};