import { IconSymbol } from "@/components/ui/icon-symbol"; import React, { useRef, useState } from "react"; import { Animated, Text, TouchableOpacity, View } from "react-native"; import styles from "./style/NetListTable.styles"; // --------------------------- // 🧩 Interface // --------------------------- interface NetItem { id: string; stt: string; trangThai: string; } // --------------------------- // 🧵 Dữ liệu mẫu // --------------------------- const data: NetItem[] = [ { id: "1", stt: "Mẻ 3", trangThai: "Đã hoàn thành" }, { id: "2", stt: "Mẻ 2", trangThai: "Đã hoàn thành" }, { id: "3", stt: "Mẻ 1", trangThai: "Đã hoàn thành" }, ]; const NetListTable: React.FC = () => { const [collapsed, setCollapsed] = useState(true); const [contentHeight, setContentHeight] = useState(0); const animatedHeight = useRef(new Animated.Value(0)).current; const tongSoMe = data.length; const handleToggle = () => { const toValue = collapsed ? contentHeight : 0; Animated.timing(animatedHeight, { toValue, duration: 300, useNativeDriver: false, }).start(); setCollapsed((prev) => !prev); }; return ( {/* Header toggle */} Danh sách mẻ lưới {collapsed && {tongSoMe}} {/* Nội dung ẩn để đo chiều cao */} { const height = event.nativeEvent.layout.height; if (height > 0 && contentHeight === 0) { setContentHeight(height); } }} > {/* Header */} STT Trạng thái {/* Body */} {data.map((item) => ( {/* Cột STT */} {item.stt} {/* Cột Trạng thái */} {item.trangThai} ))} {/* Bảng hiển thị với animation */} {/* Header */} STT Trạng thái {/* Body */} {data.map((item) => ( {/* Cột STT */} {item.stt} {/* Cột Trạng thái */} {item.trangThai} ))} ); }; export default NetListTable;