@@ -7,20 +7,8 @@ const channel = socket.channel('room:lobby', {})
77const presence = new Presence ( channel )
88
99presence . onSync ( ( ) => {
10- const users = document . querySelector ( '.users' )
11- users . innerHTML = ''
12-
13- presence . list ( ( id , _ ) => {
14- const user = document . createElement ( 'li' )
15- user . setAttribute ( 'class' , id )
16- user . appendChild ( document . createTextNode ( id ) )
17-
18- const estimate = document . createElement ( 'span' )
19- estimate . setAttribute ( 'class' , 'user-estimate' )
20- user . appendChild ( estimate )
21-
22- users . appendChild ( user )
23- } )
10+ const usersElem = document . querySelector ( '.users' )
11+ updateUsers ( usersElem , presence )
2412} )
2513
2614if ( window . pointingParty . username ) {
@@ -35,10 +23,26 @@ calculateButton.addEventListener('click', event => {
3523 channel . push ( 'user_estimated' , { points : storyPoints . value } )
3624} )
3725
38-
3926channel . on ( "user_estimated" , ( { points, userId } ) => {
4027 const user = document . querySelector ( `.${ userId } .user-estimate` )
4128 user . innerHTML = points
4229} )
4330
31+ const updateUsers = ( usersElem , presence ) => {
32+ usersElem . innerHTML = ''
33+ presence . list ( updateUser ( usersElem ) )
34+ }
35+
36+ const updateUser = usersElem => ( userId , _ ) => {
37+ const userElem = document . createElement ( 'li' )
38+ userElem . setAttribute ( 'class' , userId )
39+ userElem . appendChild ( document . createTextNode ( userId ) )
40+
41+ const estimateElem = document . createElement ( 'span' )
42+ estimateElem . setAttribute ( 'class' , 'user-estimate' )
43+ userElem . appendChild ( estimateElem )
44+
45+ usersElem . appendChild ( userElem )
46+ }
47+
4448export default socket
0 commit comments