From 905c7c8c791a0f174d6c4961522eb596586c4d2c Mon Sep 17 00:00:00 2001
From: Renard
Date: Tue, 1 Oct 2019 15:59:47 -0300
Subject: Modal creación de hilos
---
src/NewThread.js | 272 ++++++++++++++++++++++++++++++++++++++++---------------
1 file changed, 199 insertions(+), 73 deletions(-)
(limited to 'src/NewThread.js')
diff --git a/src/NewThread.js b/src/NewThread.js
index c76f515..4452f35 100644
--- a/src/NewThread.js
+++ b/src/NewThread.js
@@ -1,12 +1,13 @@
import React, { Component } from "react";
import {
- Segment,
Button,
Form,
Icon,
Checkbox,
- Header
+ Message,
+ Modal
} from "semantic-ui-react";
+import { quotes } from "./Quotes";
class NewThread extends Component {
constructor(props) {
@@ -18,18 +19,128 @@ class NewThread extends Component {
message: "",
attachment: "",
selectedFile: null,
- isSpoiler: false
+ isSpoiler: false,
+ submittedName: "",
+ submittedEmail: "",
+ submittedMessage: "",
+ submittedSubject: "",
+ replyRes: null
};
this.handleChange = this.handleChange.bind(this);
+ this.handleSubmit = this.handleSubmit.bind(this);
+ this.handleClick = this.handleClick.bind(this);
}
handleChange(e) {
const { name, value } = e.target;
- this.setState({ [name]: value });
+ if (name === "hiddenInput") {
+ let hiddenInput = document.getElementById("hiddenInput");
+ if (hiddenInput.files.length === 0) {
+ this.setState({ selectedFile: null });
+ } else {
+ let file = hiddenInput.files[0].name;
+ this.setState({ selectedFile: file });
+ }
+ } else {
+ this.setState({ [name]: value });
+ }
+ }
+
+ handleClick(e) {
+ e.preventDefault();
+ document.getElementById("hiddenInput").click();
+ }
+ handleSubmit() {
+ const { name, email, message, subject } = this.state;
+ this.setState(
+ {
+ submittedName: name,
+ submittedEmail: email,
+ submittedMessage: message,
+ submittedSubject: subject,
+ replyRes: null
+ },
+ () => {
+ var {
+ submittedName,
+ submittedEmail,
+ submittedMessage,
+ submittedSubject,
+ selectedFile,
+ isSpoiler
+ } = this.state;
+ const { currentBoard } = this.props;
+ let password = JSON.parse(localStorage.getItem("settings"))
+ .postPassword;
+ let data = {
+ board: currentBoard.dir,
+ name: "",
+ email: "",
+ fielda: submittedName,
+ fieldb: submittedEmail,
+ message: submittedMessage,
+ subject: submittedSubject,
+ password: password
+ };
+
+ if (selectedFile !== null) {
+ let file = document.getElementById("hiddenInput").files[0];
+ data["file"] = file;
+ }
+
+ if (currentBoard.allow_spoilers) {
+ data["spoil"] = isSpoiler;
+ }
+
+ let userData = { name: name, email: email };
+ localStorage.setItem("userData", JSON.stringify(userData));
+
+ const formData = new FormData();
+ for (var key in data) {
+ formData.append(key, data[key]);
+ }
+
+ fetch("https://bienvenidoainternet.org/cgi/api/post", {
+ method: "POST",
+ mode: "cors",
+ redirect: "follow",
+ body: formData
+ })
+ .then(response => {
+ return response.json();
+ })
+ .then(resource => {
+ if (resource.state === "success") {
+ this.randomQuote =
+ quotes[Math.floor(Math.random() * quotes.length)];
+ this.setState({
+ replyRes: resource,
+ message: "",
+ selectedFile: null
+ });
+ let ownPosts = JSON.parse(localStorage.getItem("ownPosts"));
+ if (ownPosts === null) {
+ ownPosts = {};
+ }
+ // eslint-disable-next-line no-prototype-builtins
+ if (!ownPosts.hasOwnProperty(currentBoard.dir)) {
+ ownPosts[currentBoard.dir] = [];
+ }
+ ownPosts[currentBoard.dir] = ownPosts[currentBoard.dir].concat({
+ thread_id: resource.post_id,
+ reply_id: resource.post_id
+ });
+ localStorage.setItem("ownPosts", JSON.stringify(ownPosts));
+ } else {
+ this.setState({ replyRes: resource });
+ }
+ });
+ }
+ );
}
render() {
- const { boardList, dir } = this.props;
+ const { currentBoard, trigger } = this.props;
const {
subject,
name,
@@ -37,84 +148,99 @@ class NewThread extends Component {
message,
attachment,
selectedFile,
- isSpoiler
+ isSpoiler,
+ replyRes
} = this.state;
- const currentBoard = boardList.find(board => {
- return board.dir === dir;
- });
return (
-
-
- Crear un nuevo hilo en {currentBoard.name}
-
-
- )}
-
- {currentBoard.disable_name === 0 && (
+
+ Crear un nuevo hilo en {currentBoard.name}
+
+ {replyRes !== null &&
+ (replyRes.state === "success" ? (
+
+ Gracias por tu post
+ {this.randomQuote}
+
+
+ Nos tomó {replyRes.time_taken} segundos procesar tu mensaje.
+
+
+ ) : (
+
+ {replyRes.state}
+ {replyRes.message}
+
+ ))}
+
+
)}
-
- {currentBoard.allow_image_replies === 1 && (
-
-
+ {currentBoard.disable_name === 0 && (
+
-
-
- {selectedFile === null ? "Adjuntar archivo" : selectedFile}
-
-
- )}
-
-
- {currentBoard.allow_spoilers === 1 && (
-
+ {currentBoard.allow_image_replies === 1 && (
+
+
+
+
+ {selectedFile === null ? "Adjuntar archivo" : selectedFile}
+
+
+ )}
+
+
- )}
-
-
-
+ {currentBoard.allow_spoilers === 1 && (
+
+ )}
+
+
+
+
);
}
}
--
cgit v1.2.1-18-gbd029