frontend/app/searchnbrowse/EntrySummaryLi.tsx (31 lines of code) (raw):

import React from "react"; import { DeleteOutline } from "@material-ui/icons"; interface EntrySummaryLiProps { entry: FileEntry; entryClickedCb: (entry: FileEntry) => void; } /** * render an entry for a list summary */ const EntrySummaryLi: React.FC<EntrySummaryLiProps> = (props) => { const pathParts = props.entry.attributes.name.split("/"); const fileName = pathParts.length > 0 ? pathParts[pathParts.length - 1] : "(no name)"; const isInTrash = props.entry.metadata ? props.entry.metadata.includes("MXFS_INTRASH=true") : false; return ( <li key={props.entry.oid} className="clickable" onClick={() => props.entryClickedCb(props.entry)} > <p className="filename">{fileName}</p> <p className="supplementary"> {props.entry.attributes.size}{" "} {isInTrash ? ( <DeleteOutline id="delete-icon" style={{ marginLeft: "1em", height: "1em" }} /> ) : null} </p> <p className="supplementary">{props.entry.attributes.ctime}</p> </li> ); }; export default EntrySummaryLi;