@razorpay/blade
Version:
The Design System that powers Razorpay
9 lines (6 loc) • 775 B
JavaScript
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import * as React from 'react';
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';
var handoffComplete=false;var id=0;var genId=function genId(){return ++id;};var useId=function useId(prefix,idProp){var initialId=idProp||(handoffComplete?genId():null);var _React$useState=React.useState(initialId),_React$useState2=_slicedToArray(_React$useState,2),uid=_React$useState2[0],setUid=_React$useState2[1];useIsomorphicLayoutEffect(function(){if(uid===null)setUid(genId());},[]);React.useEffect(function(){if(!handoffComplete){handoffComplete=true;}},[]);var id=uid!=null?uid.toString():undefined;return prefix?`${prefix}-${id}`:id;};
export { useId };
//# sourceMappingURL=useId.js.map