From 4a39a75a5a8beda6b28b311c78990d72f1cfe7cf Mon Sep 17 00:00:00 2001 From: Renard Date: Sun, 15 Sep 2019 20:52:10 -0300 Subject: Refractor BBSThread --- src/Thread.js | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/Thread.js (limited to 'src/Thread.js') diff --git a/src/Thread.js b/src/Thread.js new file mode 100644 index 0000000..eb9d63a --- /dev/null +++ b/src/Thread.js @@ -0,0 +1,95 @@ +import React, { Component } from "react"; +import { Header, Icon, Loader, Message, Segment, Comment } from "semantic-ui-react"; +import Moment from "react-moment"; +import "moment/locale/es"; +import Post from "./Post"; +import ReplyForm from "./ReplyForm"; + +class Thread extends Component { + constructor(props) { + super(props); + this.state = { + isLoading: true, + thread: [], + error: null + } + } + + componentDidMount() { + + let apiURl; + if (this.props.id > 1000000) { + apiURl = `https://bienvenidoainternet.org/cgi/api/thread?dir=${this.props.dir}&ts=${this.props.id}`; + } else { + apiURl = `https://bienvenidoainternet.org/cgi/api/thread?dir=${this.props.dir}&id=${this.props.id}`; + } + console.log(apiURl); + fetch(apiURl) + .then((response) => { return response.json() }) + .then((resource => { + if (resource["state"] === "error") { + console.log("API Error:" + resource["message"]); + this.setState({ error: resource }); + } + this.setState({ isLoading: false, thread: resource }); + })) + .catch(console.error); + } + render() { + const { isLoading, error } = this.state; + + if (isLoading) { + return ( + + Cargando ... + + ) + } + + if (error != null) { + return ( +
+ + API Status: {error.state} +

{error.message}

+
+
+ ); + } + + const { posts, subject, timestamp, total_replies, locked, id } = this.state.thread; + + return ( +
+
+ + {subject}{locked ? : null} + + + + + Creado
+ {total_replies} respuestas
+ +
+
+ + + {posts.map((post, index) => + post.IS_DELETED === 0 ? + () : + ( + #{index} Eliminado + ) + ) + } + + + + + API Link +
); + } +} + +export default Thread; \ No newline at end of file -- cgit v1.2.1-18-gbd029