import { FlatList, Pressable } from "react-native"; import React, { useMemo } from "react"; import Text from "@ui/Text"; import { HStack } from "@ui/Stack"; import { cn } from "@/lib/utils"; import { Ionicons } from "@ui/Icons"; export type FileItem = { name: string; path: string; isDirectory: boolean; }; type FileListProps = { files?: FileItem[]; onSelect?: (file: FileItem) => void; canGoBack?: boolean; }; const FileList = ({ files, onSelect, canGoBack }: FileListProps) => { const fileList = useMemo(() => { if (canGoBack) { return [{ name: "..", path: "..", isDirectory: true }, ...(files || [])]; } return files || []; }, [files, canGoBack]); return ( ( onSelect?.(item)} /> )} keyExtractor={(item) => item.path} /> ); }; const FileItem = ({ file, onPress, }: { file: FileItem; onPress?: () => void; }) => { return ( cn( "flex-1 px-4 py-3 flex flex-row gap-4 items-center", pressed && "bg-gray-100" ) } onPress={onPress} > {file.name} ); }; export default FileList;