@chakra-ui/hooks
Version:
React hooks for Chakra components
33 lines (29 loc) • 744 B
JavaScript
'use client';
;
var react = require('react');
function useId(idProp, prefix) {
const id = react.useId();
return react.useMemo(
() => idProp || [prefix, id].filter(Boolean).join("-"),
[idProp, prefix, id]
);
}
function useIds(idProp, ...prefixes) {
const id = useId(idProp);
return react.useMemo(() => {
return prefixes.map((prefix) => `${prefix}-${id}`);
}, [id, prefixes]);
}
function useOptionalPart(partId) {
const [id, setId] = react.useState(null);
const ref = react.useCallback(
(node) => {
setId(node ? partId : null);
},
[partId]
);
return { ref, id, isRendered: Boolean(id) };
}
exports.useId = useId;
exports.useIds = useIds;
exports.useOptionalPart = useOptionalPart;