1- import React , { useRef } from ' react' ;
2- import { socket } from ' ../socket' ;
3- import ' ../css/ChattingList.css'
1+ import React , { useRef } from " react" ;
2+ import { socket } from " ../socket" ;
3+ import " ../css/ChattingList.css" ;
44
55const ChattingList = React . memo ( ( ) => {
6- const chatbox = useRef ( )
7- socket . on ( "chatting" , ( data ) => {
8- let name_element = document . createElement ( "li" ) ;
9- let chat_element = document . createElement ( "li" ) ;
10- let space_element = document . createElement ( "li" ) ;
11- let dm_element = document . createElement ( "li" ) ;
12- let chat_scroll = document . getElementById ( "chat_scroll" ) ;
13- space_element . innerText = "\n"
14- if ( data [ "type" ] === "disconnect" ) {
15- name_element . className = "name_element" ;
16- chat_element . className = "notice_element"
17- name_element . innerText = "알림"
18- chat_element . innerText = data [ "name" ] + " 님이 퇴장하셨습니다." ;
19- chat_scroll . appendChild ( name_element )
20- chat_scroll . appendChild ( chat_element )
21- chat_scroll . appendChild ( space_element )
22- document . getElementById ( data [ "sid" ] ) . remove ( ) ;
23- }
24- else if ( data [ "type" ] === "join" ) {
25- name_element . className = "name_element" ;
26- name_element . innerText = "알림"
27- chat_element . className = "notice_element"
28- chat_element . innerText = data [ "name" ] + " 님이 입장하셨습니다." ;
29- chat_scroll . appendChild ( name_element )
30- chat_scroll . appendChild ( chat_element )
31- chat_scroll . appendChild ( space_element )
6+ const chatbox = useRef ( ) ;
7+ socket . on ( "chatting" , ( data ) => {
8+ let name_element = document . createElement ( "li" ) ;
9+ let chat_element = document . createElement ( "li" ) ;
10+ let space_element = document . createElement ( "li" ) ;
11+ let dm_element = document . createElement ( "li" ) ;
12+ let chat_scroll = document . getElementById ( "chat_scroll" ) ;
13+ space_element . innerText = "\n" ;
14+ if ( data [ "type" ] === "disconnect" ) {
15+ name_element . className = "name_element" ;
16+ chat_element . className = "notice_element" ;
17+ name_element . innerText = "알림" ;
18+ chat_element . innerText = data [ "name" ] + " 님이 퇴장하셨습니다." ;
19+ chat_scroll . appendChild ( name_element ) ;
20+ chat_scroll . appendChild ( chat_element ) ;
21+ chat_scroll . appendChild ( space_element ) ;
22+ document . getElementById ( data [ "sid" ] ) . remove ( ) ;
23+ } else if ( data [ "type" ] === "join" ) {
24+ name_element . className = "name_element" ;
25+ name_element . innerText = "알림" ;
26+ chat_element . className = "notice_element" ;
27+ chat_element . innerText = data [ "name" ] + " 님이 입장하셨습니다." ;
28+ chat_scroll . appendChild ( name_element ) ;
29+ chat_scroll . appendChild ( chat_element ) ;
30+ chat_scroll . appendChild ( space_element ) ;
3231
33- let dm_select = document . createElement ( "option" ) ;
34- dm_select . id = data [ "sid" ]
35- dm_select . value = data [ "sid" ] ;
36- dm_select . innerText = data [ "name" ]
37- document . getElementById ( "dm-select" ) . appendChild ( dm_select ) ;
38- }
39- else {
40- name_element . className = "name_element" ;
41- if ( data [ "direct" ] === false ) {
42- name_element . innerText = data [ "sender" ] ;
43- chat_element . innerText = data [ "text" ] ;
44- chat_element . className = "chat_element" ;
45- chat_scroll . appendChild ( name_element )
46- chat_scroll . appendChild ( chat_element )
47- chat_scroll . appendChild ( space_element )
48- }
49- else { // dm을 받을 경우
50- if ( data [ "target" ] === "self" ) {
51- name_element . innerText = document . getElementById ( document . getElementById ( "dm-select" ) . value ) . innerText + "에게 보냄(DM)"
52- }
53- else {
54- name_element . innerText = data [ "sender" ] + "에게 받음(DM)"
55- }
56- dm_element . className = "dm_element"
57- dm_element . innerText = data [ "text" ] ;
58- chat_scroll . appendChild ( name_element )
59- chat_scroll . appendChild ( dm_element )
60- chat_scroll . appendChild ( space_element )
61- }
32+ let dm_select = document . createElement ( "option" ) ;
33+ dm_select . id = data [ "sid" ] ;
34+ dm_select . value = data [ "sid" ] ;
35+ dm_select . innerText = data [ "name" ] ;
36+ document . getElementById ( "dm-select" ) . appendChild ( dm_select ) ;
37+ } else {
38+ name_element . className = "name_element" ;
39+ if ( data [ "direct" ] === false ) {
40+ name_element . innerText = data [ "sender" ] ;
41+ chat_element . innerText = data [ "text" ] ;
42+ chat_element . className = "chat_element" ;
43+ chat_scroll . appendChild ( name_element ) ;
44+ chat_scroll . appendChild ( chat_element ) ;
45+ chat_scroll . appendChild ( space_element ) ;
46+ } else {
47+ // dm을 받을 경우
48+ if ( data [ "target" ] === "self" ) {
49+ name_element . innerText = document . getElementById ( document . getElementById ( "dm-select" ) . value ) . innerText + "에게 보냄(DM)" ;
50+ } else {
51+ name_element . innerText = data [ "sender" ] + "에게 받음(DM)" ;
6252 }
63- document . getElementById ( "chat_scroll" ) . scroll ( { top : document . getElementById ( "chat_scroll" ) . scrollHeight , behavior : 'smooth' } )
64- } )
53+ dm_element . className = "dm_element" ;
54+ dm_element . innerText = data [ "text" ] ;
55+ chat_scroll . appendChild ( name_element ) ;
56+ chat_scroll . appendChild ( dm_element ) ;
57+ chat_scroll . appendChild ( space_element ) ;
58+ }
59+ }
60+ document . getElementById ( "chat_scroll" ) . scroll ( { top : document . getElementById ( "chat_scroll" ) . scrollHeight , behavior : "smooth" } ) ;
61+ } ) ;
6562
66- return (
67- < >
68- < ul ref = { chatbox } id = "chat_scroll" >
69- </ ul >
70- </ >
71- ) ;
63+ return (
64+ < >
65+ < ul ref = { chatbox } id = "chat_scroll" > </ ul >
66+ </ >
67+ ) ;
7268} ) ;
7369
7470export default ChattingList ;
0 commit comments