UNPKG

@sanity/ui-workshop

Version:

An environment for designing, reviewing, and quality-testing React components.

88 lines 2.4 kB
import { WorkshopPlugin } from "@sanity/ui-workshop"; /** @beta */ type PerfTestRunFn<TargetType = unknown> = (context: { target: TargetType; }) => Promise<void> | void; /** @internal */ interface PerfTest<TargetType = unknown> { description?: string; name: string; title?: string; ref: React.MutableRefObject<TargetType | null>; run: PerfTestRunFn<TargetType>; } /** @internal */ interface PerfTestResult { name: string; renders: PerfTestRenderResult[]; timing?: { avgDuration: number; sumDuration: number; runs: number; }; } /** @internal */ interface PerfTestDetail { description?: string; name: string; title?: string; } /** * @see React.ProfilerOnRenderCallback * @internal */ interface PerfTestRenderResult { id: string; phase: 'mount' | 'update' | 'nested-update'; actualDuration: number; baseDuration: number; startTime: number; commitTime: number; /** @deprecated - this will be removed in the next major version */ interactions: Set<{ __count: number; id: number; name: string; timestamp: number; }>; } /** @internal */ interface PerfState { results: PerfTestResult[]; activeTest?: string; testDetails: PerfTestDetail[]; tests: PerfTest[]; } /** @internal */ interface PerfContextValue { activeTest?: string; addRenderResult: (testName: string, result: PerfTestRenderResult) => void; clearResults: (testName: string) => void; registerTest: (test: PerfTest) => () => void; results: PerfTestResult[]; runTest: (testName: string) => void; testDetails: PerfTestDetail[]; tests: PerfTest[]; } /** @internal */ /** @internal */ declare function usePerf(): PerfContextValue; /** @beta */ interface PerfTestHookProps<TargetType = unknown> { ref: React.MutableRefObject<TargetType | null>; Wrapper: React.ElementType<{ children?: React.ReactNode; }>; } /** @beta */ interface PerfTestProps<TargetType = unknown> { description?: string; name: string; run: PerfTestRunFn<TargetType>; title?: string; } /** @beta */ declare function usePerfTest<TargetType = unknown>(props: PerfTestProps<TargetType>): PerfTestHookProps<TargetType>; /** @internal */ declare function perfPlugin(): WorkshopPlugin; export { type PerfContextValue, PerfState, PerfTest, PerfTestDetail, PerfTestHookProps, PerfTestProps, PerfTestRenderResult, PerfTestResult, PerfTestRunFn, perfPlugin, usePerf, usePerfTest };