Skip to content

Commit 7e8e5ff

Browse files
authored
Merge pull request #180 from imaginer-dev/179-로그아웃-할-수-있어야-한다
179 로그아웃 할 수 있어야 한다
2 parents 5d62fa6 + 786c137 commit 7e8e5ff

File tree

5 files changed

+56
-11
lines changed

5 files changed

+56
-11
lines changed

README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,36 @@
11
# DateLeaf
2+
23
> **DateLeaf**는 다수의 사람들과의 **모임 시간**을 보다 **편리하게 계획**하기 위한 **스케줄러** 입니다.
3-
<br><br>
4-
모임을 잡으면서 모든 인원의 일정을 일일이 맞추기 어려울 때,<br>
5-
매번 번거로운 투표와 생각지 못한 이중약속으로 난감할 때,<br>
6-
한 번에 너무 많은 스케쥴이 발생하여 나조차도 모든 일정을 기억하기 힘들 때,<br>
7-
서로의 일정을 입력만 하면 모두가 가능한 날짜와 시간을 자동으로 계산하여<br>
8-
보다 편리하게 모임 계획을 세울수 있도록 도와줍니다.
4+
> <br><br>
5+
> 모임을 잡으면서 모든 인원의 일정을 일일이 맞추기 어려울 때,<br>
6+
> 매번 번거로운 투표와 생각지 못한 이중약속으로 난감할 때,<br>
7+
> 한 번에 너무 많은 스케쥴이 발생하여 나조차도 모든 일정을 기억하기 힘들 때,<br>
8+
> 서로의 일정을 입력만 하면 모두가 가능한 날짜와 시간을 자동으로 계산하여<br>
9+
> 보다 편리하게 모임 계획을 세울수 있도록 도와줍니다.
910
1011
![intro](https://github.com/imaginer-dev/DateLeaf/assets/81802112/57386410-3cda-438d-9368-9216991f607f)
1112

12-
1313
## WHAT FOR?
14+
1415
현대사회에 불고 있는 자기계발 열풍은, 일시적인 유행을 넘어 하나의 사회 현상으로 자리매김하였습니다.<br>
1516
이러한 자기계발의 시대에 사람들은 규모도 종류도 다양한 모임 활동을 하게되는데<br>
1617
그때마다 수많은 일정들의 조율에서 오는 피로가 즐기고자 시작한 일이 되려 힘들어지는 이유가 되기도 합니다.<br>
1718
우리는 그러한 사람들의 불편함을 인지하였고, 이 부분을 자동화로 만들어서 보다 편리하게 모임 계획을 세울수 있도록 했습니다.
1819

1920
## YOU CAN DO.
21+
2022
![image](https://github.com/imaginer-dev/DateLeaf/assets/81802112/6663f95b-a2b0-4faa-830b-8e1ba1e7bf39)
2123

2224
![image](https://github.com/imaginer-dev/DateLeaf/assets/81802112/04b0f787-c0d4-4088-8978-0f9adf97604b)
2325

2426
## WHAT WE DO
2527

26-
2728
## WE USED
29+
2830
![image](https://github.com/imaginer-dev/DateLeaf/assets/81802112/3cd4ee87-e28a-49d1-81ba-cef8bd8c46b7)
2931

3032
## OUR CHALLENGE
3133

3234
## WHO WE ARE
35+
3336
이예서

src/apis/authApis.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,12 @@ export const searchUser = async (nickname: string) => {
7070

7171
return profiles;
7272
};
73+
74+
export const signOut = async () => {
75+
const { error } = await supabase.auth.signOut();
76+
if (error) {
77+
throw error;
78+
}
79+
80+
return true;
81+
};

src/components/common/SideBar/HamburgerButton.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import SideBarGroupList from './SideBarGroupList';
33
import SideBarProfile from './SideBarProfile';
44
import { useNavigate } from 'react-router-dom';
55
import { useEffect } from 'react';
6+
import SideBarSignOutButton from '@/components/common/SideBar/SideBarSignOutButton.tsx';
67

78
const HamburgerButton = () => {
89
const { data: user, isLoading, isError } = useGetProfile();
@@ -33,9 +34,12 @@ const HamburgerButton = () => {
3334
</label>
3435
<div className="drawer-side lg:w-80">
3536
<label htmlFor="my-drawer-3" aria-label="close sidebar" className="drawer-overlay"></label>
36-
<ul className="menu min-h-full w-80 bg-base-200 p-4">
37-
<SideBarProfile imageUrl={user?.image_url ?? null} userName={user?.user_name ?? ''} />
38-
<SideBarGroupList userId={user?.id ?? ''} />
37+
<ul className="menu min-h-full w-80 flex-col justify-between bg-base-200 p-4">
38+
<div>
39+
<SideBarProfile imageUrl={user?.image_url ?? null} userName={user?.user_name ?? ''} />
40+
<SideBarGroupList userId={user?.id ?? ''} />
41+
</div>
42+
<SideBarSignOutButton />
3943
</ul>
4044
</div>
4145
</div>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { useSignOut } from '@/react-queries/useSignOut.ts';
2+
import { useNavigate } from 'react-router-dom';
3+
4+
export default function SideBarSignOutButton() {
5+
const { mutate } = useSignOut();
6+
const navigate = useNavigate();
7+
8+
const onClick = () => {
9+
mutate(undefined, {
10+
onSuccess: () => {
11+
navigate('/login');
12+
},
13+
});
14+
};
15+
16+
return (
17+
<button onClick={onClick} className={'btn btn-error font-bold'}>
18+
Sign Out
19+
</button>
20+
);
21+
}

src/react-queries/useSignOut.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { useMutation } from '@tanstack/react-query';
2+
import { signOut } from '@/apis/authApis.ts';
3+
4+
export const useSignOut = () =>
5+
useMutation({
6+
mutationKey: ['signOut'],
7+
mutationFn: signOut,
8+
});

0 commit comments

Comments
 (0)