|
1 | 1 | import { useEffect, useState } from 'react'; |
2 | 2 |
|
3 | | -import { getBadWords } from '@/apis/admin'; |
| 3 | +import { getBadWords, patchBadWordsUsed } from '@/apis/admin'; |
4 | 4 | import { AddIcon, AlarmIcon, CancelIcon } from '@/assets/icons'; |
5 | 5 |
|
6 | 6 | import AddInputButton from './components/AddInputButton'; |
7 | 7 | import AdminPageTitle from './components/AdminPageTitle'; |
8 | 8 | import WrapperFrame from './components/WrapperFrame'; |
9 | 9 | import WrapperTitle from './components/WrapperTitle'; |
| 10 | +import FilterTextItem from './components/FilterTextItem'; |
10 | 11 |
|
11 | 12 | export default function FilteringManage() { |
12 | | - const [badWords, setBadWords] = useState<BadWords[]>([]); |
| 13 | + const [badWords, setBadWords] = useState<BadWordsData[]>([]); |
13 | 14 | const [addInputShow, setAddInputShow] = useState<boolean>(false); |
14 | 15 |
|
| 16 | + const handleGetBadWords = async () => { |
| 17 | + const res = await getBadWords(); |
| 18 | + if (res?.status === 200) { |
| 19 | + setBadWords(res.data.data); |
| 20 | + } else { |
| 21 | + console.log('검열 조회 오류 발생'); |
| 22 | + } |
| 23 | + }; |
| 24 | + |
15 | 25 | useEffect(() => { |
16 | | - getBadWords(setBadWords); |
| 26 | + handleGetBadWords(); |
17 | 27 | }, []); |
18 | 28 | return ( |
19 | 29 | <> |
20 | 30 | <AdminPageTitle>검열 관리 / 필터링 단어 설정</AdminPageTitle> |
21 | 31 | <WrapperFrame> |
22 | 32 | <WrapperTitle title="필터링 단어" Icon={AlarmIcon} /> |
23 | 33 | <div className="mt-5 flex w-full flex-wrap gap-4"> |
24 | | - {badWords.map((badWord, idx) => { |
25 | | - return ( |
26 | | - <span |
27 | | - key={idx} |
28 | | - className="flex items-center gap-1.5 rounded-2xl bg-[#C1C1C1] px-4 py-1.5" |
29 | | - > |
30 | | - {badWord.word} |
31 | | - <button> |
32 | | - <CancelIcon className="h-4 w-4" /> |
33 | | - </button> |
34 | | - </span> |
35 | | - ); |
| 34 | + {badWords.map((badWord) => { |
| 35 | + return <FilterTextItem key={badWord.id} badWord={badWord} setBadWords={setBadWords} />; |
36 | 36 | })} |
37 | 37 | {addInputShow ? ( |
38 | 38 | <AddInputButton setAddInputShow={setAddInputShow} setBadWords={setBadWords} /> |
39 | 39 | ) : ( |
40 | | - <span className="flex items-center gap-1.5 rounded-2xl bg-[#C1C1C1] px-4 py-1.5"> |
| 40 | + <span className="bg-primary-3 flex items-center gap-1.5 rounded-2xl px-4 py-1.5"> |
41 | 41 | 추가하기 |
42 | 42 | <button |
43 | 43 | onClick={() => { |
|
0 commit comments