From 0a126900b9f63ceb101fdc08a5492de77c79afa1 Mon Sep 17 00:00:00 2001 From: talksik Date: Fri, 18 Mar 2022 13:24:12 -0400 Subject: [PATCH] search working and showing results but of course not working in terms of the friend requesting --- .../src/components/ProtectedRoute/index.tsx | 3 +- packages/desktop/src/controller/index.tsx | 21 ++++-- .../desktop/src/pages/Home/header/index.tsx | 8 +- packages/desktop/src/pages/Home/index.tsx | 2 +- .../desktop/src/pages/Home/search/index.tsx | 73 +++++++++++++++++-- packages/desktop/src/pages/Login/index.tsx | 6 ++ 6 files changed, 94 insertions(+), 19 deletions(-) diff --git a/packages/desktop/src/components/ProtectedRoute/index.tsx b/packages/desktop/src/components/ProtectedRoute/index.tsx index ed5794d..97c94a8 100644 --- a/packages/desktop/src/components/ProtectedRoute/index.tsx +++ b/packages/desktop/src/components/ProtectedRoute/index.tsx @@ -8,7 +8,8 @@ export default function ProtectedRoute({ }: { children?: React.ReactNode; }) { - const { isLoading, isError, refetch } = useGetUserDetails(); + const { data, isLoading, isError, refetch } = useGetUserDetails(); + console.log(data); if (isLoading) return ( diff --git a/packages/desktop/src/controller/index.tsx b/packages/desktop/src/controller/index.tsx index b409191..80c7044 100644 --- a/packages/desktop/src/controller/index.tsx +++ b/packages/desktop/src/controller/index.tsx @@ -1,9 +1,9 @@ import { $authTokens, $searchQuery } from "./recoil"; +import axios, { AxiosResponse } from "axios"; import { useMutation, useQuery } from "react-query"; import SearchResponse from "@nirvana/core/responses/search.response"; import { User } from "@nirvana/core/models"; -import axios from "axios"; import { nirvanaApi } from "./nirvanaApi"; import { queryClient } from "../nirvanaApp"; import { useRecoilValue } from "recoil"; @@ -14,7 +14,7 @@ export const localHost = "http://localhost:5000/api"; const getUserDetails = async ( accessToken: string, idToken: string -): Promise => { +): Promise> => { return await axios.get(localHost + `/users?access_token=${accessToken}`, { headers: { Authorization: idToken }, }); @@ -23,10 +23,13 @@ const getUserDetails = async ( const search = async ( idToken: string, searchQuery: string -): Promise => { - return await axios.get(localHost + `/search?query=${searchQuery}`, { - headers: { Authorization: idToken }, - }); +): Promise> => { + return await axios.get( + localHost + `/search?query=${searchQuery}`, + { + headers: { Authorization: idToken }, + } + ); }; // ====== QUERIES @@ -50,8 +53,10 @@ export function useSearch() { const authTokens = useRecoilValue($authTokens); const searchQuery = useRecoilValue($searchQuery); - return useQuery(Querytypes.GET_SEARCH_RESULTS, () => - search(authTokens.idToken, searchQuery) + return useQuery( + Querytypes.GET_SEARCH_RESULTS, + () => search(authTokens.idToken, searchQuery), + { enabled: searchQuery ? true : false } ); } diff --git a/packages/desktop/src/pages/Home/header/index.tsx b/packages/desktop/src/pages/Home/header/index.tsx index fda4fd9..269ffde 100644 --- a/packages/desktop/src/pages/Home/header/index.tsx +++ b/packages/desktop/src/pages/Home/header/index.tsx @@ -5,9 +5,13 @@ import { useGetUserDetails } from "../../../controller/index"; import { useRecoilState } from "recoil"; export default function Header() { - const { data: user } = useGetUserDetails(); + const { data: user, isLoading } = useGetUserDetails(); const [searchQuery, setSearchQuery] = useRecoilState($searchQuery); + if (isLoading) { + return getting data; + } + return (
@@ -24,7 +28,7 @@ export default function Header() { cannot find diff --git a/packages/desktop/src/pages/Home/index.tsx b/packages/desktop/src/pages/Home/index.tsx index 44e3c75..c555364 100644 --- a/packages/desktop/src/pages/Home/index.tsx +++ b/packages/desktop/src/pages/Home/index.tsx @@ -13,7 +13,7 @@ export default function Home() { const searchQuery = useRecoilValue($searchQuery); return ( -
+
{/* header */}
diff --git a/packages/desktop/src/pages/Home/search/index.tsx b/packages/desktop/src/pages/Home/search/index.tsx index 58cc334..aef8905 100644 --- a/packages/desktop/src/pages/Home/search/index.tsx +++ b/packages/desktop/src/pages/Home/search/index.tsx @@ -1,12 +1,26 @@ import { $searchQuery } from "../../../controller/recoil"; +import { FaPaperPlane } from "react-icons/fa"; +import { Tooltip } from "@mui/material"; +import { User } from "@nirvana/core/models"; import { useEffect } from "react"; +import { useRecoilState } from "recoil"; import { useSearch } from "../../../controller"; -export default function Search() { - const { data: searchResultsResponse, isLoading, isError } = useSearch(); - useEffect(() => {}, []); +// todo: +// remove myself from list +// add friend capability +// unfriend? nahhh not right now - if (!searchResultsResponse?.users) { +export default function Search() { + const [searchQuery, setSearchQuery] = useRecoilState($searchQuery); + + const { data, isLoading, isError, refetch } = useSearch(); + + useEffect(() => { + refetch(); + }, [searchQuery]); + + if (!data?.data?.users) { return ( no results. please try someone's email or name. @@ -14,10 +28,55 @@ export default function Search() { ); } + const goBack = () => { + // implicity takes user back + setSearchQuery(""); + }; + + const renderUserRow = (user: User) => { + return ( + + + + + + + + + {user.name} + + + {user.email} + + + {/* actions */} + + + + + ); + }; + return ( -
- {searchResultsResponse.users?.map((user) => { - return {user.name}; +
+ + + {data?.data?.users?.map((user) => { + return renderUserRow(user); })}
); diff --git a/packages/desktop/src/pages/Login/index.tsx b/packages/desktop/src/pages/Login/index.tsx index ab48509..c135217 100644 --- a/packages/desktop/src/pages/Login/index.tsx +++ b/packages/desktop/src/pages/Login/index.tsx @@ -20,6 +20,10 @@ export default function Login({ onReady }: { onReady: Function }) { window.electronAPI.auth.initiateLogin(); }; + const logOut = () => { + window.electronAPI.store.set(STORE_ITEMS.AUTH_TOKENS, null); + }; + const setAccessTokensAndContinue = (tokens: { accessToken: string; idToken: string; @@ -87,6 +91,8 @@ export default function Login({ onReady }: { onReady: Function }) { Continue with Google )} + +
); }