ClosedList.js 2.25 KB
Newer Older
Choi Ga Young's avatar
Choi Ga Young committed
1
import React, { useState, useEffect } from 'react'
2
import { Badge, Button, 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

JeongYeonwoo's avatar
JeongYeonwoo committed
14
15
  const realTime = new Date().toISOString()

Soo Hyun Kim's avatar
Soo Hyun Kim committed
16
  function enterChatRoomCH(e) {
17
    const roomCode = e.target.name
Soo Hyun Kim's avatar
Soo Hyun Kim committed
18
    const roomName = e.target.value
19
    props.enterChatRoom(roomCode)
Soo Hyun Kim's avatar
Soo Hyun Kim committed
20
    props.setRoomCode(roomCode)
21

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

26

JeongYeonwoo's avatar
JeongYeonwoo committed
27
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
      setChecknew(respond.data)
    }
  }
  useEffect(() => {
    dbChat()
  }, [props.singleChat, props.recievedMsg])

  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
61
      // setUnreadnumber([...unreadnumber, respond.data])
      arr = [...arr, respond.data]
    }
    setUnreadnumber(arr)
    // console.log('클라이언트 클로즈드 카운드', unreadnumber, list.length)

  }

62

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

export default ClosedList