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