mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: thread pagination (#22624)
Prior to this commit we were loading a large number of thread messages without any pagination. This commit attempts to fix this and also improves the following points: - code sharing between channels and threads: Attempts to reuse/share the code use in channels for threads. To make it possible part of this code has been extracted in dedicated helpers or has been improved to reduce the duplication needed. Examples of extracted helpers: - `stackingContextFix`: the ios hack for rendering bug when momentum scrolling is interrupted - `scrollListToMessage`, `scrollListToTop`, `scrollListToBottom`: a series of helper to correctly scroll to a specific position in the list of messages - better general performance of listing messages: One of the main changes which has been made is to remove the computation of visible message during scroll, it will only happen when needed (update last read for example). This constant recomputation of `message.visible` on intersection observer event while scrolling was consuming a lot of CPU time.
This commit is contained in:
@@ -27,7 +27,6 @@ es:
|
||||
max_mentions_per_chat_message: "Número máximo de notificaciones de @name que un usuario puede usar en un mensaje de chat."
|
||||
chat_max_direct_message_users: "Los usuarios no pueden añadir más de este número de otros usuarios al crear un nuevo mensaje directo. Establece el valor 0 para permitir solo los mensajes a uno mismo. El personal está exento de este ajuste."
|
||||
chat_allow_archiving_channels: "Permitir al personal archivar mensajes en un tema al cerrar un canal."
|
||||
enable_experimental_chat_threaded_discussions: "EXPERIMENTAL: Permitir que el personal habilite la creación de hilos en los canales de chat, lo que permite que se produzcan discusiones paralelas en un canal cuando los usuarios se responden unos a otros."
|
||||
errors:
|
||||
chat_default_channel: "El canal de chat por defecto debe ser un canal público."
|
||||
direct_message_enabled_groups_invalid: "Debes especificar al menos un grupo para esta configuración. Si no quieres que nadie, excepto el personal, envíe mensajes directos, elige el grupo del personal."
|
||||
|
||||
@@ -27,7 +27,6 @@ id:
|
||||
max_mentions_per_chat_message: "Jumlah maksimum notifikasi @nama yang dapat digunakan pengguna dalam pesan obrolan."
|
||||
chat_max_direct_message_users: "Pengguna tidak dapat menambahkan lebih dari jumlah pengguna lain saat membuat pesan langsung baru. Setel ke 0 untuk hanya mengizinkan pesan untuk diri sendiri. Staf dibebaskan dari pengaturan ini."
|
||||
chat_allow_archiving_channels: "Izinkan staf untuk mengarsipkan pesan ke suatu topik saat menutup kanal."
|
||||
enable_experimental_chat_threaded_discussions: "EKSPERIMENTAL: Izinkan staf mengaktifkan threading di saluran obrolan, yang memungkinkan diskusi paralel terjadi di saluran saat pengguna membalas satu sama lain."
|
||||
errors:
|
||||
chat_default_channel: "Kanal obrolan bawaan harus berupa kanal publik."
|
||||
direct_message_enabled_groups_invalid: "Anda harus menentukan setidaknya satu grup untuk setelan ini. Jika Anda tidak ingin siapa pun kecuali staf mengirim pesan langsung, pilih grup staf."
|
||||
|
||||
@@ -27,7 +27,6 @@ tr_TR:
|
||||
max_mentions_per_chat_message: "Bir kullanıcının bir sohbet mesajında kullanabileceği maksimum @name bildirimi sayısı."
|
||||
chat_max_direct_message_users: "Kullanıcılar, yeni bir doğrudan mesaj oluştururken bu sayıdan daha fazla kullanıcı ekleyemez. Yalnızca kendisine mesaj gönderilmesine izin vermek için 0 olarak ayarlayın. Personel bu ayardan muaftır."
|
||||
chat_allow_archiving_channels: "Personelin bir kanalı kapatırken mesajları bir konuya arşivlemesine izin verin."
|
||||
enable_experimental_chat_threaded_discussions: "DENEYSEL: Personelin sohbet kanallarında ileti dizisini etkinleştirmesine izin verin; bu, kullanıcılar birbirlerine yanıt verdiklerinde bir kanalda paralel tartışmaların gerçekleşmesine olanak tanır."
|
||||
errors:
|
||||
chat_default_channel: "Varsayılan sohbet kanalı genel bir kanal olmalıdır."
|
||||
direct_message_enabled_groups_invalid: "Bu ayar için en az bir grup belirtmelisiniz. Personel dışında kimsenin doğrudan mesaj göndermesini istemiyorsanız personel grubunu seçin."
|
||||
|
||||
@@ -27,7 +27,6 @@ zh_CN:
|
||||
max_mentions_per_chat_message: "用户可以在聊天消息中使用的 @name 通知的最大数量。"
|
||||
chat_max_direct_message_users: "在创建新的直接消息时,用户无法添加超过此数量的其他用户。设置为 0 只允许给自己发送消息。管理人员不受此设置的影响。"
|
||||
chat_allow_archiving_channels: "允许管理人员在关闭频道时将消息归档到某个话题。"
|
||||
enable_experimental_chat_threaded_discussions: "实验:允许工作人员在聊天频道上启用聊天串,这样当用户互相回复时,就可以在频道中进行并行讨论。"
|
||||
errors:
|
||||
chat_default_channel: "默认聊天频道必须是公共频道。"
|
||||
direct_message_enabled_groups_invalid: "您必须为此设置至少指定一个群组。如果您不希望管理人员以外的任何人发送直接消息,请选择管理人员群组。"
|
||||
|
||||
@@ -12,6 +12,7 @@ Chat::Engine.routes.draw do
|
||||
put "/channels/:channel_id" => "channels#update"
|
||||
get "/channels/:channel_id" => "channels#show"
|
||||
put "/channels/:channel_id/status" => "channels_status#update"
|
||||
get "/channels/:channel_id/messages" => "channel_messages#index"
|
||||
post "/channels/:channel_id/messages/moves" => "channels_messages_moves#create"
|
||||
post "/channels/:channel_id/archives" => "channels_archives#create"
|
||||
get "/channels/:channel_id/memberships" => "channels_memberships#index"
|
||||
@@ -31,6 +32,7 @@ Chat::Engine.routes.draw do
|
||||
get "/channels/:channel_id/threads" => "channel_threads#index"
|
||||
put "/channels/:channel_id/threads/:thread_id" => "channel_threads#update"
|
||||
get "/channels/:channel_id/threads/:thread_id" => "channel_threads#show"
|
||||
get "/channels/:channel_id/threads/:thread_id/messages" => "channel_thread_messages#index"
|
||||
put "/channels/:channel_id/threads/:thread_id/read" => "thread_reads#update"
|
||||
put "/channels/:channel_id/threads/:thread_id/notifications-settings/me" =>
|
||||
"channel_threads_current_user_notifications_settings#update"
|
||||
@@ -93,6 +95,7 @@ Chat::Engine.routes.draw do
|
||||
get "/channel/:channel_id", to: redirect("/chat/c/-/%{channel_id}")
|
||||
|
||||
get "#{base_c_route}/t/:thread_id" => "chat#respond"
|
||||
get "#{base_c_route}/t/:thread_id/:message_id" => "chat#respond"
|
||||
|
||||
base_channel_route = "/channel/:channel_id/:channel_title"
|
||||
redirect_base = "/chat/c/%{channel_title}/%{channel_id}"
|
||||
|
||||
Reference in New Issue
Block a user