import { Backdrop, ButtonIcon, Cell, } from "@codex-storage/marketplace-ui-components"; import { FolderButton } from "./FolderButton"; import { CodexDataContent } from "@codex-storage/sdk-js"; import { CodexSdk } from "../../sdk/codex"; import "./FileActions.css"; import DownloadIcon from "../../assets/icons/download-file.svg?react"; import InfoFileIcon from "../../assets/icons/info-file.svg?react"; import DotsIcon from "../../assets/icons/dots.svg?react"; import { useIsMobile } from "../../hooks/useMobile"; import { useState } from "react"; import { attributes } from "../../utils/attributes"; import CopyIcon from "../../assets/icons/copy.svg?react"; type Props = { content: CodexDataContent; folders: [string, string[]][]; onFolderToggle: (cid: string, folder: string) => void; onDetails: (cid: string) => void; }; export function FileActions({ content, folders, onFolderToggle, onDetails, }: Props) { const isMobile = useIsMobile(); const url = CodexSdk.url() + "/api/codex/v1/data/"; const [isExpanded, setIsExpanded] = useState(false); const onClose = () => setIsExpanded(false); const onOpen = () => setIsExpanded(true); const onCopy = (cid: string) => { setIsExpanded(false); navigator.clipboard.writeText(cid); }; if (isMobile) { return ( <> ( )}> { window.open(url + content.cid, "_blank"); setIsExpanded(false); }}> Download { onDetails(content.cid); setIsExpanded(false); }}> Details onCopy(content.cid)}> Copy > ); } return ( window.open(url + content.cid, "_blank")} Icon={() => }> [ folder, files.includes(content.cid), ])} onFolderToggle={(folder) => onFolderToggle(content.cid, folder)} /> onDetails(content.cid)} Icon={InfoFileIcon}> ); }