import React, { useRef, useState, useCallback, useEffect } from "react"; import moment from "moment"; import Avatar from "../../components/common/Avatar"; import { useGalleryContext } from "../../pages/Gallary/ImageGallaryPage"; import useImageGallery from "../../hooks/useImageGallery"; import { useSelectedProject } from "../../slices/apiDataManager"; import { ITEMS_PER_PAGE } from "../../utils/constants"; import Pagination from "../common/Pagination"; import { formatUTCToLocalTime } from "../../utils/dateUtils"; import Loader from "../common/Loader"; const ImageGalleryListView = () => { const [hoveredImage, setHoveredImage] = useState(null); const selectedProject = useSelectedProject(); const [currentPage, setCurrentPage] = useState(1); const { setOpenGallery } = useGalleryContext(); const { data, isLoading, isError, error } = useImageGallery( selectedProject, currentPage, 10, {} ); const paginate = (page) => { if (page >= 1 && page <= (data?.totalPages ?? 1)) { setCurrentPage(page); } }; if (!data?.data?.length && !isLoading) { return (

{selectedProject ? " No images match the selected filters.":"Please Select Project!"}

); } if (isLoading) { return (
); } return (
{data?.data?.map((batch) => { if (!batch.documents?.length) return null; const doc = batch.documents[0]; const userName = `${doc.uploadedBy?.firstName || ""} ${ doc.uploadedBy?.lastName || "" }`.trim(); const date = formatUTCToLocalTime(doc.uploadedAt); // const hasArrows = batch.documents.length > scrollThreshold; return (
{userName} {date}
{batch.buildingName} {batch.floorName} {batch.workAreaName || "Unknown"} {batch.activityName}
{batch.workCategoryName && ( {batch.workCategoryName} )}
{/* {hasArrows && ( )} */}
(imageGroupRefs.current[batch.batchId] = el)} > {batch.documents.map((d, i) => { const hoverDate = moment().format("DD MMMM, YYYY"); const hoverTime = moment(d.uploadedAt).format("hh:mm A"); return (
setHoveredImage(d)} onMouseLeave={() => setHoveredImage(null)} onClick={() => setOpenGallery({ isOpen: true, data: { data: batch, index: i }, }) } >
{`Image
{hoveredImage === d && (

Date: {hoverDate}

Time: {hoverTime}

Activity: {batch.activityName}

)}
); })}
{/* {hasArrows && ( )} */}
); })}
{data?.data?.length > 0 && ( )}
); }; export default ImageGalleryListView;