Back

Version 2

1/30/2025
/** @jsxImportSource https://esm.sh/react@18.2.0 */
import React, { useState, useEffect } from "https://esm.sh/react@18.2.0";
import { createRoot } from "https://esm.sh/react-dom@18.2.0/client";

function App() {
const [files, setFiles] = useState([]);
const [selectedFile, setSelectedFile] = useState(null);
const [fileContent, setFileContent] = useState("");
const [error, setError] = useState(null);
const [uploadFile, setUploadFile] = useState(null);

useEffect(() => {
fetchFiles();
}, []);

const fetchFiles = async () => {
try {
const response = await fetch('/list-files');
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const fileList = await response.json();
setFiles(fileList);
} catch (e) {
console.error("Failed to fetch files:", e);
setError("Failed to fetch files. Please try again later.");
}
};

const handleFileSelect = async (file) => {
setSelectedFile(file);
try {
const response = await fetch(`/file-content/${file.id}`);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}