chat retrieval is done
This commit is contained in:
parent
d1e824ab77
commit
86db5df813
@ -5,7 +5,7 @@ const LOCAL = "http://localhost:8099";
|
|||||||
const DEV = "https://dev.bro-js.ru";
|
const DEV = "https://dev.bro-js.ru";
|
||||||
const SERVER = "";
|
const SERVER = "";
|
||||||
|
|
||||||
export const BASE_API_URL = LOCAL + getConfigValue("enterfront.api") + "/enterfront";
|
export const BASE_API_URL = DEV + getConfigValue("enterfront.api") + "/enterfront";
|
||||||
|
|
||||||
// fetch(`${BASE_API_URL}/books/list`)
|
// fetch(`${BASE_API_URL}/books/list`)
|
||||||
|
|
||||||
|
11
src/components/home/Search.jsx
Normal file
11
src/components/home/Search.jsx
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const Search = (props) => {
|
||||||
|
return (
|
||||||
|
<a className="MyButton search-class mclaren-regular" onClick={() => {
|
||||||
|
props.search(props.item);
|
||||||
|
}}>Find</a>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Search;
|
@ -12,11 +12,23 @@
|
|||||||
color: orange;
|
color: orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.search-class {
|
||||||
|
margin-top: 2vw;
|
||||||
|
margin-bottom: 4vw;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@media only screen and (max-width: 800px) {
|
@media only screen and (max-width: 800px) {
|
||||||
.homeTitle {
|
.homeTitle {
|
||||||
font-size: 8vh;
|
font-size: 8vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.search-class {
|
||||||
|
margin-top: 3vh;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.chatIcon {
|
.chatIcon {
|
||||||
|
@ -8,6 +8,7 @@ const InputField = (props) => {
|
|||||||
onChange={(e) => props.setValue(e.target.value)}
|
onChange={(e) => props.setValue(e.target.value)}
|
||||||
value={props.value}
|
value={props.value}
|
||||||
className="Input"
|
className="Input"
|
||||||
|
placeholder={(props.placeholder) ? props.placeholder : ''}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -4,10 +4,14 @@ import ChatsList from "../components/home/ChatsList.jsx";
|
|||||||
import Header from "../components/home/Header.jsx";
|
import Header from "../components/home/Header.jsx";
|
||||||
import {displayMessage} from "../backend/notifications/notifications";
|
import {displayMessage} from "../backend/notifications/notifications";
|
||||||
import {MessageType} from "../backend/notifications/message";
|
import {MessageType} from "../backend/notifications/message";
|
||||||
import {get} from "../backend/api";
|
import {get, post} from "../backend/api";
|
||||||
|
import InputField from "../components/reg/InputField.jsx";
|
||||||
|
import Search from "../components/home/Search.jsx";
|
||||||
|
import {URLs} from "../__data__/urls";
|
||||||
|
|
||||||
const Home = () => {
|
const Home = () => {
|
||||||
const [chats, setChats] = useState([])
|
const [chats, setChats] = useState([])
|
||||||
|
const [interlocutor, setInterlocutor] = useState("")
|
||||||
|
|
||||||
async function retrieveChats() {
|
async function retrieveChats() {
|
||||||
const username = localStorage.getItem("username");
|
const username = localStorage.getItem("username");
|
||||||
@ -24,6 +28,23 @@ const Home = () => {
|
|||||||
setChats(data.chats);
|
setChats(data.chats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function createChat(alias) {
|
||||||
|
const username = localStorage.getItem("username");
|
||||||
|
if (!username) {
|
||||||
|
displayMessage("You're not logged in!", MessageType.WARN);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const {ok, data} = await post('/chat/item/' + username + '/' + alias);
|
||||||
|
if (!ok) {
|
||||||
|
displayMessage(data.message, MessageType.ERROR);
|
||||||
|
} else {
|
||||||
|
localStorage.setItem('message', 'Successfully opened chat!');
|
||||||
|
localStorage.setItem('interlocutorId', alias);
|
||||||
|
window.location.href = URLs.chat.url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
useEffect(() => {retrieveChats().then()}, [])
|
useEffect(() => {retrieveChats().then()}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -33,6 +54,15 @@ const Home = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<HomeTitle/>
|
<HomeTitle/>
|
||||||
|
|
||||||
|
<InputField
|
||||||
|
title="Create new chat"
|
||||||
|
value={interlocutor}
|
||||||
|
setValue={setInterlocutor}
|
||||||
|
placeholder="Enter the username (id)"
|
||||||
|
/>
|
||||||
|
<Search search={createChat} item={interlocutor}/>
|
||||||
|
|
||||||
<p>Your chats</p>
|
<p>Your chats</p>
|
||||||
<ChatsList chats={chats} />
|
<ChatsList chats={chats} />
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,7 +2,7 @@ const chatRouter = require('express').Router();
|
|||||||
|
|
||||||
module.exports = chatRouter;
|
module.exports = chatRouter;
|
||||||
|
|
||||||
const { getChatFromDB, getUsersChats, addChatToDB } = require('../db');
|
const { getChatFromDB, getUsersChats, addChatToDB, getUserFromDB } = require('../db');
|
||||||
|
|
||||||
chatRouter.get('/item/:id1/:id2', (req, res) => {
|
chatRouter.get('/item/:id1/:id2', (req, res) => {
|
||||||
const { id1, id2 } = req.params;
|
const { id1, id2 } = req.params;
|
||||||
@ -27,16 +27,20 @@ chatRouter.post('/item/:id1/:id2', (req, res) => {
|
|||||||
// Chat already exists
|
// Chat already exists
|
||||||
res.status(200).send({chat});
|
res.status(200).send({chat});
|
||||||
} else {
|
} else {
|
||||||
// Creating new chat
|
if (!getUserFromDB(id1) || !getUserFromDB(id2)) {
|
||||||
const newChat = {
|
res.status(404).send({message: 'Such interlocutor does not exist'});
|
||||||
id1: id1,
|
} else {
|
||||||
id2: id2,
|
// Creating new chat
|
||||||
messages: []
|
const newChat = {
|
||||||
|
id1: id1,
|
||||||
|
id2: id2,
|
||||||
|
messages: []
|
||||||
|
}
|
||||||
|
|
||||||
|
addChatToDB(newChat);
|
||||||
|
|
||||||
|
res.status(200).send({newChat});
|
||||||
}
|
}
|
||||||
|
|
||||||
addChatToDB(newChat);
|
|
||||||
|
|
||||||
res.status(200).send({newChat});
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user