Files
ncd-fe/packages/pl-fe/src/utils/scroll-utils.ts
nicole mikołajczyk 96698cc801 pl-fe: try to improve hotkeys scroll, reuse code
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2025-09-17 22:03:05 +02:00

22 lines
619 B
TypeScript

import type React from 'react';
import type { VirtuosoHandle } from 'react-virtuoso';
const selectChild = (index: number, handle: React.RefObject<VirtuosoHandle>, node: ParentNode = document) => {
const selector = `[data-index="${index}"] .focusable`;
const element = node.querySelector<HTMLDivElement>(selector);
if (element) {
element.focus({ preventScroll: false });
} else {
handle.current?.scrollIntoView({
index,
behavior: 'smooth',
done: () => {
if (!element) document.querySelector<HTMLDivElement>(selector)?.focus();
},
});
}
};
export { selectChild };