38 lines
1.2 KiB
JavaScript
38 lines
1.2 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
|
|
}
|
|
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 |