aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/components/Discussions.tsx
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-31 23:58:14 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-31 23:58:14 +0300
commitf5ad360d02303ce27a65e67feb8ae38f1e26742c (patch)
treeb3e5b0fde361223275b8cc91fe0ccbdbb945ed13 /frontend/src/components/Discussions.tsx
parentbackend: remove auth check for viewing user page (diff)
downloadlphub-f5ad360d02303ce27a65e67feb8ae38f1e26742c.tar.gz
lphub-f5ad360d02303ce27a65e67feb8ae38f1e26742c.tar.bz2
lphub-f5ad360d02303ce27a65e67feb8ae38f1e26742c.zip
frontend: convert all native confirm and alerts to custom hooks
Diffstat (limited to 'frontend/src/components/Discussions.tsx')
-rw-r--r--frontend/src/components/Discussions.tsx12
1 files changed, 8 insertions, 4 deletions
diff --git a/frontend/src/components/Discussions.tsx b/frontend/src/components/Discussions.tsx
index c22de79..0522910 100644
--- a/frontend/src/components/Discussions.tsx
+++ b/frontend/src/components/Discussions.tsx
@@ -6,6 +6,7 @@ import { time_ago } from '../utils/Time';
6import { API } from '../api/Api'; 6import { API } from '../api/Api';
7import "../css/Maps.css" 7import "../css/Maps.css"
8import { Link } from 'react-router-dom'; 8import { Link } from 'react-router-dom';
9import useConfirm from '../hooks/UseConfirm';
9 10
10interface DiscussionsProps { 11interface DiscussionsProps {
11 token?: string 12 token?: string
@@ -17,6 +18,8 @@ interface DiscussionsProps {
17 18
18const Discussions: React.FC<DiscussionsProps> = ({ token, data, isModerator, mapID, onRefresh }) => { 19const Discussions: React.FC<DiscussionsProps> = ({ token, data, isModerator, mapID, onRefresh }) => {
19 20
21 const { confirm, ConfirmDialogComponent } = useConfirm();
22
20 const [discussionThread, setDiscussionThread] = React.useState<MapDiscussion | undefined>(undefined); 23 const [discussionThread, setDiscussionThread] = React.useState<MapDiscussion | undefined>(undefined);
21 const [discussionSearch, setDiscussionSearch] = React.useState<string>(""); 24 const [discussionSearch, setDiscussionSearch] = React.useState<string>("");
22 25
@@ -48,7 +51,7 @@ const Discussions: React.FC<DiscussionsProps> = ({ token, data, isModerator, map
48 }; 51 };
49 52
50 const _delete_map_discussion = async (discussion: MapDiscussionsDetail) => { 53 const _delete_map_discussion = async (discussion: MapDiscussionsDetail) => {
51 if (window.confirm(`Are you sure you want to remove post: ${discussion.title}?`)) { 54 if (await confirm("Delete Map Discussion", `Are you sure you want to remove post: ${discussion.title}?`)) {
52 if (token) { 55 if (token) {
53 await API.delete_map_discussion(token, mapID, discussion.id); 56 await API.delete_map_discussion(token, mapID, discussion.id);
54 onRefresh(); 57 onRefresh();
@@ -58,6 +61,7 @@ const Discussions: React.FC<DiscussionsProps> = ({ token, data, isModerator, map
58 61
59 return ( 62 return (
60 <section id='section7' className='summary3'> 63 <section id='section7' className='summary3'>
64 {ConfirmDialogComponent}
61 <div id='discussion-search'> 65 <div id='discussion-search'>
62 <input type="text" value={discussionSearch} placeholder={"Search for posts..."} onChange={(e) => setDiscussionSearch(e.target.value)} /> 66 <input type="text" value={discussionSearch} placeholder={"Search for posts..."} onChange={(e) => setDiscussionSearch(e.target.value)} />
63 <div><button onClick={() => setCreateDiscussion(true)}>New Post</button></div> 67 <div><button onClick={() => setCreateDiscussion(true)}>New Post</button></div>
@@ -119,9 +123,9 @@ const Discussions: React.FC<DiscussionsProps> = ({ token, data, isModerator, map
119 } 123 }
120 </div> 124 </div>
121 <div id='discussion-send'> 125 <div id='discussion-send'>
122 <input type="text" value={createDiscussionCommentContent} placeholder={"Message"} 126 <input type="text" value={createDiscussionCommentContent} placeholder={"Message"}
123 onKeyDown={(e) => e.key === "Enter" && _create_map_discussion_comment(discussionThread.discussion.id)} 127 onKeyDown={(e) => e.key === "Enter" && _create_map_discussion_comment(discussionThread.discussion.id)}
124 onChange={(e) => setCreateDiscussionCommentContent(e.target.value)} /> 128 onChange={(e) => setCreateDiscussionCommentContent(e.target.value)} />
125 <div><button onClick={() => { 129 <div><button onClick={() => {
126 if (createDiscussionCommentContent !== "") { 130 if (createDiscussionCommentContent !== "") {
127 _create_map_discussion_comment(discussionThread.discussion.id); 131 _create_map_discussion_comment(discussionThread.discussion.id);