From 889448bad7ac1655f878d66364ff3dea366a5cfc Mon Sep 17 00:00:00 2001 From: Renard Date: Wed, 11 Sep 2019 21:43:40 -0300 Subject: Init: Boards.js --- src/Board.js | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 53 insertions(+), 7 deletions(-) (limited to 'src/Board.js') diff --git a/src/Board.js b/src/Board.js index 18eecb8..a9293d7 100644 --- a/src/Board.js +++ b/src/Board.js @@ -1,21 +1,45 @@ import React, { Component } from "react"; -import { Loader } from "semantic-ui-react"; - +import { Loader, Message, Segment, Header } from "semantic-ui-react"; +import { Link } from "@reach/router"; +import Moment from "react-moment"; +import "moment/locale/es"; class Board extends Component { constructor() { super(); this.state = { isLoaded: false, - threadList: [] + threadList: [], + error: null } } componentDidMount() { - // fecth boardlist + fetch(`https://bienvenidoainternet.org/cgi/api/list?dir=${this.props.dir}&replies=5&limit=10`) + .then((response) => { + return response.json(); + }) + .then((resource) => { + if (resource["state"] == "error") { + this.setState({ error: resource }); + } + this.setState({ isLoaded: true, threadList: resource["threads"] }) + }) + .catch(console.error) } render() { - const { isLoaded, threadList } = this.state; + const { isLoaded, error, threadList } = this.state; + + if (error != null) { + return ( +
+ + API Status: {error.state} +

{error.message}

+
+
+ ); + } if (!isLoaded) { return ( @@ -23,9 +47,31 @@ class Board extends Component { Cargando ... ) - } else { - return "yay"; } + + return ( +
+ {threadList.map(thread => + +
+ {thread.subject} + + {thread.name} ― + +
+ +
+ + {thread.replies.map(reply => + +
+ + )} + + + )} +
+ ); } } -- cgit v1.2.1-18-gbd029