import { useSearchParams } from "react-router-dom"; import { Card } from "react-daisyui"; import ObjectList from "./object-list"; import { useEffect, useState } from "react"; import ObjectListNavigator from "./object-list-navigator"; import Actions from "./actions"; import { useBucketContext } from "../context"; import ShareDialog from "./share-dialog"; const getInitialPrefixes = (searchParams: URLSearchParams) => { const prefix = searchParams.get("prefix"); if (prefix) { const paths = prefix.split("/").filter((p) => p); return paths.map((_, i) => paths.slice(0, i + 1).join("/") + "/"); } return []; }; const BrowseTab = () => { const { bucket } = useBucketContext(); const [searchParams, setSearchParams] = useSearchParams(); const [prefixHistory, setPrefixHistory] = useState( getInitialPrefixes(searchParams) ); const [curPrefix, setCurPrefix] = useState(prefixHistory.length - 1); useEffect(() => { const prefix = prefixHistory[curPrefix] || ""; const newParams = new URLSearchParams(searchParams); newParams.set("prefix", prefix); setSearchParams(newParams); }, [curPrefix]); const gotoPrefix = (prefix: string) => { const history = prefixHistory.slice(0, curPrefix + 1); setPrefixHistory([...history, prefix]); setCurPrefix(history.length); }; if (!bucket.keys.find((k) => k.permissions.read && k.permissions.write)) { return (

You need to add a key with read & write access to your bucket to be able to browse it.

); } return (
} />
); }; export default BrowseTab;