import React, { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { Clock, Users, FileText, User, Edit, Calendar , Trash2, MoreVertical } from 'lucide-react'; import TagDisplay from './TagDisplay'; import ConfirmDialog from './ConfirmDialog'; import Dropdown from './Dropdown'; import MarkdownRenderer from './MarkdownRenderer'; import tools from '../utils/tools'; import './MeetingTimeline.css'; const MeetingTimeline = ({ meetingsByDate, currentUser, onDeleteMeeting, hasMore = false, onLoadMore, loadingMore = false, filterType = 'all', searchQuery = '', selectedTags = [] }) => { const [deleteConfirmInfo, setDeleteConfirmInfo] = useState(null); const navigate = useNavigate(); const shouldShowMoreButton = (summary, maxLines = 3, maxLength = 100) => { if (!summary) return false; const lines = summary.split('\n'); return lines.length > maxLines || summary.length > maxLength; }; const handleEditClick = (meetingId) => { navigate(`/meetings/edit/${meetingId}`); }; const handleDeleteClick = (meeting) => { setDeleteConfirmInfo({ id: meeting.meeting_id, title: meeting.title }); }; const handleConfirmDelete = async () => { if (onDeleteMeeting && deleteConfirmInfo) { await onDeleteMeeting(deleteConfirmInfo.id); } setDeleteConfirmInfo(null); }; const sortedDates = Object.keys(meetingsByDate).sort((a, b) => new Date(b) - new Date(a)); if (sortedDates.length === 0) { return (
您还没有参与任何会议