import { View, Text, ScrollView } from "react-native"; import { Badge, IconButton } from "react-native-paper"; import { useState } from "react"; import { Ionicons } from "@expo/vector-icons"; import { TodoDetailsModal } from "@/components/features/todos/TodoDetailsModal"; import { Todo } from "@/store/models/Todo.model"; import { PriorityIndicator } from "@/components/ui/PriorityIndicator"; import { SizeEnum } from "@/constants/sizeEnum"; import { TodoStatusColors } from "@/constants/todoStatusEnum"; import { formatDateMDY, formatTime } from "@/utils/dateUtils"; interface MobileAdminTodoTableProps { todos: Todo[]; onEdit: (todo: Todo) => void; onDelete: (todo: Todo) => void; } export const MobileAdminTodosTable = ({ todos, onEdit, onDelete, }: MobileAdminTodoTableProps) => { 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) => { const taskPreview = todo.task && todo.task.length > 50 ? `${todo.task.slice(0, 50)}...` : todo.task; return ( {todo.title} {`${formatDateMDY(todo.createdAt)} ${formatTime( todo.createdAt )}`} {taskPreview} openDetails(todo)} /> { onEdit(todo); }} /> { onDelete(todo); }} /> ); })} {selectedTodo && ( )} ); };