laif-ds
Version:
Design System di Laif con componenti React basati su principi di Atomic Design
41 lines (40 loc) • 1.25 kB
JavaScript
"use client";
import { useContext as u, useCallback as d } from "react";
import { GanttContext as D } from "../components/Gantt/GanttContext.js";
import { getScaleDates as z } from "../utils/getScaleDates.js";
import { getInitialScrollOffset as C } from "../utils/getInitialScrollOffset.js";
import { DragStepOptions as x } from "../constants/DragStepOptions.js";
import { GanttDimensionsSettings as O } from "../constants/DimensionsSettings.js";
const P = () => {
const { setScaleDates: a, wrapRef: r, settings: t, setSettings: o, currentDate: e } = u(D);
return { calculate: d(
(s) => {
var l;
const {
stepWidth: S,
itemsCount: p,
scaleStepItems: g,
secondsInPixel: n,
unitOfTime: m
} = O[s], c = z(e, p, m), i = C(
s,
c,
e
), f = x[t.dragStepSize].seconds / n;
o({
stepWidth: S,
initialScrollOffset: i,
scaleStepItems: g,
secondsInPixel: n,
dimension: s,
dragStepSize: t.dragStepSize,
gridSize: f,
draggable: t.draggable
}), a(c), (l = r.current) == null || l.scrollTo({ left: i });
},
[e, a, o, t.dragStepSize, r]
) };
};
export {
P as useGanttCalculate
};