add: chat message reactions
This commit is contained in:
parent
a4298f95f6
commit
a37312fecf
20 changed files with 557 additions and 25 deletions
|
@ -1026,9 +1026,29 @@
|
|||
(text "{%- endif %}")
|
||||
(div
|
||||
("class" "flex w-full gap-2 justify-between")
|
||||
(span
|
||||
("class" "no_p_margin")
|
||||
(text "{{ message.content|markdown|safe }}"))
|
||||
(div
|
||||
("class" "flex flex-col gap-2")
|
||||
(span
|
||||
("class" "no_p_margin")
|
||||
(text "{{ message.content|markdown|safe }}"))
|
||||
|
||||
(div
|
||||
("class" "flex w-full gap-1 flex-wrap")
|
||||
("onclick" "window.EMOJI_PICKER_REACTION_MESSAGE_ID = '{{ message.id }}'")
|
||||
("hook" "check_message_reactions")
|
||||
("hook-arg:id" "{{ message.id }}")
|
||||
|
||||
(text "{% for emoji,num in message.reactions -%}")
|
||||
(button
|
||||
("class" "small lowered")
|
||||
("ui_ident" "emoji_{{ emoji }}")
|
||||
("onclick" "trigger('me::message_react', [event.target.parentElement.parentElement, '{{ message.id }}', '{{ emoji }}'])")
|
||||
(span (text "{{ emoji|emojis|safe }} {{ num }}")))
|
||||
(text "{%- endfor %}")
|
||||
|
||||
(div
|
||||
("class" "hidden")
|
||||
(text "{{ self::emoji_picker(element_id=\"react_emoji_picker_field\", render_dialog=false, render_button=true, small=true) }}"))))
|
||||
(text "{% if grouped -%}")
|
||||
(div
|
||||
("class" "hidden")
|
||||
|
@ -1185,13 +1205,15 @@
|
|||
(text "{{ text \"chats:action.kick_member\" }}")))))
|
||||
(text "{%- endif %}"))
|
||||
|
||||
(text "{%- endmacro %} {% macro emoji_picker(element_id, render_dialog=false) -%}")
|
||||
(text "{%- endmacro %} {% macro emoji_picker(element_id, render_dialog=false, render_button=true, small=false) -%}")
|
||||
(text "{% if render_button -%}")
|
||||
(button
|
||||
("class" "button small square lowered")
|
||||
("class" "button small {% if not small -%} square {%- endif %} lowered")
|
||||
("onclick" "window.EMOJI_PICKER_TEXT_ID = '{{ element_id }}'; document.getElementById('emoji_dialog').showModal()")
|
||||
("title" "Emojis")
|
||||
("type" "button")
|
||||
(text "{{ icon \"smile-plus\" }}"))
|
||||
(text "{%- endif %}")
|
||||
|
||||
(text "{% if render_dialog -%}")
|
||||
(dialog
|
||||
|
@ -1237,20 +1259,41 @@
|
|||
}
|
||||
|
||||
if (event.detail.unicode) {
|
||||
document.getElementById(
|
||||
window.EMOJI_PICKER_TEXT_ID,
|
||||
).value += ` :${await (
|
||||
await fetch(\"/api/v1/lookup_emoji\", {
|
||||
method: \"POST\",
|
||||
body: event.detail.unicode,
|
||||
})
|
||||
).text()}:`;
|
||||
if (window.EMOJI_PICKER_MODE === \"replace\") {
|
||||
document.getElementById(
|
||||
window.EMOJI_PICKER_TEXT_ID,
|
||||
).value = `:${await (
|
||||
await fetch(\"/api/v1/lookup_emoji\", {
|
||||
method: \"POST\",
|
||||
body: event.detail.unicode,
|
||||
})
|
||||
).text()}:`;
|
||||
} else {
|
||||
document.getElementById(
|
||||
window.EMOJI_PICKER_TEXT_ID,
|
||||
).value += ` :${await (
|
||||
await fetch(\"/api/v1/lookup_emoji\", {
|
||||
method: \"POST\",
|
||||
body: event.detail.unicode,
|
||||
})
|
||||
).text()}:`;
|
||||
}
|
||||
} else {
|
||||
document.getElementById(
|
||||
window.EMOJI_PICKER_TEXT_ID,
|
||||
).value += ` :${event.detail.emoji.shortcodes[0]}:`;
|
||||
if (window.EMOJI_PICKER_MODE === \"replace\") {
|
||||
document.getElementById(
|
||||
window.EMOJI_PICKER_TEXT_ID,
|
||||
).value = `:${event.detail.emoji.shortcodes[0]}:`;
|
||||
} else {
|
||||
document.getElementById(
|
||||
window.EMOJI_PICKER_TEXT_ID,
|
||||
).value += ` :${event.detail.emoji.shortcodes[0]}:`;
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById(
|
||||
window.EMOJI_PICKER_TEXT_ID,
|
||||
).dispatchEvent(new Event(\"change\"));
|
||||
|
||||
document.getElementById(\"emoji_dialog\").close();
|
||||
});"))
|
||||
(div
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue