import { useContext } from "react";
import { AnswersContext } from "@/lib/callWidget/contexts/answers";

const useAnswers = () => {
    const { state, dispatch, activeTab, setActiveTab } = useContext(AnswersContext);

    const changeActiveTabAnswers = (newValue) => {
        dispatch({ type: "CHANGE_ACTIVE_TAB", newValue });
        setActiveTab(newValue);
    };
    const newAnswerTab = (data) => {
        const newAnswer = {
            id: data.id,
            phone_number: data.phone_number,
            date: new Date(),
            active: true,
            active_category_id: null,
        };
        const newList = [...state, newAnswer];
        dispatch({ type: "CHANGE_LIST", newList });
        changeActiveTabAnswers(newList.length - 1);
    };

    const closeAnswerTab = (id) => {
        const index = state.findIndex((answer) => answer.id === id);
        const newIndex = index === 0 ? 0 : index - 1;
        const newList = [...state];
        newList.splice(index, 1);
        if (newList.length !== 0) {
            newList[newIndex].active = true;
            setActiveTab(newIndex);
        }
        dispatch({ type: "CHANGE_LIST", newList });
    };

    return {
        answersList: state,
        activeTab,
        setActiveTab,
        changeActiveTabAnswers,
        closeAnswerTab,
        newAnswerTab,
    };
};

export default useAnswers;
