import { useNavigate, useParams } from "react-router-dom" import SideBar from "../components/Sidebar/Sidebar" import { useCallback, useEffect, useState } from "react"; import { FSTracerFile } from "../lib/types"; export default function File(props: any) { const navigate = useNavigate() let { filepath } = useParams(); console.log("FILEPATH: ", filepath) const [files, setFiles] = useState([]) const latestFile = files[0] as FSTracerFile | undefined useEffect(() => { if (!props.session) { navigate('/login') } }, [props.session]) const fetchFiles = useCallback(async () => { console.log("FETCHIN FILES") const { data, error } = await props.supabase .from('file') .select() .eq('absolute_path', filepath) .order('timestamp', { ascending: false }) .range(0, 20) if (error) { console.error(error) return } console.log("RAW FILES: ", data) setFiles(data.map((file: any) => { return file as File })) console.log("FETCHED FILES") }, [props.supabase]) useEffect(() => { fetchFiles() }, []) const formatFilePathAsName = (filepath: string) => { const parts = filepath.split('/') return parts[parts.length - 1] } return ( <>
{ formatFilePathAsName(filepath as string)// TODO: Filepath could be null }
{latestFile && }
{files.map((file: FSTracerFile) => (

{file.absolute_path} - {file.timestamp}

)) }
) } interface FileInfoProps { file: FSTracerFile } function FileInfo(props: FileInfoProps) { return ( <>

Absolute path: {props.file.absolute_path}

Timestamp: {props.file.timestamp}

Content: {props.file.contents}

ID: {props.file.id}

) }