From a7c282ca348c1e8e60559e5c064caee28ba11eec Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Wed, 9 Oct 2024 16:34:12 +0300 Subject: refactor: so much shit --- frontend/src/components/Discussions.tsx | 45 +- frontend/src/components/Leaderboards.tsx | 6 +- frontend/src/components/Login.tsx | 1923 +-------------------------- frontend/src/components/ModMenu.tsx | 44 +- frontend/src/components/RankingEntry.tsx | 2 +- frontend/src/components/Sidebar.tsx | 2 +- frontend/src/components/UploadRunDialog.tsx | 6 +- 7 files changed, 112 insertions(+), 1916 deletions(-) (limited to 'frontend/src/components') diff --git a/frontend/src/components/Discussions.tsx b/frontend/src/components/Discussions.tsx index 787104b..c22de79 100644 --- a/frontend/src/components/Discussions.tsx +++ b/frontend/src/components/Discussions.tsx @@ -8,13 +8,14 @@ import "../css/Maps.css" import { Link } from 'react-router-dom'; interface DiscussionsProps { + token?: string data?: MapDiscussions; isModerator: boolean; mapID: string; onRefresh: () => void; } -const Discussions: React.FC = ({ data, isModerator, mapID, onRefresh }) => { +const Discussions: React.FC = ({ token, data, isModerator, mapID, onRefresh }) => { const [discussionThread, setDiscussionThread] = React.useState(undefined); const [discussionSearch, setDiscussionSearch] = React.useState(""); @@ -24,9 +25,7 @@ const Discussions: React.FC = ({ data, isModerator, mapID, onR title: "", content: "", }); - const [createDiscussionCommentContent, setCreateDiscussionCommentContent] = React.useState({ - comment: "", - }); + const [createDiscussionCommentContent, setCreateDiscussionCommentContent] = React.useState(""); const _open_map_discussion = async (discussion_id: number) => { const mapDiscussion = await API.get_map_discussion(mapID, discussion_id); @@ -34,20 +33,26 @@ const Discussions: React.FC = ({ data, isModerator, mapID, onR }; const _create_map_discussion = async () => { - await API.post_map_discussion(mapID, createDiscussionContent); - setCreateDiscussion(false); - onRefresh(); + if (token) { + await API.post_map_discussion(token, mapID, createDiscussionContent); + setCreateDiscussion(false); + onRefresh(); + } }; const _create_map_discussion_comment = async (discussion_id: number) => { - await API.post_map_discussion_comment(mapID, discussion_id, createDiscussionCommentContent); - await _open_map_discussion(discussion_id); + if (token) { + await API.post_map_discussion_comment(token, mapID, discussion_id, createDiscussionCommentContent); + await _open_map_discussion(discussion_id); + } }; const _delete_map_discussion = async (discussion: MapDiscussionsDetail) => { if (window.confirm(`Are you sure you want to remove post: ${discussion.title}?`)) { - await API.delete_map_discussion(mapID, discussion.id); - onRefresh(); + if (token) { + await API.delete_map_discussion(token, mapID, discussion.id); + onRefresh(); + } } }; @@ -69,9 +74,9 @@ const Discussions: React.FC = ({ data, isModerator, mapID, onR ...createDiscussionContent, title: e.target.value, })} /> - setCreateDiscussionContent({ + setCreateDiscussionContent({ ...createDiscussionContent, - title: e.target.value, + content: e.target.value, })} />
@@ -114,11 +119,15 @@ const Discussions: React.FC = ({ data, isModerator, mapID, onR }
- e.key === "Enter" && _create_map_discussion_comment(discussionThread.discussion.id)} onChange={(e) => setCreateDiscussionCommentContent({ - ...createDiscussionContent, - comment: e.target.value, - })} /> -
+ e.key === "Enter" && _create_map_discussion_comment(discussionThread.discussion.id)} + onChange={(e) => setCreateDiscussionCommentContent(e.target.value)} /> +
diff --git a/frontend/src/components/Leaderboards.tsx b/frontend/src/components/Leaderboards.tsx index 159f3ed..f4d666d 100644 --- a/frontend/src/components/Leaderboards.tsx +++ b/frontend/src/components/Leaderboards.tsx @@ -88,14 +88,14 @@ const Leaderboards: React.FC = ({ data }) => { {r.kind === "multiplayer" ? ( - - + + ) : r.kind === "singleplayer" && ( - + )} diff --git a/frontend/src/components/Login.tsx b/frontend/src/components/Login.tsx index 367dc72..a8c5503 100644 --- a/frontend/src/components/Login.tsx +++ b/frontend/src/components/Login.tsx @@ -7,22 +7,25 @@ import { API } from '../api/Api'; import "../css/Login.css"; interface LoginProps { - token?: string; setToken: React.Dispatch>; profile?: UserProfile; setProfile: React.Dispatch>; }; -const Login: React.FC = ({ token, setToken, profile, setProfile }) => { +const Login: React.FC = ({ setToken, profile, setProfile }) => { const navigate = useNavigate(); + const _login = () => { + window.location.href = "/api/v1/login"; + }; + const _logout = () => { setProfile(undefined); setToken(undefined); - API.user_logout(); + API.delete_token(); navigate("/"); - } + }; return ( <> @@ -30,1893 +33,41 @@ const Login: React.FC = ({ token, setToken, profile, setProfile }) = ? ( <> - - - - + {profile.profile ? + ( + <> + + + + + + ) + : + ( + <> + + + + + + ) + } ) : ( - : diff --git a/frontend/src/components/UploadRunDialog.tsx b/frontend/src/components/UploadRunDialog.tsx index e099a40..aa7ab5a 100644 --- a/frontend/src/components/UploadRunDialog.tsx +++ b/frontend/src/components/UploadRunDialog.tsx @@ -42,8 +42,10 @@ const UploadRunDialog: React.FC = ({ open, onClose, mapID, }; React.useEffect(() => { - _handle_game_select("1"); // a different approach? - }, []); + if (open) { + _handle_game_select("1"); // a different approach?. + } + }, [open]); if (open) { return ( -- cgit v1.2.3