@salesforce/design-system-react
Version:
Salesforce Lightning Design System for React
32 lines (27 loc) • 1.21 kB
JavaScript
/* Copyright (c) 2015-present, salesforce.com, inc. All rights reserved */
/* Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
/**
* Calculates data table keyboard navigation state based on currently selected cell
*/
export default (function (tableContext, cellContext, fixedLayout) {
var isActive = tableContext.activeCell.rowIndex === cellContext.rowIndex && tableContext.activeCell.columnIndex === cellContext.columnIndex;
var hasFocus = fixedLayout && tableContext.tableHasFocus && isActive;
var handleFocus = function handleFocus() {
if (fixedLayout && tableContext.allowKeyboardNavigation) {
tableContext.changeActiveCell(cellContext.rowIndex, cellContext.columnIndex);
}
};
var handleKeyDown = function handleKeyDown(event) {
if (fixedLayout && tableContext.allowKeyboardNavigation) {
tableContext.handleKeyDown(event);
}
};
var tabIndex = fixedLayout && isActive && !tableContext.activeElement && tableContext.allowKeyboardNavigation ? '0' : undefined;
return {
tabIndex: tabIndex,
hasFocus: hasFocus,
handleFocus: handleFocus,
handleKeyDown: handleKeyDown
};
});
//# sourceMappingURL=context-helper.js.map