receive and display messages
This commit is contained in:
		
							parent
							
								
									ee3ff30534
								
							
						
					
					
						commit
						8dbe826457
					
				| @ -1,5 +1,4 @@ | |||||||
| import matrix from 'matrix-js-sdk'; | import matrix from 'matrix-js-sdk'; | ||||||
| //import Vue from 'vue'
 |  | ||||||
| import main from '@/main.js'; | import main from '@/main.js'; | ||||||
| const matrix_cli = matrix.createClient("https://adb.sh"); | const matrix_cli = matrix.createClient("https://adb.sh"); | ||||||
| 
 | 
 | ||||||
| @ -10,7 +9,6 @@ let session = { | |||||||
|     rooms: [], |     rooms: [], | ||||||
|     currentRoom: undefined |     currentRoom: undefined | ||||||
| }; | }; | ||||||
| let rooms = []; |  | ||||||
| 
 | 
 | ||||||
| export default { | export default { | ||||||
|     data(){ |     data(){ | ||||||
| @ -27,6 +25,7 @@ export default { | |||||||
|             }).then((response) => { |             }).then((response) => { | ||||||
|                 console.log(`access token => ${response.access_token}`); |                 console.log(`access token => ${response.access_token}`); | ||||||
|                 session.access_token = response.access_token |                 session.access_token = response.access_token | ||||||
|  |                 document.cookie = `access_token=${session.access_token}; user=${session.user};`; | ||||||
|                 if (response.error){ |                 if (response.error){ | ||||||
|                     main.methods.error(response.error) |                     main.methods.error(response.error) | ||||||
|                     console.log(`login error => ${response.error}`) |                     console.log(`login error => ${response.error}`) | ||||||
| @ -37,44 +36,49 @@ export default { | |||||||
|                     console.log(state) |                     console.log(state) | ||||||
|                 }) |                 }) | ||||||
|             }); |             }); | ||||||
|             /*let i=0; |  | ||||||
|             let checkRooms = setInterval(()=>{ |  | ||||||
|                 rooms = matrix_cli.getRooms() |  | ||||||
|                 console.log("asdasd"+rooms.length) |  | ||||||
|                 if (rooms.length !== 0 || i>10) clearInterval(checkRooms) |  | ||||||
|                 i++; |  | ||||||
|             },500)*/ |  | ||||||
|         }, |  | ||||||
|         getRooms(){ |  | ||||||
|             rooms.push(matrix_cli.getRooms()) |  | ||||||
|             return rooms |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*new Vue({ |  | ||||||
|     el: '#roomList', |  | ||||||
|     refs:{ |  | ||||||
|         rooms: [{name: "lol"},{name: "lol123"}] |  | ||||||
|     }, |  | ||||||
|     data() { |  | ||||||
|         return { |  | ||||||
|             rooms: [{name: "lol"},{name: "lol123"}], |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| })*/ |  | ||||||
| 
 |  | ||||||
| matrix_cli.on("event", event => { | matrix_cli.on("event", event => { | ||||||
|     console.log(event.getType()); |     console.log(event.getType()); | ||||||
|     console.log(event); |     console.log(event); | ||||||
|     session.rooms = [] |     matrix_cli.getRooms().forEach(newRoom => { | ||||||
|     matrix_cli.getRooms().forEach(room => { |         let room = session.rooms.find(room => room.roomId === newRoom.roomId) | ||||||
|         session.rooms.push({name: room.name, roomId: room.roomId}) |         if (!room){ | ||||||
|  |             session.rooms.push({name: newRoom.name, roomId: newRoom.roomId, messages: []}) | ||||||
|  |             console.log(`new room => ${newRoom.name}`) | ||||||
|  |         } | ||||||
|  |         else if (room.name !== newRoom.name){ | ||||||
|  |             console.log(`roomname changed from ${room.name} to ${newRoom.name}`) | ||||||
|  |             room.name = newRoom.name | ||||||
|  |         } | ||||||
|     }) |     }) | ||||||
|     console.log(matrix_cli.getRooms()) |     console.log(session) | ||||||
| }) | }) | ||||||
| 
 | 
 | ||||||
| matrix_cli.on("Room.timeline", event => { | matrix_cli.on("Room.timeline", event => { | ||||||
|     if (event.getType() !== "m.room.message") return; |     if (event.getType() !== "m.room.message") return; | ||||||
|     console.log(event.event.content.body); |     console.log(`new message => ${event.event.content.body}`); | ||||||
| }); |     let room = session.rooms.find(room => room.roomId === event.event.room_id) | ||||||
|  |     if (!room){ | ||||||
|  |         session.rooms.push({name: "undefined", roomId: event.event.room_id, messages: [event.event]}) | ||||||
|  |         console.log(`undefined room name for => ${event.event.room_id}`) | ||||||
|  |     } | ||||||
|  |     else room.messages.push(event.event) | ||||||
|  | }); | ||||||
|  | /* | ||||||
|  | if (getCookie("access_token")){ | ||||||
|  | 
 | ||||||
|  |     main.methods.router({path: "rooms/"}) | ||||||
|  | } | ||||||
|  | else main.methods.router({path: "login"}) | ||||||
|  | */ | ||||||
|  | /*function getCookie(key){ | ||||||
|  |     let cookies = document.cookie.split(';'); | ||||||
|  |     cookies.forEach(cookie => { | ||||||
|  |         if (cookie.split('=')[0] === key) | ||||||
|  |             return cookie.split('=')[1]; | ||||||
|  |     }) | ||||||
|  |     return false; | ||||||
|  | }*/ | ||||||
| @ -2,14 +2,14 @@ | |||||||
|   <div> |   <div> | ||||||
|     <div ref="msgContainer" id="messagesContainer" class="messagesContainer"> |     <div ref="msgContainer" id="messagesContainer" class="messagesContainer"> | ||||||
|       <div id="messages" class="messages"> |       <div id="messages" class="messages"> | ||||||
|         <p style="text-align: center; font-style: italic;">you entered the chat</p> |         <p v-if="session.currentRoom.messages.length === 0" class="emptyRoom">this room im empty</p> | ||||||
|         <div v-for="(message, i) in chatroom.messages" :key="message.time"> |         <div v-for="(message, i) in session.currentRoom.messages" :key="message.origin_server_ts"> | ||||||
|           <div v-if="message.content.user !== chatroom.username && function(){ |           <div v-if="message.sender !== session.user && function(){ | ||||||
|                return i===0 || chatroom.messages[i-1].content.user!==message.content.user;}()" |                return i===0 || session.currentRoom.messages[i-1].sender!==message.sender;}()" | ||||||
|                style="margin-left: 2rem; margin-top: 1rem">{{message.content.user}} |                style="margin-left: 2rem; margin-top: 1rem">{{message.sender}} | ||||||
|           </div> |           </div> | ||||||
|           <messageReceive v-if="message.content.user !== chatroom.username" :msg=message.content.text /> |           <messageReceive v-if="message.sender !== session.user" :msg=message.content.body /> | ||||||
|           <message v-if="message.content.user === chatroom.username" :msg=message.content.text /> |           <message v-if="message.sender === session.user" :msg=message.content.body /> | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|     </div> |     </div> | ||||||
| @ -50,7 +50,7 @@ export default { | |||||||
|   data(){ |   data(){ | ||||||
|     return { |     return { | ||||||
|       chatroom: main.data().chatroom, |       chatroom: main.data().chatroom, | ||||||
|       sesssion: matrix.data().session |       session: matrix.data().session | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @ -78,4 +78,8 @@ export default { | |||||||
|   right: 1rem; |   right: 1rem; | ||||||
|   display: none; |   display: none; | ||||||
| } | } | ||||||
|  | .emptyRoom{ | ||||||
|  |   text-align: center; | ||||||
|  |   font-style: italic; | ||||||
|  | } | ||||||
| </style> | </style> | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user