laif-ds
Version:
Design System di Laif con componenti React basati su principi di Atomic Design
40 lines (39 loc) • 1.21 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 x } from "../constants/DimensionsSettings.js";
const k = () => {
const { setScaleDates: a, wrapRef: r, settings: t, setSettings: o, currentDate: e } = f(d);
return { calculate: u(
(s) => {
const {
stepWidth: l,
itemsCount: S,
scaleStepItems: p,
secondsInPixel: n,
unitOfTime: g
} = x[s], c = D(e, S, g), i = z(
s,
c,
e
), m = C[t.dragStepSize].seconds / n;
o({
stepWidth: l,
initialScrollOffset: i,
scaleStepItems: p,
secondsInPixel: n,
dimension: s,
dragStepSize: t.dragStepSize,
gridSize: m,
draggable: t.draggable
}), a(c), r.current?.scrollTo({ left: i });
},
[e, a, o, t.dragStepSize, r]
) };
};
export {
k as useGanttCalculate
};