react-native-week-schedule-1
Version:
40 lines (39 loc) • 1.21 kB
JavaScript
;
import { useMemo } from "react";
import { grid } from "../utils/grid.js";
export const useTableItem = item => {
const top = useMemo(() => {
const index = grid.hours.findIndex(time => {
const currentHour = Number(item.date.split('T')[1]?.split(':')[0]);
const [hourString, dayPart] = time.split(' ');
const hour = Number(hourString);
if (currentHour === 12) {
return time === '12 pm';
}
;
if (Number(currentHour) === 0) {
return time === '12 am';
}
;
if (dayPart === 'am') {
return currentHour === hour;
}
;
return currentHour === hour + 12;
});
const minutes = Number(item.date.split('T')[1]?.split(':')[1]);
const minutesOffset = minutes / 60 * grid.cellHeight;
return grid.cellHeight * index + minutesOffset + 0.4;
}, [item]);
const left = useMemo(() => grid.cellWight * new Date(`${item.date.split('T')[0]}`).getDay() + 0.4, [item]);
const height = useMemo(() => {
const percent = item.duration / 60 * 100;
return percent / 100 * grid.cellHeight;
}, [item]);
return {
top,
left,
height
};
};
//# sourceMappingURL=useTableItem.js.map