From d369ace07d77d86fcdd2ddd61b1b22b21407a303 Mon Sep 17 00:00:00 2001 From: woo-jk Date: Thu, 29 Aug 2024 23:36:54 +0900 Subject: [PATCH 1/4] logout --- src/container/Sidebar/Sidebar.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/container/Sidebar/Sidebar.tsx b/src/container/Sidebar/Sidebar.tsx index ad1c0ba..f7b8750 100644 --- a/src/container/Sidebar/Sidebar.tsx +++ b/src/container/Sidebar/Sidebar.tsx @@ -8,6 +8,7 @@ import { cn } from '@/utils'; import { usePathname, useRouter } from 'next/navigation'; import { useState } from 'react'; import { Collapsible } from './Collapsible/Collapsible'; +import { deleteCookie } from 'cookies-next'; const SIDEBAR_CLASSNAME = { expanded: 'w-[220px]', @@ -21,6 +22,11 @@ export function Sidebar() { const [myInfoCollapsed, setMyInfoCollapsed] = useState(true); const [myJDCollapsed, setMyJDCollapsed] = useState(true); + const logout = () => { + deleteCookie('accessToken'); + deleteCookie('refreshToken'); + router.push('/login'); + }; return ( ); From e2377c1ed4181854fb1b406164c637eba7e45abc Mon Sep 17 00:00:00 2001 From: woo-jk Date: Fri, 30 Aug 2024 02:21:25 +0900 Subject: [PATCH 2/4] select job --- src/app/login/api/usePutUserJob.ts | 8 ++++++++ src/app/login/components/Select.tsx | 18 +++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 src/app/login/api/usePutUserJob.ts diff --git a/src/app/login/api/usePutUserJob.ts b/src/app/login/api/usePutUserJob.ts new file mode 100644 index 0000000..8316ecd --- /dev/null +++ b/src/app/login/api/usePutUserJob.ts @@ -0,0 +1,8 @@ +import { http } from '@/apis/http'; +import { useMutation } from '@tanstack/react-query'; + +type JobType = '개발자' | '디자이너'; + +const putUserJob = async (job: JobType) => http.put({ url: '/users/job', data: { job } }); + +export const usePutUserJob = () => useMutation({ mutationFn: putUserJob }); diff --git a/src/app/login/components/Select.tsx b/src/app/login/components/Select.tsx index b7cf1cd..6b19eb8 100644 --- a/src/app/login/components/Select.tsx +++ b/src/app/login/components/Select.tsx @@ -5,11 +5,25 @@ import { cn } from '@/utils'; import { useState } from 'react'; import { useSession } from 'next-auth/react'; import { useRouter } from 'next/navigation'; +import { usePutUserJob } from '../api/usePutUserJob'; + +const jobMapper = { + developer: '개발자', + designer: '디자이너', +} as const; export default function Select() { const [position, setPosition] = useState<'designer' | 'developer' | ''>(''); const session = useSession(); const { push } = useRouter(); + const { mutateAsync } = usePutUserJob(); + + const handleSubmit = async () => { + if (position === '') return; + + await mutateAsync(jobMapper[position]); + push('/'); + }; return ( { - push('/'); - }}> + onClick={handleSubmit}> 선택 완료 From c5aacc85159e69c610acc353bb04b65e7c90932c Mon Sep 17 00:00:00 2001 From: woo-jk Date: Fri, 30 Aug 2024 02:37:23 +0900 Subject: [PATCH 3/4] auth --- package.json | 3 ++- src/auth.ts | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 6ec07cf..e4fb702 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "prettier": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css,scss,md}\"", "prettier:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,css,scss,md}\"", "lint": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix", - "lint:check": "eslint \"**/*.{js,jsx,ts,tsx}\"" + "lint:check": "eslint \"**/*.{js,jsx,ts,tsx}\"", + "postinstall": "prisma generate" }, "engines": { "node": "20.2.0" diff --git a/src/auth.ts b/src/auth.ts index 06f699e..2f82113 100644 --- a/src/auth.ts +++ b/src/auth.ts @@ -43,6 +43,8 @@ export const { handlers, signIn, signOut, auth } = NextAuth({ return session; }, }, + + secret: process.env.NEXTAUTH_SECRET, }); declare module 'next-auth' { From eb6ca2c56b80e231914cec5cdfa74e7e889b0705 Mon Sep 17 00:00:00 2001 From: woo-jk Date: Fri, 30 Aug 2024 02:43:50 +0900 Subject: [PATCH 4/4] script --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index e4fb702..6ec07cf 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,7 @@ "prettier": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css,scss,md}\"", "prettier:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,css,scss,md}\"", "lint": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix", - "lint:check": "eslint \"**/*.{js,jsx,ts,tsx}\"", - "postinstall": "prisma generate" + "lint:check": "eslint \"**/*.{js,jsx,ts,tsx}\"" }, "engines": { "node": "20.2.0"