diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx index 9aef4d1..f52ad57 100644 --- a/app/(auth)/login/page.tsx +++ b/app/(auth)/login/page.tsx @@ -110,13 +110,7 @@ export default function LoginPage() { className="w-full" size="lg" > - - - + telegram Войти через Telegram diff --git a/app/dashboard/[workspaceId]/analytics/projects/page.tsx b/app/dashboard/[workspaceId]/analytics/projects/page.tsx index 042f00a..07eeb27 100644 --- a/app/dashboard/[workspaceId]/analytics/projects/page.tsx +++ b/app/dashboard/[workspaceId]/analytics/projects/page.tsx @@ -796,6 +796,7 @@ export default function ProjectsAnalyticsPage() { from: subDays(new Date(), 29), to: new Date(), })); + const [tableProjectIds, setTableProjectIds] = useState([]); const sensors = useSensors( useSensor(PointerSensor), @@ -866,12 +867,13 @@ export default function ProjectsAnalyticsPage() { // Load table data useEffect(() => { loadTableData(); - }, [workspaceId, tableGrouping, tableDateGrouping, tableDateRange]); + }, [workspaceId, tableGrouping, tableDateGrouping, tableDateRange, tableProjectIds]); const loadTableData = async () => { try { setTableLoading(true); const response = await demoAwareAnalyticsApi.projects(workspaceId, { + project_ids: tableProjectIds.length > 0 ? tableProjectIds : undefined, date_from: tableDateRange?.from ? startOfDay(tableDateRange.from).toISOString() : undefined, @@ -1025,6 +1027,59 @@ export default function ProjectsAnalyticsPage() {
+ + + + + +
+ + +
+
+ {projects.map((project) => { + const isSelected = tableProjectIds.includes(project.id); + return ( +
{ + const newIds = isSelected + ? tableProjectIds.filter((id) => id !== project.id) + : [...tableProjectIds, project.id]; + setTableProjectIds(newIds); + }} + > + + {project.title} +
+ ); + })} +
+
+