import React, { useEffect } from 'react'; import { Avatar, List, Progress, Typography, Pagination } from 'antd'; import cn from 'classnames'; import { useStore } from '@/mstore'; import { observer } from 'mobx-react-lite'; import { metricService } from '@/services'; interface Props { list: any; selected?: any; onClickHandler?: (event: any, data: any) => void; metric?: any; total?: number; paginated?: boolean; } function CardSessionsByList({ list, selected, paginated, onClickHandler = () => null, metric, total, }: Props) { const { dashboardStore, metricStore, sessionStore } = useStore(); const { drillDownPeriod } = dashboardStore; const params = { density: 35 }; const metricParams = { ...params }; const [loading, setLoading] = React.useState(false); const data = paginated ? metric?.data?.values : list; const loadData = async (page: number) => { const timestamps = drillDownPeriod.toTimestamps(); const payload = { ...metricParams, ...timestamps, ...metric?.toJson() }; const params = { ...drillDownPeriod, ...payload, key: metric.predefinedKey, }; setLoading(true); const data = await metricService.getMetricChartData( metric, { ...params, page, limit: 20 }, false, ); metric.setData(data, drillDownPeriod); setLoading(false); }; return (