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}`);
}
dirkviester-custom_gpt_knowledge_base.web.val.run
Updated: January 30, 2025