import React from 'react';
import { Button, Divider, Flex, Popconfirm, Typography, Space } from '@/shared/antd-imports';
import { colors } from '@/styles/colors';
import { ITaskLogViewModel } from '@/types/tasks/task-log-view.types';
import SingleAvatar from '@/components/common/single-avatar/single-avatar';
import { formatDateTimeWithUserTimezone } from '@/utils/format-date-time-with-user-timezone';
import { calculateTimeGap } from '@/utils/calculate-time-gap';
import './time-log-item.css';
import { taskTimeLogsApiService } from '@/api/tasks/task-time-logs.api.service';
import { useAppSelector } from '@/hooks/useAppSelector';
import { useAppDispatch } from '@/hooks/useAppDispatch';
import { setTimeLogEditing } from '@/features/task-drawer/task-drawer.slice';
import TimeLogForm from './time-log-form';
import { useAuthService } from '@/hooks/useAuth';
type TimeLogItemProps = {
log: ITaskLogViewModel;
onDelete?: () => void;
};
const TimeLogItem = ({ log, onDelete }: TimeLogItemProps) => {
const {
user_name,
avatar_url,
time_spent_text,
logged_by_timer,
created_at,
user_id,
description,
} = log;
const { selectedTaskId } = useAppSelector(state => state.taskDrawerReducer);
const dispatch = useAppDispatch();
const currentSession = useAuthService().getCurrentSession();
const renderLoggedByTimer = () => {
if (!logged_by_timer) return null;
return (
<>
via Timer about{' '}