@sinchsmb/ui-kit
Version:
UI kit for SinchSMB frontend
22 lines (17 loc) • 671 B
text/typescript
import { useCallback } from 'react';
import { useTableCellContext } from '../contexts/TableCellContext';
import { useTableFastActiveItemContext } from '../contexts/TableFastActiveItemContex';
/** Returns ref that should be used to register cell interactive element */
export function useTableInteractiveElement() {
const { rowNumber, columnNumber } = useTableCellContext();
const { registerCellElement } = useTableFastActiveItemContext();
const elementRef = useCallback(
(ref: HTMLElement | null) => {
registerCellElement(rowNumber, columnNumber, ref);
},
[columnNumber, registerCellElement, rowNumber],
);
return {
elementRef,
};
}