Add emoji support
This commit is contained in:
parent
8983e0e504
commit
72f6a3e201
4 changed files with 2279 additions and 9 deletions
|
@ -66,6 +66,7 @@
|
|||
<script type="text/javascript" src="/js/mm_client.js"></script>
|
||||
<script type="text/javascript" src="/js/view/view.js"></script>
|
||||
<script type="text/javascript" src="/js/controller.js"></script>
|
||||
<script type="text/javascript" src="/js/emoji.js"></script>
|
||||
<script type="text/javascript" src="/js/main.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -143,17 +143,16 @@ function switchToChannel(client, team, channel) {
|
|||
function sendMessage(endpoint, channel_id, message) {
|
||||
const client = mm_client.get(endpoint);
|
||||
client.writePost(channel_id, message);
|
||||
pubsub.publish("MESSAGES_NEW", {
|
||||
endpoint,
|
||||
channel_id: channel_id,
|
||||
create_at: (new Date()).getTime(),
|
||||
user_id: client.me.id,
|
||||
message
|
||||
});
|
||||
//pubsub.publish("MESSAGES_NEW", {
|
||||
//endpoint,
|
||||
//channel_id: channel_id,
|
||||
//create_at: (new Date()).getTime(),
|
||||
//user_id: client.me.id,
|
||||
//message
|
||||
//});
|
||||
}
|
||||
|
||||
function checkKeyPress(event) {
|
||||
console.debug(event);
|
||||
// Battle tested for many years in several browsers
|
||||
if ((event.keyCode === event.DOM_VK_RETURN || event.keyCode === 13 || event.keyCode === 10 || event.key === "Enter" || event.keyIdentifier === "U+000A") && !event.shiftKey && !event.ctrlKey) {
|
||||
if (byId("compose").value.length > 0) {
|
||||
|
|
2263
js/emoji.js
Normal file
2263
js/emoji.js
Normal file
File diff suppressed because it is too large
Load diff
|
@ -53,13 +53,20 @@ function populateChannelList() {
|
|||
}
|
||||
|
||||
|
||||
function transformMessageText(message) {
|
||||
return message.split(/(?<=:|\W|^)(:[a-z0-9_-]+:)(?=:|\W|$)/).map(
|
||||
(x, i) => i % 2 ? emoji[x.slice(1, -1)] || x : x
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
async function createMessageElement(client, post, lastTime, lastAuthor) {
|
||||
const users = await client.getUsers();
|
||||
const isThreadReply = !!post.parent_id;
|
||||
|
||||
const messageDiv = document.createElement("div");
|
||||
messageDiv.className = "message";
|
||||
messageDiv.innerText = post.message;
|
||||
messageDiv.innerText = transformMessageText(post.message);
|
||||
|
||||
const createAt = new Date(post.create_at);
|
||||
const createAtDiv = document.createElement("time");
|
||||
|
|
Loading…
Reference in a new issue