File tree Expand file tree Collapse file tree 3 files changed +22
-8
lines changed
client/src/components/WorkspaceModal Expand file tree Collapse file tree 3 files changed +22
-8
lines changed Original file line number Diff line number Diff line change @@ -2,21 +2,22 @@ import React, { useState } from 'react';
22import { postWorkspace , postWorkspaceJoin } from 'src/apis/workspace' ;
33import { MENU } from 'src/constants/workspace' ;
44import useWorkspacesContext from 'src/hooks/useWorkspacesContext' ;
5+ import { Workspace } from 'src/types/workspace' ;
56
67import FormModal , { ModalContents } from './FormModal' ;
78
89interface CreateModalProps {
910 modalContents : ModalContents ;
1011 onClose : ( ) => void ;
1112 setSelectedMenu : React . Dispatch < React . SetStateAction < number > > ;
12- setCode : React . Dispatch < React . SetStateAction < string > > ;
13+ setWorkspace : React . Dispatch < React . SetStateAction < Workspace | undefined > > ;
1314}
1415
1516function CreateModal ( {
1617 modalContents,
1718 onClose,
1819 setSelectedMenu,
19- setCode ,
20+ setWorkspace ,
2021} : CreateModalProps ) {
2122 const { setWorkspaces } = useWorkspacesContext ( ) ;
2223
@@ -29,7 +30,7 @@ function CreateModal({
2930 await postWorkspaceJoin ( { code } ) ;
3031
3132 setWorkspaces ( ( workspaces ) => [ ...workspaces , workspace ] ) ;
32- setCode ( code ) ;
33+ setWorkspace ( workspace ) ;
3334 setSelectedMenu ( MENU . CREATE_SUCCESS ) ;
3435
3536 return ;
Original file line number Diff line number Diff line change 1+ import { useNavigate } from 'react-router-dom' ;
2+ import { Workspace } from 'src/types/workspace' ;
3+
14import FormModal , { ModalContents } from './FormModal' ;
25
36interface CreateSuccessModalProps {
47 modalContents : ModalContents ;
5- code : string ;
8+ workspace ?: Workspace ;
69 onClose : ( ) => void ;
710}
811
912function CreateSuccessModal ( {
1013 modalContents,
11- code ,
14+ workspace ,
1215 onClose,
1316} : CreateSuccessModalProps ) {
17+ const navigate = useNavigate ( ) ;
18+
19+ if ( ! workspace ) {
20+ throw new Error ( '일어날 수 없는 일이 일어났어요 ^^' ) ;
21+ }
22+
23+ const { id, code } = workspace ;
24+
1425 const onSubmit = ( ) => {
1526 onClose ( ) ;
27+ navigate ( `/workspace/${ id } ` ) ;
1628 return ;
1729 } ;
1830
Original file line number Diff line number Diff line change 11import { useState } from 'react' ;
22import { MENU , MODAL_MENUS } from 'src/constants/workspace' ;
3+ import { Workspace } from 'src/types/workspace' ;
34
45import CreateModal from './CreateModal' ;
56import CreateSuccessModal from './CreateSuccessModal' ;
@@ -14,7 +15,7 @@ function WorkspaceModal({
1415 selectedMenu,
1516 setSelectedMenu,
1617} : WorkspaceModalProps ) {
17- const [ code , setCode ] = useState < string > ( '' ) ;
18+ const [ workspace , setWorkspace ] = useState < Workspace > ( ) ;
1819
1920 const modalContents = MODAL_MENUS [ selectedMenu ] ;
2021
@@ -27,15 +28,15 @@ function WorkspaceModal({
2728 modalContents = { modalContents }
2829 onClose = { onClose }
2930 setSelectedMenu = { setSelectedMenu }
30- setCode = { setCode }
31+ setWorkspace = { setWorkspace }
3132 />
3233 ) ;
3334 case MENU . CREATE_SUCCESS :
3435 return (
3536 < CreateSuccessModal
3637 modalContents = { modalContents }
3738 onClose = { onClose }
38- code = { code }
39+ workspace = { workspace }
3940 />
4041 ) ;
4142 case MENU . JOIN :
You can’t perform that action at this time.
0 commit comments