Skip to content

Commit 2f947ea

Browse files
add make request to join
1 parent 10a1ed6 commit 2f947ea

File tree

3 files changed

+37
-7
lines changed

3 files changed

+37
-7
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/* eslint-disable react/prop-types */
2+
import { api } from "../../../api"
3+
import useFetch from "../../../CustomHooks/useFetch"
4+
import { postOptions } from "../../../options";
5+
import { useCenterContent } from "../CenterContent/CenterContentContext";
6+
import ReactLoading from 'react-loading';
7+
8+
9+
function JoinTeam({team}) {
10+
const {fetchApi:joinTeam,loading}=useFetch(`${api}/join-requests/join/${team.id}`,postOptions)
11+
const { setCenterContent } = useCenterContent();
12+
const joinHandler=async()=>{
13+
const res=await joinTeam()
14+
console.log(res)
15+
setCenterContent('waitscreen')
16+
}
17+
return (
18+
<>
19+
{!loading? <button onClick={()=>joinHandler()} className='bg-[rgba(217,198,164,1)] rounded-[10px] text-[12px] font-medium w-[60px] h-[30px] element-center shadow-none' >Join</button>:
20+
<div className="element-center center-element w-[60px]"> <ReactLoading
21+
className="mx-auto"
22+
type="spin"
23+
color="#D9C6A4"
24+
height={20}
25+
width={20}
26+
/></div>
27+
}
28+
29+
</>
30+
)
31+
}
32+
33+
export default JoinTeam

src/Components/Teams/TeamsCenterContent.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import WaitingScreen from "./WaitingScreen"
33
import TeamChat from './TeamChat/TeamChat'
44
import { useCenterContent } from "./CenterContent/CenterContentContext";
55
function TeamsCenterContent({isFixed,scroll}) {
6-
const { centerContent, setCenterContent } = useCenterContent();
6+
const { centerContent } = useCenterContent();
77

88

99
if(!centerContent) {

src/Components/Teams/TeamsList/TeamItemList.jsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,19 @@ import { useNavigate } from 'react-router-dom'
33
import { useCenterContent } from '../CenterContent/CenterContentContext';
44
import {useSelector} from 'react-redux'
55
import { imgLink } from '../../../api';
6+
import JoinTeam from '../JoinTeam/JoinTeam';
67
function TeamItemList({team}) {
7-
const { setCenterContent } = useCenterContent();
88
const userData=useSelector(state=>state.auth).user
99
const joinedTeam=team.members?.find(user=>user.id==userData.id)
1010
const navigate=useNavigate()
11-
const clickJoinHandler=()=>{
12-
setCenterContent('waitscreen')
13-
navigate(`/teams/${team.id}`)
14-
}
11+
1512
return (
1613
<div className='flex justify-between items-center'>
1714
<div className='flex items-center gap-2'>
1815
<img src={`${imgLink}/${team.imageUrl}`} alt="teamIcon" className='w-9' />
1916
<h5 className='text-xl cursor-pointer' onClick={()=>navigate(`/teams/${team.id}`)}>{team.name} </h5>
2017
</div>
21-
{!joinedTeam&& <button className='bg-[rgba(217,198,164,1)] rounded-[10px] text-[12px] font-medium w-[60px] h-[30px] element-center shadow-none' onClick={clickJoinHandler}>Join</button>}
18+
{!joinedTeam&&<JoinTeam team={team}/>}
2219
</div>
2320
)
2421
}

0 commit comments

Comments
 (0)