diff --git a/com-dict-client/package.json b/com-dict-client/package.json
index b8a6de3..500ab41 100644
--- a/com-dict-client/package.json
+++ b/com-dict-client/package.json
@@ -8,7 +8,7 @@
"@testing-library/user-event": "^7.2.1",
"algoliasearch": "^4.3.1",
"antd": "^4.2.5",
- "firebase": "^7.13.1",
+ "firebase": "^8.10.0",
"firebase-admin": "^11.5.0",
"firebase-functions": "^3.8.0",
"react": "^16.13.1",
diff --git a/com-dict-client/src/components/Search/WordSearch.js b/com-dict-client/src/components/Search/WordSearch.js
index b9f9a93..68ec7ef 100644
--- a/com-dict-client/src/components/Search/WordSearch.js
+++ b/com-dict-client/src/components/Search/WordSearch.js
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from "react";
+import React, { useRef, useState, useEffect } from "react";
import { Typography, Card, Row, Col, Divider, Button, message } from "antd";
import {
SoundOutlined,
@@ -38,6 +38,8 @@ function WordSearch(props) {
// word_of_the_day,
} = props.data;
+ const likesCount = useRef(parseInt(likes));
+ const dislikesCount = useRef(parseInt(dislikes));
const history = useHistory();
const firestore = useFirestore();
const user = useSelector((state) => state.firebase.auth);
@@ -53,13 +55,21 @@ function WordSearch(props) {
likes: parseInt(likes) + 1,
dislikes: dislikes > 0 ? parseInt(dislikes) - 1 : dislikes,
};
- console.log(myLikes, user_likes, new_likes);
if (myLikes.length < 1) {
updateWord(id, new_likes)(firestore);
addLikes(user_likes)(firestore);
myDislikes.length > 0 && deleteDislikes(myDislikes[0].id)(firestore);
+ myDislikes.length > 0 && (dislikesCount.current -= 1);
+ likesCount.current += 1;
} else {
- return message.error("You already liked.");
+ let new_likes = {
+ likes: likes > 0 ? parseInt(likes) - 1 : likes,
+ dislikes: dislikes,
+ };
+ updateWord(id, new_likes)(firestore);
+ myLikes.length > 0 && deleteLikes(myLikes[0].id)(firestore);
+ myLikes.length > 0 && (likesCount.current -= 1);
+ // return message.error("You already liked.");
}
};
const handleDislike = () => {
@@ -74,13 +84,21 @@ function WordSearch(props) {
dislikes: parseInt(dislikes) + 1,
likes: likes > 0 ? parseInt(likes) - 1 : likes,
};
- console.log(myDislikes, user_dislikes, new_dislikes);
if (myDislikes.length < 1) {
updateWord(id, new_dislikes)(firestore);
addDislikes(user_dislikes)(firestore);
myLikes.length > 0 && deleteLikes(myLikes[0].id)(firestore);
+ myLikes.length > 0 && (likesCount.current -= 1);
+ dislikesCount.current += 1;
} else {
- return message.error("You already disliked.");
+ let new_dislikes = {
+ dislikes: dislikes > 0? parseInt(dislikes) - 1: dislikes,
+ likes: likes,
+ };
+ updateWord(id, new_dislikes)(firestore);
+ myDislikes.length > 0 && deleteDislikes(myDislikes[0].id)(firestore);
+ myDislikes.length > 0 && (dislikesCount.current -= 1);
+ // return message.error("You already disliked.");
}
};
@@ -201,7 +219,7 @@ function WordSearch(props) {
onClick={handleLike}
style={{ fontSize: "4vmin" }}
/>
- {likes}
+ { likesCount.current }
- {dislikes}
+ { dislikesCount.current }
diff --git a/com-dict-client/src/components/WordAlpabatical/word.js b/com-dict-client/src/components/WordAlpabatical/word.js
index 8bf1c67..dd12793 100644
--- a/com-dict-client/src/components/WordAlpabatical/word.js
+++ b/com-dict-client/src/components/WordAlpabatical/word.js
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from "react";
+import React, { useRef, useState, useEffect } from "react";
import { Typography, Card, Row, Col, Divider, Button, message } from "antd";
import {
SoundOutlined,
@@ -38,6 +38,8 @@ function WordCustom(props) {
// word_of_the_day,
} = props.data;
+ const likesCount = useRef(parseInt(likes));
+ const dislikesCount = useRef(parseInt(dislikes));
const history = useHistory();
const firestore = useFirestore();
const user = useSelector((state) => state.firebase.auth);
@@ -53,13 +55,21 @@ function WordCustom(props) {
likes: parseInt(likes) + 1,
dislikes: dislikes > 0 ? parseInt(dislikes) - 1 : dislikes,
};
- console.log(myLikes, user_likes, new_likes);
if (myLikes.length < 1) {
updateWord(id, new_likes)(firestore);
addLikes(user_likes)(firestore);
myDislikes.length > 0 && deleteDislikes(myDislikes[0].id)(firestore);
+ myDislikes.length > 0 && (dislikesCount.current -= 1);
+ likesCount.current += 1;
} else {
- return message.error("You already liked.");
+ let new_likes = {
+ likes: likes > 0 ? parseInt(likes) - 1 : likes,
+ dislikes: dislikes,
+ };
+ updateWord(id, new_likes)(firestore);
+ myLikes.length > 0 && deleteLikes(myLikes[0].id)(firestore);
+ myLikes.length > 0 && (likesCount.current -= 1);
+ // return message.error("You already liked.");
}
};
const handleDislike = () => {
@@ -74,13 +84,21 @@ function WordCustom(props) {
dislikes: parseInt(dislikes) + 1,
likes: likes > 0 ? parseInt(likes) - 1 : likes,
};
- console.log(myDislikes, user_dislikes, new_dislikes);
if (myDislikes.length < 1) {
updateWord(id, new_dislikes)(firestore);
addDislikes(user_dislikes)(firestore);
myLikes.length > 0 && deleteLikes(myLikes[0].id)(firestore);
+ myLikes.length > 0 && (likesCount.current -= 1);
+ dislikesCount.current += 1;
} else {
- return message.error("You already disliked.");
+ let new_dislikes = {
+ dislikes: dislikes > 0? parseInt(dislikes) - 1: dislikes,
+ likes: likes,
+ };
+ updateWord(id, new_dislikes)(firestore);
+ myDislikes.length > 0 && deleteDislikes(myDislikes[0].id)(firestore);
+ myDislikes.length > 0 && (dislikesCount.current -= 1);
+ // return message.error("You already disliked.");
}
};
@@ -201,7 +219,7 @@ function WordCustom(props) {
onClick={handleLike}
style={{ fontSize: "4vmin" }}
/>
- {likes}
+ { likesCount.current }
- {dislikes}
+ { dislikesCount.current }
diff --git a/com-dict-client/src/components/WordHome/wordSimple.js b/com-dict-client/src/components/WordHome/wordSimple.js
index 8106a47..58dbce7 100644
--- a/com-dict-client/src/components/WordHome/wordSimple.js
+++ b/com-dict-client/src/components/WordHome/wordSimple.js
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from "react";
+import React, { useRef, useState, useEffect } from "react";
import { Typography, Card, Row, Col, Divider, Button, message } from "antd";
import {
SoundOutlined,
@@ -38,6 +38,8 @@ function WordSimple(props) {
word_of_the_day,
} = props.data;
+ const likesCount = useRef(parseInt(likes));
+ const dislikesCount = useRef(parseInt(dislikes));
const history = useHistory();
const firestore = useFirestore();
const user = useSelector((state) => state.firebase.auth);
@@ -53,13 +55,21 @@ function WordSimple(props) {
likes: parseInt(likes) + 1,
dislikes: dislikes > 0 ? parseInt(dislikes) - 1 : dislikes,
};
- console.log(myLikes, user_likes, new_likes);
if (myLikes.length < 1) {
updateWord(id, new_likes)(firestore);
addLikes(user_likes)(firestore);
myDislikes.length > 0 && deleteDislikes(myDislikes[0].id)(firestore);
+ myDislikes.length > 0 && (dislikesCount.current -= 1);
+ likesCount.current += 1;
} else {
- return message.error("You already liked.");
+ let new_likes = {
+ likes: likes > 0 ? parseInt(likes) - 1 : likes,
+ dislikes: dislikes,
+ };
+ updateWord(id, new_likes)(firestore);
+ myLikes.length > 0 && deleteLikes(myLikes[0].id)(firestore);
+ myLikes.length > 0 && (likesCount.current -= 1);
+ // return message.error("You already liked.");
}
};
const handleDislike = () => {
@@ -74,13 +84,21 @@ function WordSimple(props) {
dislikes: parseInt(dislikes) + 1,
likes: likes > 0 ? parseInt(likes) - 1 : likes,
};
- console.log(myDislikes, user_dislikes, new_dislikes);
if (myDislikes.length < 1) {
updateWord(id, new_dislikes)(firestore);
addDislikes(user_dislikes)(firestore);
myLikes.length > 0 && deleteLikes(myLikes[0].id)(firestore);
+ myLikes.length > 0 && (likesCount.current -= 1);
+ dislikesCount.current += 1;
} else {
- return message.error("You already disliked.");
+ let new_dislikes = {
+ dislikes: dislikes > 0? parseInt(dislikes) - 1: dislikes,
+ likes: likes,
+ };
+ updateWord(id, new_dislikes)(firestore);
+ myDislikes.length > 0 && deleteDislikes(myDislikes[0].id)(firestore);
+ myDislikes.length > 0 && (dislikesCount.current -= 1);
+ // return message.error("You already disliked.");
}
};
@@ -219,7 +237,7 @@ function WordSimple(props) {
onClick={handleLike}
style={{ fontSize: "4vmin" }}
/>
- {likes}
+ { likesCount.current }
- {dislikes}
+ { dislikesCount.current }