@josmangarsal/pragmatic-scheduler
Version:
React resource scheduler
39 lines (38 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCalcGridPositions = void 0;
var react_1 = require("react");
var Scheduler_1 = require("../components/Scheduler");
var useCalcResourceRows_1 = require("./useCalcResourceRows");
var useCalcGridPositions = function () {
var _a = (0, react_1.useContext)(Scheduler_1.SchedulerContext), resources = _a.resources, config = _a.config, days = _a.days;
var calcResourceRows = (0, useCalcResourceRows_1.useCalcResourceRows)();
var layouts = (0, react_1.useMemo)(function () {
var rowCount = 0;
return resources
.map(function (_resource, index) {
var rows = calcResourceRows(_resource);
var y = rowCount;
rowCount += rows;
return days.map(function (day, dayIndex) {
return day.divisions.map(function (division, divIndex) {
var x = (dayIndex * day.divisions.length + divIndex) * config.divisionParts;
return {
i: "cell-".concat(index, "-").concat(dayIndex, "-").concat(divIndex),
x: x,
y: y,
w: config.divisionParts,
h: rows,
static: true,
day: day,
division: division,
resourceId: _resource.id,
};
});
});
})
.flat(3);
}, [calcResourceRows, config.divisionParts, days, resources]);
return layouts;
};
exports.useCalcGridPositions = useCalcGridPositions;