import React, { useState, useEffect } from "react"; import ReactMarkdown from "react-markdown"; import { Table, Tag } from "antd"; const API_URL = "https://api.github.com/repos/owncast/owncast/releases/latest"; export default function Logs() { const [release, setRelease] = useState({ html_url: "", name: "", created_at: null, body: "", assets: [], }); const getRelease = async () => { try { const result = await fetchData(API_URL); setRelease(result); } catch (error) { console.log("==== error", error); } }; useEffect(() => { getRelease(); }, []); if (!release) { return null; } return (

{release.name}

{release.created_at}

{release.body};

Downloads

); } function AssetTable(assets) { const data = []; for (const key in assets) { data.push(assets[key]); } const columns = [ { title: "Name", dataIndex: "name", key: "name", render: (text, entry) => `${text}`, }, { title: "Size", dataIndex: "size", key: "size", render: (text, entry) => `${(text/1024/1024).toFixed(2)} MB` }, ]; return ; } async function fetchData(url) { try { const response = await fetch(url); if (!response.ok) { const message = `An error has occured: ${response.status}`; throw new Error(message); } const json = await response.json(); return json; } catch (error) { console.log(error); } return {}; }