import { useCallback, useEffect, useState } from 'react' import { ArrowLeft, Download, File, Folder, LoaderCircle } from 'lucide-react' import { Button } from '@/components/ui/button' import { drive, message, publicFileUrl } from '@/api/client' export default function PublicSharePage({token}) { const [parent,setParent] = useState(null) const [data,setData] = useState(null) const [error,setError] = useState('') const [loading,setLoading] = useState(true) const load = useCallback(async()=>{ setLoading(true) try {setData(await drive.publicBrowse(token,parent));setError('')} catch(e){setError(e?.response?.status===404 ? 'Ce lien est invalide ou n’est plus disponible.' : message(e))} finally{setLoading(false)} },[token,parent]) useEffect(()=>{load()},[load]) const folderBack = () => { if(!data?.breadcrumb?.length || data.breadcrumb.length<=1) {setParent(null);return} setParent(data.breadcrumb.at(-2).id) } return
GoodDrive

GoodDrive

Fichier partagé publiquement

{loading ?

Chargement…

: error ?

{error}

: data && <>

{data.root.name}

{data.root.is_folder && <>
{!!parent && } {data.breadcrumb?.map(node=>node.name).join(' / ')}
{data.items?.length ? data.items.map(item=>
{item.is_folder?:}{item.name}
{item.is_folder ? : }
) :

Ce dossier est vide.

}
} {!data.root.is_folder && Télécharger {data.root.name}} }
}