react-vtree
Version:
React component for efficiently rendering large tree structures
42 lines (39 loc) • 1.7 kB
JavaScript
export var identity = function identity(value) {
return value;
};
export var createRecord = function createRecord(data, _ref, _ref2) {
var _opennessState;
var opennessState = _ref.opennessState;
var recomputeTree = _ref2.recomputeTree;
var record = {
data: data,
isOpen: (_opennessState = opennessState == null ? void 0 : opennessState[data.id]) != null ? _opennessState : data.isOpenByDefault,
toggle: function toggle() {
record.isOpen = !record.isOpen;
return recomputeTree({
refreshNodes: record.isOpen
});
}
};
return record;
};
export var shouldUpdateRecords = function shouldUpdateRecords(_ref3) {
var opennessState = _ref3.opennessState,
_ref3$useDefaultOpenn = _ref3.useDefaultOpenness,
useDefaultOpenness = _ref3$useDefaultOpenn === void 0 ? false : _ref3$useDefaultOpenn;
return !!opennessState || useDefaultOpenness;
};
export var updateRecord = function updateRecord(record, recordId, _ref4) {
var _opennessState2;
var opennessState = _ref4.opennessState,
_ref4$useDefaultOpenn = _ref4.useDefaultOpenness,
useDefaultOpenness = _ref4$useDefaultOpenn === void 0 ? false : _ref4$useDefaultOpenn;
record.isOpen = useDefaultOpenness ? record.data.isOpenByDefault : (_opennessState2 = opennessState == null ? void 0 : opennessState[recordId]) != null ? _opennessState2 : record.isOpen;
};
export var updateRecordOnNewData = function updateRecordOnNewData(record, _ref5) {
var _ref5$useDefaultOpenn = _ref5.useDefaultOpenness,
useDefaultOpenness = _ref5$useDefaultOpenn === void 0 ? false : _ref5$useDefaultOpenn;
if (useDefaultOpenness) {
record.isOpen = record.data.isOpenByDefault;
}
};