diff --git a/app/app.css b/app/app.css index 94879a5..fab8480 100644 --- a/app/app.css +++ b/app/app.css @@ -1,5 +1,5 @@ +@import url(/font/fontiran.css); @import "tailwindcss"; -@import url(/font/iranfont.css); @theme { /* Teal color scale */ diff --git a/app/components/dashboard/project-management/digital-innovation-page.tsx b/app/components/dashboard/project-management/digital-innovation-page.tsx index 7dcb610..ba28b27 100644 --- a/app/components/dashboard/project-management/digital-innovation-page.tsx +++ b/app/components/dashboard/project-management/digital-innovation-page.tsx @@ -346,10 +346,10 @@ export function DigitalInnovationPage() { }; const loadMore = useCallback(() => { - if (!loadingMore && hasMore && !loading) { + if (hasMore && !loading) { setCurrentPage((prev) => prev + 1); } - }, [loadingMore, hasMore, loading]); + }, [hasMore, loading]); useEffect(() => { fetchTable(true); @@ -367,12 +367,12 @@ export function DigitalInnovationPage() { const scrollContainer = document.querySelector(".overflow-auto"); const handleScroll = () => { - if (!scrollContainer || !hasMore || loadingMore) return; + if (!scrollContainer || !hasMore) return; const { scrollTop, scrollHeight, clientHeight } = scrollContainer; const scrollPercentage = (scrollTop + clientHeight) / scrollHeight; - if (scrollPercentage >= 0.9) { + if (scrollPercentage == 1) { loadMore(); } }; diff --git a/app/components/dashboard/project-management/green-innovation-page.tsx b/app/components/dashboard/project-management/green-innovation-page.tsx index 47beffa..10a16eb 100644 --- a/app/components/dashboard/project-management/green-innovation-page.tsx +++ b/app/components/dashboard/project-management/green-innovation-page.tsx @@ -351,10 +351,10 @@ export function GreenInnovationPage() { }; const loadMore = useCallback(() => { - if (!loadingMore && hasMore && !loading) { + if (hasMore && !loading) { setCurrentPage((prev) => prev + 1); } - }, [loadingMore, hasMore, loading]); + }, [hasMore, loading]); useEffect(() => { fetchProjects(true); @@ -375,12 +375,12 @@ export function GreenInnovationPage() { const scrollContainer = document.querySelector(".overflow-auto"); const handleScroll = () => { - if (!scrollContainer || !hasMore || loadingMore) return; + if (!scrollContainer || !hasMore) return; const { scrollTop, scrollHeight, clientHeight } = scrollContainer; const scrollPercentage = (scrollTop + clientHeight) / scrollHeight; - if (scrollPercentage >= 0.9) { + if (scrollPercentage == 1) { loadMore(); } }; diff --git a/app/components/dashboard/project-management/innovation-built-inside-page.tsx b/app/components/dashboard/project-management/innovation-built-inside-page.tsx index ffc5215..5588e04 100644 --- a/app/components/dashboard/project-management/innovation-built-inside-page.tsx +++ b/app/components/dashboard/project-management/innovation-built-inside-page.tsx @@ -411,10 +411,10 @@ export function InnovationBuiltInsidePage() { }; const loadMore = useCallback(() => { - if (!loadingMore && hasMore && !loading) { + if (hasMore && !loading) { setCurrentPage((prev) => prev + 1); } - }, [loadingMore, hasMore, loading]); + }, [hasMore, loading]); useEffect(() => { fetchProjects(true); @@ -434,12 +434,12 @@ export function InnovationBuiltInsidePage() { const scrollContainer = document.querySelector(".overflow-auto"); const handleScroll = () => { - if (!scrollContainer || !hasMore || loadingMore) return; + if (!scrollContainer || !hasMore) return; const { scrollTop, scrollHeight, clientHeight } = scrollContainer; const scrollPercentage = (scrollTop + clientHeight) / scrollHeight; - if (scrollPercentage >= 0.9) { + if (scrollPercentage == 1) { loadMore(); } }; diff --git a/app/components/dashboard/project-management/mange-ideas-tech-page.tsx b/app/components/dashboard/project-management/mange-ideas-tech-page.tsx index b619a34..d533981 100644 --- a/app/components/dashboard/project-management/mange-ideas-tech-page.tsx +++ b/app/components/dashboard/project-management/mange-ideas-tech-page.tsx @@ -341,10 +341,10 @@ export function ManageIdeasTechPage() { }; const loadMore = useCallback(() => { - if (!loadingMore && hasMore && !loading) { + if (hasMore && !loading) { setCurrentPage((prev) => prev + 1); } - }, [loadingMore, hasMore, loading]); + }, [hasMore, loading]); useEffect(() => { fetchProjects(true); @@ -362,13 +362,13 @@ export function ManageIdeasTechPage() { const scrollContainer = document.querySelector(".overflow-auto"); const handleScroll = () => { - if (!scrollContainer || !hasMore || loadingMore) return; + if (!scrollContainer || !hasMore) return; const { scrollTop, scrollHeight, clientHeight } = scrollContainer; const scrollPercentage = (scrollTop + clientHeight) / scrollHeight; // Trigger load more when scrolled to 90% of the container - if (scrollPercentage >= 0.9) { + if (scrollPercentage == 1) { loadMore(); } }; diff --git a/app/components/dashboard/project-management/process-innovation-page.tsx b/app/components/dashboard/project-management/process-innovation-page.tsx index a366fef..048682d 100644 --- a/app/components/dashboard/project-management/process-innovation-page.tsx +++ b/app/components/dashboard/project-management/process-innovation-page.tsx @@ -321,10 +321,10 @@ export function ProcessInnovationPage() { }; const loadMore = useCallback(() => { - if (!loadingMore && hasMore && !loading) { + if (hasMore && !loading) { setCurrentPage((prev) => prev + 1); } - }, [loadingMore, hasMore, loading]); + }, [hasMore, loading]); useEffect(() => { fetchProjects(true); @@ -345,12 +345,12 @@ export function ProcessInnovationPage() { const scrollContainer = document.querySelector(".overflow-auto"); const handleScroll = () => { - if (!scrollContainer || !hasMore || loadingMore) return; + if (!scrollContainer || !hasMore) return; const { scrollTop, scrollHeight, clientHeight } = scrollContainer; const scrollPercentage = (scrollTop + clientHeight) / scrollHeight; - if (scrollPercentage >= 0.9) { + if (scrollPercentage == 1) { loadMore(); } }; diff --git a/app/components/dashboard/project-management/product-innovation-page.tsx b/app/components/dashboard/project-management/product-innovation-page.tsx index 6c29c46..f234b54 100644 --- a/app/components/dashboard/project-management/product-innovation-page.tsx +++ b/app/components/dashboard/project-management/product-innovation-page.tsx @@ -255,7 +255,7 @@ export function ProductInnovationPage() { const observerRef = useRef(null); const fetchingRef = useRef(false); - + const handleProjectDetails = async (project: ProductInnovationData) => { setSelectedProjectDetails(project); @@ -267,7 +267,7 @@ export function ProductInnovationPage() { const fetchPopupData = async (project: ProductInnovationData) => { try { setPopupLoading(true); - + // Fetch popup stats const statsResponse = await apiService.call({ innovation_product_popup_function1: { @@ -296,9 +296,9 @@ export function ProductInnovationPage() { const chartData = JSON.parse(chartResponse.data); if (Array.isArray(chartData)) { // Set all data for line chart - + // Filter data for the selected project (bar chart) - const filteredData = chartData.filter(item => + const filteredData = chartData.filter(item => item.product_title === project?.title ); setAllExportData(chartData); @@ -314,10 +314,10 @@ export function ProductInnovationPage() { }; const loadMore = useCallback(() => { - if (!loadingMore && hasMore && !loading) { + if (hasMore && !loading) { setCurrentPage((prev) => prev + 1); } - }, [loadingMore, hasMore, loading]); + }, [hasMore, loading]); const fetchProjects = async (reset = false) => { if (fetchingRef.current) { @@ -497,12 +497,12 @@ export function ProductInnovationPage() { const scrollContainer = document.querySelector(".overflow-auto"); const handleScroll = () => { - if (!scrollContainer || !hasMore || loadingMore) return; + if (!scrollContainer || !hasMore) return; const { scrollTop, scrollHeight, clientHeight } = scrollContainer; const scrollPercentage = (scrollTop + clientHeight) / scrollHeight; - if (scrollPercentage >= 0.9) { + if (scrollPercentage == 1) { loadMore(); } }; @@ -516,7 +516,7 @@ export function ProductInnovationPage() { scrollContainer.removeEventListener("scroll", handleScroll); } }; - }, [loadMore, hasMore, loadingMore]); + }, [loadMore, hasMore]); const handleSort = (field: string) => { fetchingRef.current = false; @@ -548,7 +548,7 @@ export function ProductInnovationPage() { return seasons.map(season => { const seasonData: any = { season }; products.forEach(product => { - const productData = data.find(item => + const productData = data.find(item => item.product_title === product && item.full_season === season ); seasonData[product] = productData?.export_revenue_sum > 0 && productData ? Math.round(productData?.export_revenue_sum) : 0; @@ -1042,7 +1042,7 @@ export function ProductInnovationPage() { )} - + {/* Left Column - Project Description and Charts */} {popupLoading ? (
@@ -1153,12 +1153,10 @@ export function ProductInnovationPage() {
)} - + ); } - - \ No newline at end of file diff --git a/app/components/dashboard/project-management/project-management-page.tsx b/app/components/dashboard/project-management/project-management-page.tsx index 1a4ebfe..dca4735 100644 --- a/app/components/dashboard/project-management/project-management-page.tsx +++ b/app/components/dashboard/project-management/project-management-page.tsx @@ -264,10 +264,10 @@ export function ProjectManagementPage() { }; const loadMore = useCallback(() => { - if (!loadingMore && hasMore && !loading) { + if (hasMore && !loading) { setCurrentPage((prev) => prev + 1); } - }, [loadingMore, hasMore, loading]); + }, [hasMore, loading]); useEffect(() => { fetchProjects(true); @@ -283,18 +283,16 @@ export function ProjectManagementPage() { // Infinite scroll observer useEffect(() => { const scrollContainer = document.querySelector(".overflow-auto"); - const handleScroll = () => { - if (!scrollContainer || !hasMore || loadingMore) return; + if (!scrollContainer || !hasMore) return; const { scrollTop, scrollHeight, clientHeight } = scrollContainer; const scrollPercentage = (scrollTop + clientHeight) / scrollHeight; // Trigger load more when scrolled to 90% of the container - if (scrollPercentage >= 0.9) { + if (scrollPercentage == 1) { loadMore(); } }; - if (scrollContainer) { scrollContainer.addEventListener("scroll", handleScroll); } @@ -304,7 +302,7 @@ export function ProjectManagementPage() { scrollContainer.removeEventListener("scroll", handleScroll); } }; - }, [loadMore, hasMore, loadingMore]); + }, [loadMore, hasMore]); const handleSort = (field: string) => { fetchingRef.current = false; // Reset fetching state on sort