import { useState } from "react"; import { View, Text } from "react-native"; import { DataTable } from "react-native-paper"; import { Todo } from "@/store/models/Todo.model"; import { TableSortDirection } from "@/constants/tableSortDirectionEnum"; import { AdminTodoTableHeader } from "@/components/features/todos/AdminTodoTableHeader"; import { AdminTodoActions } from "@/components/features/todos/AdminTodoActions"; import { PriorityIndicator } from "@/components/ui/PriorityIndicator"; import { StatusTableItem } from "@/components/ui/StatusTableItem"; import { TodoDetailsModal } from "@/components/features/todos/TodoDetailsModal"; import { formatDateMDY, formatTime } from "@/utils/dateUtils"; interface DesktopAdminTodoTableProps { todos: Todo[]; sortColumn: string | null; sortDirection: TableSortDirection; onSort: (column: string) => void; onEdit: (todo: Todo) => void; onDelete: (todo: Todo) => void; } export const DesktopAdminTodosTable = ({ todos, sortColumn, sortDirection, onSort, onEdit, onDelete, }: DesktopAdminTodoTableProps) => { const [detailsOpen, setDetailsOpen] = useState(false); const [selectedTodo, setSelectedTodo] = useState(null); const openDetails = (todo: Todo) => { setSelectedTodo(todo); setDetailsOpen(true); }; const closeDetails = () => setDetailsOpen(false); return ( {todos.map((todo) => ( openDetails(todo)} numberOfLines={10}> {todo.title} {todo.task && todo.task.length > 50 ? `${todo.task.slice(0, 50)}...` : todo.task} {`${formatDateMDY( todo.createdAt )} ${formatTime(todo.createdAt)}`} openDetails(t)} onEdit={onEdit} onDelete={onDelete} /> ))} {selectedTodo && ( )} ); };