47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
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;
|