ClosedList.js 2.32 KB
Newer Older
Choi Ga Young's avatar
Choi Ga Young committed
1
import React, { useState, useEffect } from 'react'
Choi Ga Young's avatar
Choi Ga Young committed
2
import { Badge, ListGroup } from 'react-bootstrap';
Choi Ga Young's avatar
Choi Ga Young committed
3
import axios from 'axios'
Choi Ga Young's avatar
Choi Ga Young committed
4

JeongYeonwoo's avatar
JeongYeonwoo committed
5
6
7
8
9
10
11
const INIT_LIST = [{
  interest: '',
  isOpen: '',
  memeber: [],
  roomId: '',
  roomName: '',
}]
12
function ClosedList(props) {
13

Soo Hyun Kim's avatar
Soo Hyun Kim committed
14
  function enterChatRoomCH(e) {
15
    if (props.roomCode) {
Soo Hyun Kim's avatar
Soo Hyun Kim committed
16
17
      props.closeChatRoom(props.roomCode)
    }
18
    const roomCode = e.target.name
Soo Hyun Kim's avatar
Soo Hyun Kim committed
19
    const roomName = e.target.value
20
    props.enterChatRoom(roomCode)
Soo Hyun Kim's avatar
Soo Hyun Kim committed
21
    props.setRoomCode(roomCode)
Soo Hyun Kim's avatar
Soo Hyun Kim committed
22
    props.setRoomName(roomName)
23

24
    console.log('rrrrrrrrrrrrrrr', props.closedlist)
25
    console.log('1111111111111111111', props.leaveInfo, typeof (props.leaveInfo))
26
  }
우지원's avatar
수정    
우지원 committed
27

JeongYeonwoo's avatar
JeongYeonwoo committed
28
29
30
  const [checknew, setChecknew] = useState([])
  const [unreadnumber, setUnreadnumber] = useState([''])
  async function dbChat() {
31
32
    for (let i = 0; i <= props.closedlist.length - 1; i++) {
      const respond = await axios.get('/room/dbChat', { params: { 'roomId': props.closedlist[i].roomId } })
JeongYeonwoo's avatar
JeongYeonwoo committed
33
34
      setChecknew(respond.data)
    }
35
  }
JeongYeonwoo's avatar
JeongYeonwoo committed
36
37
38
  useEffect(() => {
    dbChat()
  }, [props.singleChat, props.recievedMsg])
우지원's avatar
수정    
우지원 committed
39

JeongYeonwoo's avatar
JeongYeonwoo committed
40
41
42
43
44
45
46
47
48
49
50
51
  useEffect(() => {
    // console.log('chat 클라이언트 변경!')
    unreadMessage()
  }, [checknew])

  async function unreadMessage() {
    //여기서 나간시간과 db의 메세지와 시간비교해서 개수를 count해주면 됨
    //물론 그 방 별로 찾아서 list를 맵써서 하던?
    // console.log('ddddddddd', list[0].roomId)

    setUnreadnumber([''])
    let arr = []
52
53
    for (let i = 0; i <= props.closedlist.length - 1; i++) {
      const respond = await axios.get('/room/unreadMessage', { params: { 'leaveInfo': props.leaveInfo, 'roomId': props.closedlist[i].roomId } })
JeongYeonwoo's avatar
JeongYeonwoo committed
54
55
56
57
58
59
60
      // setUnreadnumber([...unreadnumber, respond.data])
      arr = [...arr, respond.data]
    }
    setUnreadnumber(arr)
    // console.log('클라이언트 클로즈드 카운드', unreadnumber, list.length)

  }
61

Choi Ga Young's avatar
Choi Ga Young committed
62
63
  return (
    <div>
64
      {props.closedlist.map((item, index) =>
Choi Ga Young's avatar
Choi Ga Young committed
65
        <ListGroup key={index}>
Soo Hyun Kim's avatar
Soo Hyun Kim committed
66
          <ListGroup.Item action onClick={enterChatRoomCH} name={item.roomId} value={item.roomName}>
Choi Ga Young's avatar
Choi Ga Young committed
67
            {item.roomName}
JeongYeonwoo's avatar
JeongYeonwoo committed
68
            {unreadnumber[index] ? <Badge className='ml-2' pill variant='danger'>{unreadnumber[index]}</Badge> : ''}
Choi Ga Young's avatar
Choi Ga Young committed
69
70
          </ListGroup.Item>
        </ListGroup>
71
72
      )
      }
73
    </div >
Choi Ga Young's avatar
Choi Ga Young committed
74
75
76
  )
}

Soo Hyun Kim's avatar
Soo Hyun Kim committed
77
export default ClosedList