You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
970 B
46 lines
970 B
define( |
|
"MessageList", |
|
[ |
|
"Message" |
|
], |
|
function(Message) { |
|
|
|
function MessageList(ws) { |
|
var that = this; |
|
this.messages = ko.observableArray(); |
|
|
|
this.editingMessage = ko.observable(new Message()); |
|
|
|
this.send = function() { |
|
var model = this.editingMessage().toModel(); |
|
ws.send($.toJSON(model)); |
|
var message = new Message(); |
|
message.author(model.author); |
|
message.image("https://robohash.org/" + model.author); |
|
this.editingMessage(message); |
|
|
|
localStorage.author = model.author |
|
console.log(model.author) |
|
}; |
|
|
|
ws.onmessage = function (e) { |
|
var model = $.evalJSON(e.data); |
|
var msg = new Message(model); |
|
that.messages.push(msg); |
|
|
|
// Scroll DIV to the bottom |
|
scrollSmoothToBottom("messages-container") |
|
}; |
|
} |
|
|
|
return MessageList; |
|
} |
|
); |
|
|
|
|
|
function scrollSmoothToBottom(id) { |
|
var div = document.getElementById(id); |
|
$('#' + id).animate({ |
|
scrollTop: div.scrollHeight - div.clientHeight |
|
}, 500); |
|
} |