"use client"; import { ConfirmationModalProps } from "@/components/ui/ConfirmationModal"; import { useTendersQuery } from "@/hooks/queries"; import useDebounce from "@/hooks/useDebounce"; import { TCustomer } from "@/lib/api"; import { usePathname, useRouter } from "next/navigation"; import { useEffect, useRef, useState } from "react"; import { useInView } from "react-intersection-observer"; import { z } from "zod"; const useTenderListPresenter = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [currentTender, setCurrentTender] = useState(null); const [search, setSearch] = useState(""); const [modalConfig, setModalConfig] = useState< Partial >({}); const [params, setParams] = useState>({ sort: "created_at", }); const router = useRouter(); const debouncedSearch = useDebounce(search, 1000); const pathName = usePathname(); const { data, error, isPending } = useTendersQuery(params); const { ref, inView } = useInView({ threshold: 0.5 }); useEffect(() => { const result = z.string().safeParse(debouncedSearch); if (result.success) { setParams((prevParams) => ({ ...prevParams, })); } }, [debouncedSearch]); const handleFilterChange = (e: React.ChangeEvent) => { setSearch(e.target.value); }; // const onConfirmDelete = () => { // if (currentTender) { // deleteTender(currentTender.id); // } // }; return { ref, currentTender, setCurrentTender, search, handleFilterChange, router, allTenders: data, error, isPending, setParams, data, pathName, isModalOpen, setIsModalOpen, modalConfig, setModalConfig, }; }; export default useTenderListPresenter;