diff --git a/app/components/dashboard/project-management/product-innovation-page.tsx b/app/components/dashboard/project-management/product-innovation-page.tsx
index 16d1f11..da18932 100644
--- a/app/components/dashboard/project-management/product-innovation-page.tsx
+++ b/app/components/dashboard/project-management/product-innovation-page.tsx
@@ -23,6 +23,12 @@ import { Button } from "~/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card";
import { Checkbox } from "~/components/ui/checkbox";
import { Bar, BarChart, LabelList } from "recharts"
+import {
+ Popover,
+ PopoverTrigger,
+ PopoverContent,
+} from "~/components/ui/popover"
+
import { FunnelChart } from "~/components/ui/funnel-chart";
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from "recharts";
import {
@@ -43,9 +49,10 @@ import {
TableRow,
} from "~/components/ui/table";
import apiService from "~/lib/api";
-import { formatNumber } from "~/lib/utils";
+import { formatNumber, handleDataValue } from "~/lib/utils";
import { DashboardLayout } from "../layout";
import { Skeleton } from "~/components/ui/skeleton";
+import { Tooltip as TooltipSh, TooltipTrigger, TooltipContent } from "~/components/ui/tooltip";
moment.loadPersian({ usePersianDigits: true });
@@ -130,7 +137,57 @@ const columns = [
{ key: "details", label: "جزئیات پروژه", sortable: false, width: "140px" },
];
+
+export default function Timeline() {
+ const stages = ["تجاری سازی", "توسعه", "تحلیل بازار", "ثبت ایده"];
+ const currentStage = 1; // index of current stage
+
+ return (
+
+ {/* Year labels */}
+
+ ۱۴۰۷
+ ۱۴۰۶
+ ۱۴۰۵
+ ۱۴۰۴
+
+
+ {/* Timeline bar */}
+
+ {stages.map((stage, index) => (
+
+ ))}
+
+ {/* Vertical line showing current position */}
+
+
وضعیت فعلی
+
+
+ );
+}
+
+
+
export function ProductInnovationPage() {
+ const [showPopup, setShowPopup] = useState(false);
const [projects, setProjects] = useState([]);
const [loading, setLoading] = useState(false);
const [loadingMore, setLoadingMore] = useState(false);
@@ -202,6 +259,7 @@ export function ProductInnovationPage() {
const handleProjectDetails = async (project: ProductInnovationData) => {
setSelectedProjectDetails(project);
+ console.log(project)
setDetailsDialogOpen(true);
await fetchPopupData(project);
};
@@ -220,7 +278,7 @@ export function ProductInnovationPage() {
if (statsResponse.state === 0) {
const statsData = JSON.parse(statsResponse.data);
if (statsData.innovation_product_popup_function1 && statsData.innovation_product_popup_function1[0]) {
- setPopupStats(statsData.innovation_product_popup_function1[0]);
+ setPopupStats(JSON.parse(statsData.innovation_product_popup_function1)[0]);
}
}
@@ -234,7 +292,6 @@ export function ProductInnovationPage() {
],
GroupBy: ["product_title", "full_season"]
});
-
if (chartResponse.state === 0) {
const chartData = JSON.parse(chartResponse.data);
if (Array.isArray(chartData)) {
@@ -865,177 +922,244 @@ export function ProductInnovationPage() {
{/* Project Details Dialog */}