pbn-voip-modules
Version:
PBN VOIP Component Library
82 lines (69 loc) • 2.12 kB
JavaScript
import { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import useSearchBase from "../../general/hooks/useSearchBase";
import {
CALL_LOGS_FILTER,
onResetFilterAPI,
searchConfig,
} from "../../redux-toolkit/call-logs";
import useFetchCallLogs from "./useFetchCallLogs";
import { useAudioContext } from "../../general/hooks/useAudioContext";
import { setTimeOutAsync } from "../../general/common/utils";
const useSearchCallLogs = (isCancelPrevRequest = false) => {
const filter = useSelector((state) => state.callLogs.filter);
const filterAPI = useSelector((state) => state.callLogs.filterAPI);
const { isCurrentUserApiCalled } = useSelector((state) => state.user);
const dispatcher = useDispatch();
const callLogsAPIService = useFetchCallLogs();
const { pauseAllAudio } = useAudioContext();
const {
searchedData,
handleSearchData,
handleSearchDataSpecificAPI,
} = useSearchBase({
data: callLogsAPIService.callLogs,
config: searchConfig,
filterRedux: filter,
type: "all",
});
const debouncedValidateBasic = (filterValue) => {
handleSearchData({
filterName: "",
filterValue,
});
};
const searchTerm = filter[CALL_LOGS_FILTER.CALLER_NAME].value;
const getCallLogData = async () => {
// const params = callLogsAPIService.getCallLogFilterParams();
// await callLogsAPIService.handleGetCallLogs(
// params,
// isCancelPrevRequest,
// isCurrentUserApiCalled
// );
await setTimeOutAsync(200);
pauseAllAudio();
};
useEffect(() => {
if (isCurrentUserApiCalled) {
getCallLogData();
}
}, [JSON.stringify(filterAPI), isCurrentUserApiCalled]);
const resetSearchFilter = () => {
dispatcher(onResetFilterAPI());
handleSearchData({
filterName: "",
filterValue: "",
});
};
return {
searchedData,
handleChangeTextSearch: debouncedValidateBasic,
filter,
filterAPI,
searchTerm,
handleSearchDataSpecificAPI,
resetSearchFilter,
...callLogsAPIService,
};
};
export default useSearchCallLogs;