import { useMemo } from "react";
import { grid } from "../utils/grid";
import type { IData } from "react-native-week-schedule-1";

export const useTableItem = (item: IData) => {
    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 };
};