@appbuckets/react-ui
Version:
Just Another React UI Framework
42 lines (39 loc) • 979 B
JavaScript
import * as React from 'react';
import Checkbox from '../../Checkbox/Checkbox.js';
import { useRxTable } from '../RxTable.context.js';
/* --------
* Component Definition
* -------- */
var SingleRowSelector = function (props) {
/** Get the Row */
var row = props.row;
// ----
// Get Context Props
// ----
var _a = useRxTable().selection,
isRowSelected = _a.isRowSelected,
toggleSelectRow = _a.toggleSelectRow;
// ----
// Handlers
// ----
var handleToggleRow = React.useCallback(
function () {
toggleSelectRow(row);
},
[toggleSelectRow, row]
);
// ----
// Checkbox Render as a Memoized Component
// ----
return React.useMemo(
function () {
return React.createElement(Checkbox, {
checked: isRowSelected(row),
onClick: handleToggleRow,
});
},
[isRowSelected, handleToggleRow, row]
);
};
SingleRowSelector.displayName = 'SingleRowSelector';
export { SingleRowSelector as default };