src/components/CarouselCard/indicators/utils.js
export function getChildTabNodes(ref) {
if (ref) {
return ref.querySelectorAll('[role="tab"]');
}
return [];
}
function getRefIndex(nodes, ref) {
return nodes.indexOf(ref.current);
}
function sortChildren(childrenRefs, nodes) {
const [...newChildrenRefs] = childrenRefs;
newChildrenRefs.sort(
(refA, refB) => getRefIndex(nodes, refA.ref) - getRefIndex(nodes, refB.ref),
);
return newChildrenRefs;
}
export function insertChildOrderly(childrenRefs, childRef, nodes) {
const newChildrenRefs = childrenRefs.concat([childRef]);
return sortChildren(newChildrenRefs, nodes);
}