You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
503 B

import React from 'react';
import { useMemo } from 'use-memo-one';
import type { ContextId } from '../../types';
let count = 0;
export function resetDeprecatedUniqueContextId() {
count = 0;
}
function useDeprecatedUniqueContextId(): ContextId {
return useMemo(() => `${count++}`, []);
}
function useUniqueContextId(): ContextId {
return React.useId();
}
// The useId hook is only available in React 18+
export default 'useId' in React
? useUniqueContextId
: useDeprecatedUniqueContextId;