"use client"; import { formatDistanceToNow } from "date-fns"; import React, { useEffect, useState, useRef } from "react"; import DocumentIcon from "@/components/Icons/Document"; import FolderIcon from "@/components/Icons/Folder"; import MenuIcon from "@/components/Icons/Menu"; import MenuContext from "@/components/FilesEditor/MenuContext"; const Index = () => { const [apiKey, setApiKey] = useState(""); const [fileList, setFileList] = useState([]); const [menuVisible, setMenuVisible] = useState(false); const [menuPosition, setMenuPosition] = useState({ x: 0, y: 0 }); const buttonRef = useRef(null); const handleButtonClick = (event: React.MouseEvent) => { event.preventDefault(); // zapobiega domyślnemu działaniu const rect = buttonRef.current?.getBoundingClientRect(); setMenuPosition({ x: rect?.left || 0, y: (rect?.bottom || 0) + window.scrollY, }); setMenuVisible(true); }; const handleSelect = (item: string) => { console.log(`Wybrano: ${item}`); setMenuVisible(false); }; const setCredentials = async () => { setApiKey("ptlc_aDGU4VHNQuN5t6dyxNzVon3UZLR5ehuySmdR7xsUbMm"); }; const formateDate = (isoDate: string) => { const date = new Date(isoDate); return formatDistanceToNow(date, { addSuffix: true }); }; const fetchFiles = async (apiKey: string) => { try { const response = await fetch( "https://ptero.przeqpiciel.com/api/client/servers/0bf192ab/files/list", { method: "GET", headers: { Authorization: "Bearer " + apiKey.toString(), "Content-Type": "application/json", }, } ); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); setFileList(data.data); } catch (error) { console.error("Error fetching data:", error); } }; useEffect(() => { setCredentials(); fetchFiles(apiKey); }, [apiKey]); return ( <> {fileList.map((file) => (
{file.attributes.is_file ? : }
{file.attributes.name}
{file.attributes.is_file ? file.attributes.size + " bytes" : ""}
{formateDate(file.attributes.modified_at)}
))} ); }; export default Index;