import { Table } from "react-daisyui"; import { useBrowseObjects } from "./hooks"; import { dayjs, readableBytes } from "@/lib/utils"; import { Object } from "./types"; import { API_URL } from "@/lib/api"; type Props = { bucket: string; prefix?: string; onPrefixChange?: (prefix: string) => void; }; const ObjectList = ({ bucket, prefix, onPrefixChange }: Props) => { const { data } = useBrowseObjects(bucket, { prefix }); const onObjectClick = (object: Object) => { window.open( API_URL + `/browse/${bucket}/${data?.prefix}${object.objectKey}?view=1`, "_blank" ); }; return (
Name Size Last Modified {data?.prefixes.map((prefix) => ( onPrefixChange?.(prefix)} > {prefix.substring(0, prefix.lastIndexOf("/")).split("/").pop()} ))} {data?.objects.map((object) => ( onObjectClick(object)} > {object.objectKey} {readableBytes(object.size)} {dayjs(object.lastModified).fromNow()} ))}
); }; export default ObjectList;