Skip to content

Commit a3935d4

Browse files
committed
fix: 멤버 추가 리스트 보여주는 기능 수정
1 parent 584d026 commit a3935d4

File tree

3 files changed

+48
-32
lines changed

3 files changed

+48
-32
lines changed

src/components/common/UserInvite.tsx

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,56 @@
1-
import { FC } from 'react';
1+
import { FC, useState } from 'react';
2+
import { searchUser } from '../../apis/authApis.ts';
23
import DialogButton from '@/components/common/DialogButton';
34
import { IconUserPlus } from '@/assets/icons';
45
import UserInviteDialog from '@/components/common/UserInviteDialog';
6+
import UserInvited from './UserInvited';
7+
import UserInviteList from './UserInviteList.tsx';
8+
9+
const UserInvite: FC = () => {
10+
const [email, setEamil] = useState('');
11+
const [list, setList] = useState<any[]>([]);
12+
const [member, setMember] = useState<any[]>([]);
13+
14+
const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {
15+
setEamil(event.target.value);
16+
};
17+
18+
const onSearchClick = () => {
19+
searchUser(email).then((nickNames) => {
20+
if (!nickNames.length) {
21+
alert('해당 닉네임을 찾을 수 없습니다.');
22+
return;
23+
}
24+
nickNames.map(({ user_nickname, id }) => {
25+
setList([
26+
<UserInviteList
27+
user_nickname={user_nickname}
28+
id={id}
29+
key={id + '-UserInviteList'}
30+
onClick={() => {
31+
if (!user_nickname.length) return;
32+
setMember([...member, <UserInvited user_nickname={user_nickname} id={id} key={id + '-Member'} />]);
33+
}}
34+
/>,
35+
]);
36+
});
37+
38+
console.log(member);
39+
});
40+
};
541

6-
export const UserInvite: FC = () => {
742
return (
843
<div>
944
멤버 초대하기 *
1045
<ul className="flex gap-2">
46+
{member}
1147
<li>
1248
<DialogButton
1349
classname={'userInvite bg-base-200 hover:bg-base-300'}
1450
name={<IconUserPlus />}
1551
title={'멤버 찾기'}
1652
desc={''}
17-
children={<UserInviteDialog />}
53+
children={<UserInviteDialog list={list} onChange={onChange} onSearchClick={onSearchClick} />}
1854
/>
1955
</li>
2056
</ul>

src/components/common/UserInviteDialog.tsx

Lines changed: 7 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,13 @@
11
import InputForm from './InputForm.tsx';
2-
import { searchUser } from '../../apis/authApis.ts';
3-
import { FC, useState } from 'react';
2+
import { FC } from 'react';
43
import { IconSearch } from '@/assets/icons';
5-
import UserInviteList from './UserInviteList.tsx';
6-
7-
const UserInvite: FC = () => {
8-
const [email, setEamil] = useState('');
9-
const [list, setList] = useState<any[]>([]);
10-
11-
const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {
12-
setEamil(event.target.value);
13-
};
14-
15-
const onSearchClick = () => {
16-
searchUser(email).then((nickNames) => {
17-
if (!nickNames.length) {
18-
alert('해당 닉네임을 찾을 수 없습니다.');
19-
return;
20-
}
21-
setList(
22-
nickNames.map(({ user_nickname, id }) => {
23-
return <UserInviteList user_nickname={user_nickname} id={id} key={id + '-UserInviteList'} />;
24-
}),
25-
);
26-
return list;
27-
});
28-
};
4+
interface Props {
5+
list: any[];
6+
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
7+
onSearchClick: () => void;
8+
}
299

10+
const UserInvite: FC<Props> = ({ list, onChange, onSearchClick }) => {
3011
return (
3112
<div>
3213
<div className="flex items-end">

src/components/common/UserInviteList.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import { IconPlus } from '@/assets/icons';
44
interface Props {
55
user_nickname: any;
66
id: string;
7+
onClick: () => void;
78
}
89

9-
const UserInviteList: FC<Props> = ({ user_nickname, id }) => {
10+
const UserInviteList: FC<Props> = ({ user_nickname, id, onClick }) => {
1011
return (
1112
<li key={id} className="border-b">
1213
<button type="button" className="ju btn flex w-full justify-between border-none bg-transparent" onClick={onClick}>
@@ -17,6 +18,4 @@ const UserInviteList: FC<Props> = ({ user_nickname, id }) => {
1718
);
1819
};
1920

20-
const onClick = () => {};
21-
2221
export default UserInviteList;

0 commit comments

Comments
 (0)