import React, { useMemo, useCallback } from 'react'; import { Card, Segmented, Skeleton, Empty, Typography, Alert } from 'antd'; import { ClockCircleOutlined, UnorderedListOutlined } from '@ant-design/icons'; import { useTranslation } from 'react-i18next'; import { useAppSelector } from '@/hooks/useAppSelector'; import { useAppDispatch } from '@/hooks/useAppDispatch'; import { ActivityFeedType } from '@/types/home/user-activity.types'; import { setActiveTab } from '@/features/home-page/user-activity.slice'; import { useGetUserRecentTasksQuery, useGetUserTimeLoggedTasksQuery, } from '@/api/home-page/user-activity.api.service'; import TaskActivityList from './task-activity-list'; import TimeLoggedTaskList from './time-logged-task-list'; const { Title } = Typography; const UserActivityFeed: React.FC = () => { const { t } = useTranslation('home'); const dispatch = useAppDispatch(); const { activeTab } = useAppSelector(state => state.userActivityReducer); const { data: recentTasksData, isLoading: loadingRecentTasks, error: recentTasksError, } = useGetUserRecentTasksQuery( { limit: 10 }, { skip: activeTab !== ActivityFeedType.RECENT_TASKS } ); const { data: timeLoggedTasksData, isLoading: loadingTimeLoggedTasks, error: timeLoggedTasksError, } = useGetUserTimeLoggedTasksQuery( { limit: 10 }, { skip: activeTab !== ActivityFeedType.TIME_LOGGED_TASKS } ); const recentTasks = useMemo(() => { if (!recentTasksData) return []; return Array.isArray(recentTasksData) ? recentTasksData : []; }, [recentTasksData]); const timeLoggedTasks = useMemo(() => { if (!timeLoggedTasksData) return []; return Array.isArray(timeLoggedTasksData) ? timeLoggedTasksData : []; }, [timeLoggedTasksData]); const segmentOptions = useMemo( () => [ { value: ActivityFeedType.RECENT_TASKS, label: (