refactor(useless useState dashboard): removed useless usestate of dashboard

likedUser et dislikedUser
This commit is contained in:
Laurian-Dufrechou
2023-05-03 23:25:46 +02:00
parent a9ca7bd79b
commit db8e513ceb
3 changed files with 44 additions and 19 deletions
@@ -18,14 +18,7 @@ import { useState } from "react";
import SearchFailCard from "./SearchFailCard";
import LoadingPage from "@/components/LoadingPage";
export default function CardUser({
users,
loggedUser,
userLikes,
setUserLikes,
userDislikes,
setUserDislikes,
}) {
export default function CardUser({ users, loggedUser, setMatch }) {
const toast = useToast({
position: "top",
duration: 2000,
@@ -61,8 +54,10 @@ export default function CardUser({
});
return;
}
if (data.match) {
setMatch(true);
}
setListUsers(listUsers.slice(1));
setUserLikes([...userLikes, data.userLiked]);
toast({
title: "J'aime",
description: "Votre action a bien été prise en compte",
@@ -103,7 +98,6 @@ export default function CardUser({
return;
}
setListUsers(listUsers.slice(1));
setUserDislikes([...userDislikes, data.userDisliked]);
toast({
title: "J'aime pas",
description: "Votre action a bien été prise en compte",
+24
View File
@@ -18,6 +18,30 @@ const post = async (req, res) => {
const match = likedByList.OtherUserLikesID.includes(idUserLiked);
if (match) {
await prisma.notification.create({
data: {
type: NotificationType.MATCH,
user: {
connect: {
id: idUser,
},
},
},
});
await prisma.notification.create({
data: {
type: NotificationType.MATCH,
user: {
connect: {
id: idUserLiked,
},
},
},
});
}
//faire une notification mais faut qu'on regarde un meilleur moyen dans la BD
await prisma.user.update({
+16 -9
View File
@@ -16,8 +16,7 @@ import LoadingPage from "@/components/LoadingPage";
export default function Dashboard() {
const router = useRouter();
const toast = useToast({ position: "top", isClosable: true });
const [userLikes, setUserLikes] = useState([] as string[]);
const [userDislikes, setUserDislikes] = useState([] as string[]);
const [newMatch, setNewMatch] = useState(false);
const { data: session, status } = useSession();
@@ -32,9 +31,6 @@ export default function Dashboard() {
queryFn: async () => {
const { user } = session as unknown as Session;
setUserDislikes([...user.UserDislikesID]);
setUserLikes([...user.UserLikesID]);
return fetch(`/api/users/${user.id}`)
.then((res) => {
return res.json();
@@ -76,6 +72,20 @@ export default function Dashboard() {
if (status === "unauthenticated") router.push("/");
}
/**
*
* Avec newMatch, faire une fonction qui refetch le user et qui affiche
* un modal avec les infos du user matché
*
* (peut etre invalidateQueries mais apres je sais pas comment on la relance)
*
* Si j'arrive à faire le invalidateQueries, je met dans le useQuery
* onSuccess: (loggedUser) => {
* if (loggedUser.match.length > 0)
* afficher le modal
*
*/
return (
<>
<Head>
@@ -105,10 +115,7 @@ export default function Dashboard() {
<CardUser
users={listUsers.users}
loggedUser={loggedUser}
userLikes={userLikes}
setUserLikes={setUserLikes}
userDislikes={userDislikes}
setUserDislikes={setUserDislikes}
setMatch={setNewMatch}
/>
)}
</Box>