@wordpress/compose
Version:
WordPress higher-order components (HOCs).
23 lines (22 loc) • 670 B
JavaScript
// packages/compose/src/hooks/use-instance-id/index.ts
import { useMemo } from "@wordpress/element";
var instanceMap = /* @__PURE__ */ new WeakMap();
function createId(object) {
const instances = instanceMap.get(object) || 0;
instanceMap.set(object, instances + 1);
return instances;
}
function useInstanceId(object, prefix, preferredId) {
return useMemo(() => {
if (preferredId) {
return preferredId;
}
const id = createId(object);
return prefix ? `${prefix}-${id}` : id;
}, [object, preferredId, prefix]);
}
var use_instance_id_default = useInstanceId;
export {
use_instance_id_default as default
};
//# sourceMappingURL=index.js.map