"use client"; import React, { FC, ReactNode } from "react"; import { Group, ScrollArea } from "@mantine/core"; import CreateStatusButton from "@/app/deals/components/shared/CreateStatusButton/CreateStatusButton"; import DealCard from "@/app/deals/components/shared/DealCard/DealCard"; import DealContainer from "@/app/deals/components/shared/DealContainer/DealContainer"; import StatusColumnWrapper from "@/app/deals/components/shared/StatusColumnWrapper/StatusColumnWrapper"; import { useBoardsContext } from "@/app/deals/contexts/BoardsContext"; import { useDealsContext } from "@/app/deals/contexts/DealsContext"; import useDealsAndStatusesDnd from "@/app/deals/hooks/useDealsAndStatusesDnd"; import FunnelDnd from "@/components/dnd/FunnelDnd/FunnelDnd"; import useIsMobile from "@/hooks/useIsMobile"; import { DealSchema, StatusSchema } from "@/lib/client"; import { sortByLexorank } from "@/utils/lexorank"; const Funnel: FC = () => { const { selectedBoard } = useBoardsContext(); const { deals } = useDealsContext(); const isMobile = useIsMobile(); const { sortedStatuses, handleDragStart, handleDragOver, handleDragEnd, activeStatus, activeDeal, } = useDealsAndStatusesDnd(); const renderFunnelDnd = () => ( `${status.id}-status`} getItemsByContainer={(status: StatusSchema, items: DealSchema[]) => sortByLexorank( items.filter(deal => deal.statusId === status.id) ) } renderContainer={( status: StatusSchema, funnelColumnComponent: ReactNode ) => ( {funnelColumnComponent} )} renderItem={(deal: DealSchema) => ( )} activeContainer={activeStatus} activeItem={activeDeal} renderItemOverlay={(deal: DealSchema) => } renderContainerOverlay={(status: StatusSchema, children) => ( {children} )} disabledColumns={isMobile} isCreatingContainerEnabled={!!selectedBoard} /> ); if (isMobile) return renderFunnelDnd(); return ( {renderFunnelDnd()} {selectedBoard && } ); }; export default Funnel;