stream-chat-react 9.1.0-alpha.0 → 9.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.full-bundle.js +796 -305
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +4 -4
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +9 -3
- package/dist/components/Channel/channelState.js +1 -1
- package/dist/components/ChannelList/ChannelList.d.ts +2 -0
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelList.js +6 -4
- package/dist/components/ChannelList/ChannelListMessenger.d.ts +2 -2
- package/dist/components/ChannelList/ChannelListMessenger.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelListMessenger.js +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +0 -5
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.js +10 -15
- package/dist/components/Chat/Chat.d.ts.map +1 -1
- package/dist/components/Chat/Chat.js +3 -0
- package/dist/components/Chat/hooks/useChannelsQueryState.d.ts +12 -0
- package/dist/components/Chat/hooks/useChannelsQueryState.d.ts.map +1 -0
- package/dist/components/Chat/hooks/useChannelsQueryState.js +11 -0
- package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useCreateChatContext.js +13 -2
- package/dist/components/ChatDown/ChatDown.d.ts.map +1 -1
- package/dist/components/ChatDown/ChatDown.js +0 -2
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +1 -7
- package/dist/components/Message/MessageSimple.d.ts +0 -1
- package/dist/components/Message/MessageSimple.d.ts.map +1 -1
- package/dist/components/Message/MessageSimple.js +8 -17
- package/dist/components/Message/MessageText.d.ts.map +1 -1
- package/dist/components/Message/MessageText.js +6 -9
- package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
- package/dist/components/MessageInput/EditMessageForm.js +3 -7
- package/dist/components/MessageInput/UploadsPreview.d.ts.map +1 -1
- package/dist/components/MessageInput/UploadsPreview.js +3 -1
- package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useAttachments.js +4 -4
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +2 -2
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useMessageInputState.js +24 -19
- package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useSubmitHandler.js +75 -93
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.js +13 -13
- package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMessageListScrollManager.js +0 -3
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts +3 -1
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useScrollLocationLogic.js +43 -28
- package/dist/components/Modal/Modal.d.ts +1 -1
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.js +12 -15
- package/dist/context/ChannelActionContext.d.ts +3 -3
- package/dist/context/ChannelActionContext.d.ts.map +1 -1
- package/dist/context/ChatContext.d.ts +2 -0
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/css/index.css +1 -9436
- package/dist/i18n/Streami18n.d.ts +0 -4
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/de.json +0 -4
- package/dist/i18n/en.json +0 -4
- package/dist/i18n/es.json +0 -4
- package/dist/i18n/fr.json +0 -4
- package/dist/i18n/hi.json +0 -4
- package/dist/i18n/it.json +0 -4
- package/dist/i18n/ja.json +0 -4
- package/dist/i18n/ko.json +0 -4
- package/dist/i18n/nl.json +0 -4
- package/dist/i18n/pt.json +0 -4
- package/dist/i18n/ru.json +0 -4
- package/dist/i18n/tr.json +0 -4
- package/dist/index.cjs.js +241 -255
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/MessageActions.scss +19 -0
- package/dist/scss/MessageList.scss +16 -7
- package/dist/scss/Modal.scss +1 -2
- package/dist/scss/Thread.scss +0 -1
- package/dist/scss/_variables.scss +2 -0
- package/dist/stories/edit-message.stories.d.ts +3 -0
- package/dist/stories/edit-message.stories.d.ts.map +1 -0
- package/dist/stories/edit-message.stories.js +54 -0
- package/dist/stories/navigate-long-message-lists.stories.d.ts.map +1 -1
- package/dist/stories/navigate-long-message-lists.stories.js +5 -3
- package/dist/types/types.d.ts +2 -12
- package/dist/types/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -6
- package/CHANGELOG.md +0 -1795
package/dist/index.cjs.js
CHANGED
|
@@ -53,6 +53,7 @@ var throttle = require('lodash.throttle');
|
|
|
53
53
|
var streamChat = require('stream-chat');
|
|
54
54
|
var deepequal = require('react-fast-compare');
|
|
55
55
|
var DefaultEmojiIndex = require('emoji-mart/dist/utils/emoji-index/nimble-emoji-index.js');
|
|
56
|
+
var resizeObserver = require('@juggle/resize-observer');
|
|
56
57
|
var reactVirtuoso = require('react-virtuoso');
|
|
57
58
|
|
|
58
59
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -280,29 +281,29 @@ var getDisplayName = function (Component) {
|
|
|
280
281
|
return Component.displayName || Component.name || 'Component';
|
|
281
282
|
};
|
|
282
283
|
|
|
283
|
-
var Cancel$b="Stornieren";var Close$b="Schließen";var Delete$b="Löschen";var Delivered$b="Zugestellt";var
|
|
284
|
+
var Cancel$b="Stornieren";var Close$b="Schließen";var Delete$b="Löschen";var Delivered$b="Zugestellt";var Flag$b="Meldung";var Menu$b="Menü";var Mute$b="Stumm schalten";var New$b="Neu";var Pin$b="Pin";var Reply$b="Antworten";var Search$b="Suche";var Send$b="Senden";var Thread$c="Thread";var Unmute$b="Stummschaltung aufheben";var Unpin$b="Pin entfernen";var live$b="live";var replyCount_one$b="1 Antwort";var replyCount_other$b="{{ count }} Antworten";var deTranslations = {"Attach files":"Dateien anhängen",Cancel:Cancel$b,"Channel Missing":"Kanal fehlt",Close:Close$b,"Close emoji picker":"Emoji-Picker schließen","Commands matching":"Übereinstimmende Befehle","Connection failure, reconnecting now...":"Verbindungsfehler, Wiederherstellung der Verbindung...",Delete:Delete$b,Delivered:Delivered$b,"Edit Message":"Nachricht bearbeiten","Edit message request failed":"Anfrage zum Bearbeiten der Nachricht fehlgeschlagen","Emoji matching":"Emoji passend","Empty message...":"Leere Nachricht...","Error adding flag":"Fehler beim Hinzufügen des Flags","Error connecting to chat, refresh the page to try again.":"Verbindungsfehler zum Chat, Aktualisiere die Seite um es erneut zu versuchen.","Error deleting message":"Fehler beim Löschen der Nachricht","Error muting a user ...":"Fehler beim Stummschalten eines Nutzers.","Error pinning message":"Fehler beim Pinnen der Nachricht","Error removing message pin":"Fehler beim Entfernen der gepinnten Nachricht","Error unmuting a user ...":"Stummschaltung des Nutzers fehlgeschlagen ...","Error uploading file":"Fehler beim Hochladen der Datei","Error uploading image":"Hochladen des Bildes fehlgeschlagen","Error · Unsent":"Fehler nicht gesendet","Error: {{ errorMessage }}":"Fehler: {{ errorMessage }}",Flag:Flag$b,"Latest Messages":"Neueste Nachrichten",Menu:Menu$b,"Message Failed · Click to try again":"Nachricht fehlgeschlagen · Klicken, um es erneut zu versuchen","Message Failed · Unauthorized":"Nachricht fehlgeschlagen · Nicht autorisiert","Message deleted":"Nachricht gelöscht","Message has been successfully flagged":"Nachricht wurde erfolgreich gemeldet","Message pinned":"Nachricht gepinnt",Mute:Mute$b,New:New$b,"New Messages!":"Neue Nachrichten!","No results found":"keine Ergebnisse gefunden","Nothing yet...":"Noch nichts...","Only visible to you":"Nur für Sie sichtbar","Open emoji picker":"Emoji-Picker öffnen","People matching":"Passende Personen","Pick your emoji":"Emoji wählen",Pin:Pin$b,"Pinned by":"Gepinnt von",Reply:Reply$b,"Reply to Message":"Auf Nachricht antworten",Search:Search$b,"Searching...":"Suchen...",Send:Send$b,"Send message request failed":"Senden der Nachrichtenanfrage fehlgeschlagen","Sending...":"Senden...","Slow Mode ON":"Slow-Mode EIN","Start of a new thread":"Einen neuen Thread beginnen","This message was deleted...":"Diese Nachricht wurde gelöscht...",Thread:Thread$c,"Type your message":"Nachricht eingeben",Unmute:Unmute$b,Unpin:Unpin$b,"Upload type: \"{{ type }}\" is not allowed":"Upload-Typ: \"{{ type }}\" ist nicht erlaubt","Wait until all attachments have uploaded":"Bitte warten, bis alle Anhänge hochgeladen wurden","You have no channels currently":"Du hast momentan noch keinen Channels","You've reached the maximum number of files":"Die maximale Dateianzahl ist erreicht",live:live$b,replyCount_one:replyCount_one$b,replyCount_other:replyCount_other$b,"this content could not be displayed":"Dieser Inhalt konnte nicht angezeigt werden","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} und {{moreCount}} Mehr","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} und {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} und {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mehr","{{ memberCount }} members":"{{ memberCount }} Mitglieder","{{ user }} has been muted":"{{ user }} wurde stummgeschaltet","{{ user }} has been unmuted":"{{ user }} wurde nicht stummgeschaltet","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anhang..."};
|
|
284
285
|
|
|
285
|
-
var Cancel$a="Cancel";var Close$a="Close";var Delete$a="Delete";var Delivered$a="Delivered";var
|
|
286
|
+
var Cancel$a="Cancel";var Close$a="Close";var Delete$a="Delete";var Delivered$a="Delivered";var Flag$a="Flag";var Menu$a="Menu";var Mute$a="Mute";var New$a="New";var Pin$a="Pin";var Reply$a="Reply";var Search$a="Search";var Send$a="Send";var Thread$b="Thread";var Unmute$a="Unmute";var Unpin$a="Unpin";var live$a="live";var replyCount_one$a="1 reply";var replyCount_other$a="{{ count }} replies";var enTranslations = {"Attach files":"Attach files",Cancel:Cancel$a,"Channel Missing":"Channel Missing",Close:Close$a,"Close emoji picker":"Close emoji picker","Commands matching":"Commands matching","Connection failure, reconnecting now...":"Connection failure, reconnecting now...",Delete:Delete$a,Delivered:Delivered$a,"Edit Message":"Edit Message","Edit message request failed":"Edit message request failed","Emoji matching":"Emoji matching","Empty message...":"Empty message...","Error adding flag":"Error adding flag","Error connecting to chat, refresh the page to try again.":"Error connecting to chat, refresh the page to try again.","Error deleting message":"Error deleting message","Error muting a user ...":"Error muting a user ...","Error pinning message":"Error pinning message","Error removing message pin":"Error removing message pin","Error unmuting a user ...":"Error unmuting a user ...","Error uploading file":"Error uploading file","Error uploading image":"Error uploading image","Error · Unsent":"Error · Unsent","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$a,"Latest Messages":"Latest Messages",Menu:Menu$a,"Message Failed · Click to try again":"Message Failed · Click to try again","Message Failed · Unauthorized":"Message Failed · Unauthorized","Message deleted":"Message deleted","Message has been successfully flagged":"Message has been successfully flagged","Message pinned":"Message pinned",Mute:Mute$a,New:New$a,"New Messages!":"New Messages!","No results found":"No results found","Nothing yet...":"Nothing yet...","Only visible to you":"Only visible to you","Open emoji picker":"Open emoji picker","People matching":"People matching","Pick your emoji":"Pick your emoji",Pin:Pin$a,"Pinned by":"Pinned by",Reply:Reply$a,"Reply to Message":"Reply to Message",Search:Search$a,"Searching...":"Searching...",Send:Send$a,"Send message request failed":"Send message request failed","Sending...":"Sending...","Slow Mode ON":"Slow Mode ON","Start of a new thread":"Start of a new thread","This message was deleted...":"This message was deleted...",Thread:Thread$b,"Type your message":"Type your message",Unmute:Unmute$a,Unpin:Unpin$a,"Upload type: \"{{ type }}\" is not allowed":"Upload type: \"{{ type }}\" is not allowed","Wait until all attachments have uploaded":"Wait until all attachments have uploaded","You have no channels currently":"You have no channels currently","You've reached the maximum number of files":"You've reached the maximum number of files",live:live$a,replyCount_one:replyCount_one$a,replyCount_other:replyCount_other$a,"this content could not be displayed":"this content could not be displayed","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} and {{ moreCount }} more","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, and {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} and {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} more","{{ memberCount }} members":"{{ memberCount }} members","{{ user }} has been muted":"{{ user }} has been muted","{{ user }} has been unmuted":"{{ user }} has been unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Attachment..."};
|
|
286
287
|
|
|
287
|
-
var Cancel$9="Cancelar";var Close$9="Cerca";var Delete$9="Borrar";var Delivered$9="Entregado";var
|
|
288
|
+
var Cancel$9="Cancelar";var Close$9="Cerca";var Delete$9="Borrar";var Delivered$9="Entregado";var Flag$9="Bandera";var Menu$9="Menú";var Mute$9="Mudo";var New$9="Nuevo";var Pin$9="Alfiler";var Reply$9="Respuesta";var Search$9="Buscar";var Send$9="Enviar";var Thread$a="Hilo";var Unmute$9="Activar sonido";var Unpin$9="Desprender";var live$9="En Vivo";var replyCount_many$4="{{ count }} respuestas";var replyCount_one$9="1 respuesta";var replyCount_other$9="{{ count }} respuestas";var esTranslations = {"Attach files":"Adjuntar archivos",Cancel:Cancel$9,"Channel Missing":"Falta canal",Close:Close$9,"Close emoji picker":"Cerrar el selector de emojis","Commands matching":"Coincidencia de comandos","Connection failure, reconnecting now...":"Fallo de conexión, reconectando ahora ...",Delete:Delete$9,Delivered:Delivered$9,"Edit Message":"Editar mensaje","Edit message request failed":"Error al editar la solicitud de mensaje","Emoji matching":"Coincidencia de emoji","Empty message...":"Mensaje vacío ...","Error adding flag":"Error al agregar la bandera","Error connecting to chat, refresh the page to try again.":"Error al conectarse al chat, actualice la página para volver a intentarlo.","Error deleting message":"Error al eliminar el mensaje","Error muting a user ...":"Error al silenciar a un usuario ...","Error pinning message":"Mensaje de error al fijar","Error removing message pin":"Error al quitar el pin del mensaje","Error unmuting a user ...":"Error al activar el silencio de un usuario ...","Error uploading file":"Error al cargar el archivo","Error uploading image":"Error subiendo imagen","Error · Unsent":"Error · No enviado","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$9,"Latest Messages":"Últimos mensajes",Menu:Menu$9,"Message Failed · Click to try again":"Mensaje fallido · Haga clic para volver a intentarlo","Message Failed · Unauthorized":"Mensaje fallido · No autorizado","Message deleted":"Mensaje borrado","Message has been successfully flagged":"El mensaje se marcó correctamente","Message pinned":"Mensaje fijado",Mute:Mute$9,New:New$9,"New Messages!":"¡Nuevos mensajes!","No results found":"No se han encontrado resultados","Nothing yet...":"Nada aún...","Only visible to you":"Solo visible para ti","Open emoji picker":"Selector de emoji abierto","People matching":"Personas que coinciden","Pick your emoji":"Elige tu emoji",Pin:Pin$9,"Pinned by":"Fijado por",Reply:Reply$9,"Reply to Message":"Responder al mensaje",Search:Search$9,"Searching...":"Buscando...",Send:Send$9,"Send message request failed":"Error al enviar la solicitud de mensaje","Sending...":"Enviando...","Slow Mode ON":"Modo lento activado","Start of a new thread":"Inicio de un nuevo hilo","This message was deleted...":"Este mensaje fue eliminado ...",Thread:Thread$a,"Type your message":"Escribe tu mensaje",Unmute:Unmute$9,Unpin:Unpin$9,"Upload type: \"{{ type }}\" is not allowed":"Tipo de carga: \"{{ type }}\" no está permitido","Wait until all attachments have uploaded":"Espere hasta que se hayan cargado todos los archivos adjuntos","You have no channels currently":"Actualmente no tienes canales","You've reached the maximum number of files":"Has alcanzado el número máximo de archivos",live:live$9,replyCount_many:replyCount_many$4,replyCount_one:replyCount_one$9,replyCount_other:replyCount_other$9,"this content could not be displayed":"este contenido no se pudo mostrar","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} y {{ moreCount }} más","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} y {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} y {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} más","{{ memberCount }} members":"{{ memberCount }} miembros","{{ user }} has been muted":"{{ user }} ha sido silenciado","{{ user }} has been unmuted":"{{ user }} se ha desactivado","{{ watcherCount }} online":"{{ watcherCount }} en línea","🏙 Attachment...":"🏙 Adjunto..."};
|
|
288
289
|
|
|
289
|
-
var Cancel$8="Annuler";var Close$8="Fermer";var Delete$8="Supprimer";var Delivered$8="Publié";var
|
|
290
|
+
var Cancel$8="Annuler";var Close$8="Fermer";var Delete$8="Supprimer";var Delivered$8="Publié";var Flag$8="Signaler";var Menu$8="Menu";var Mute$8="Muet";var New$8="Nouveaux";var Pin$8="Épingle";var Reply$8="Réponse";var Search$8="Rechercher";var Send$8="Envoyer";var Thread$9="Fil de discussion";var Unmute$8="Désactiver muet";var Unpin$8="Détacher";var live$8="en direct";var replyCount_many$3="{{ count }} réponses";var replyCount_one$8="1 réponse";var replyCount_other$8="{{ count }} réponses";var frTranslations = {"Attach files":"Pièces jointes",Cancel:Cancel$8,"Channel Missing":"Canal Manquant",Close:Close$8,"Close emoji picker":"Fermer le sélecteur d'emojis","Commands matching":"Correspondance des commandes","Connection failure, reconnecting now...":"Échec de la connexion, reconnexion en cours...",Delete:Delete$8,Delivered:Delivered$8,"Edit Message":"Éditer un message","Edit message request failed":"Échec de la demande de modification du message","Emoji matching":"Correspondance emoji","Empty message...":"Message vide...","Error adding flag":"Erreur lors de l'ajout du drapeau","Error connecting to chat, refresh the page to try again.":"Erreur de connexion au chat, rafraîchissez la page pour réessayer.","Error deleting message":"Erreur lors de la suppression du message","Error muting a user ...":"Erreur de mise en sourdine d'un utilisateur ...","Error pinning message":"Erreur d'épinglage du message","Error removing message pin":"Erreur lors de la suppression du code PIN du message","Error unmuting a user ...":"Erreur de désactivation de la fonction sourdine pour un utilisateur ...","Error uploading file":"Erreur lors du téléchargement du fichier","Error uploading image":"Erreur lors de l'envoi de l'image","Error · Unsent":"Erreur - Non envoyé","Error: {{ errorMessage }}":"Erreur : {{ errorMessage }}",Flag:Flag$8,"Latest Messages":"Derniers messages",Menu:Menu$8,"Message Failed · Click to try again":"Échec de l'envoi du message - Cliquez pour réessayer","Message Failed · Unauthorized":"Échec de l'envoi du message - Non autorisé","Message deleted":"Message supprimé","Message has been successfully flagged":"Le message a été signalé avec succès","Message pinned":"Message épinglé",Mute:Mute$8,New:New$8,"New Messages!":"Nouveaux Messages!","No results found":"Aucun résultat trouvé","Nothing yet...":"Aucun message...","Only visible to you":"Visible uniquement pour vous","Open emoji picker":"Ouvrez le sélecteur d'emoji","People matching":"Correspondance de personnes","Pick your emoji":"Choisissez votre emoji",Pin:Pin$8,"Pinned by":"Épinglé par",Reply:Reply$8,"Reply to Message":"Répondre au message",Search:Search$8,"Searching...":"Recherche...",Send:Send$8,"Send message request failed":"Échec de la demande d'envoi de message","Sending...":"Envoi en cours...","Slow Mode ON":"Mode lent activé","Start of a new thread":"Début d'un nouveau fil de discussion","This message was deleted...":"Ce message a été supprimé...",Thread:Thread$9,"Type your message":"Saisissez votre message",Unmute:Unmute$8,Unpin:Unpin$8,"Upload type: \"{{ type }}\" is not allowed":"Le type de téléchargement: \"{{ type }}\" n'est pas autorisé","Wait until all attachments have uploaded":"Attendez que toutes les pièces jointes soient téléchargées","You have no channels currently":"Vous n'avez actuellement aucun canal","You've reached the maximum number of files":"Vous avez atteint le nombre maximum de fichiers",live:live$8,replyCount_many:replyCount_many$3,replyCount_one:replyCount_one$8,replyCount_other:replyCount_other$8,"this content could not be displayed":"ce contenu n'a pu être affiché","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} et {{ moreCount }} autres","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} et {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} et {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} supplémentaires","{{ memberCount }} members":"{{ memberCount }} membres","{{ user }} has been muted":"{{ user }} a été mis en sourdine","{{ user }} has been unmuted":"{{ user }} n'est plus en sourdine","{{ watcherCount }} online":"{{ watcherCount }} en ligne","🏙 Attachment...":"🏙 Pièce jointe..."};
|
|
290
291
|
|
|
291
|
-
var Cancel$7="रद्द करें";var Close$7="बंद करे";var Delete$7="डिलीट";var Delivered$7="पहुंच गया";var
|
|
292
|
+
var Cancel$7="रद्द करें";var Close$7="बंद करे";var Delete$7="डिलीट";var Delivered$7="पहुंच गया";var Flag$7="फ्लैग करे";var Menu$7="मेन्यू";var Mute$7="म्यूट करे";var New$7="नए";var Pin$7="पिन";var Reply$7="जवाब दे दो";var Search$7="खोज";var Send$7="भेजे";var Thread$8="रिप्लाई थ्रेड";var Unmute$7="अनम्यूट";var Unpin$7="अनपिन";var live$7="लाइव";var replyCount_one$7="1 रिप्लाई";var replyCount_other$7="{{ count }} रिप्लाई";var hiTranslations = {"Attach files":"फाइल्स अटैच करे",Cancel:Cancel$7,"Channel Missing":"चैनल उपलब्ध नहीं है",Close:Close$7,"Close emoji picker":"इमोजी पिकर बंद करें","Commands matching":"मेल खाती है","Connection failure, reconnecting now...":"कनेक्शन विफल रहा, अब पुनः कनेक्ट हो रहा है ...",Delete:Delete$7,Delivered:Delivered$7,"Edit Message":"मैसेज में बदलाव करे","Edit message request failed":"संदेश संपादित करने का अनुरोध विफल रहा","Emoji matching":"इमोजी मिलान","Empty message...":"खाली संदेश ...","Error adding flag":"ध्वज जोड़ने में त्रुटि","Error connecting to chat, refresh the page to try again.":"चैट से कनेक्ट करने में त्रुटि, पेज को रिफ्रेश करें","Error deleting message":"संदेश हटाने में त्रुटि","Error muting a user ...":"यूजर को म्यूट करने का प्रयास फेल हुआ","Error pinning message":"संदेश को पिन करने में त्रुटि","Error removing message pin":"संदेश पिन निकालने में त्रुटि","Error unmuting a user ...":"यूजर को अनम्यूट करने का प्रयास फेल हुआ","Error uploading file":"फ़ाइल अपलोड करने में त्रुटि","Error uploading image":"छवि अपलोड करने में त्रुटि","Error · Unsent":"फेल","Error: {{ errorMessage }}":"फेल: {{ errorMessage }}",Flag:Flag$7,"Latest Messages":"नवीनतम संदेश",Menu:Menu$7,"Message Failed · Click to try again":"मैसेज फ़ैल - पुनः कोशिश करें","Message Failed · Unauthorized":"मैसेज फ़ैल - अनधिकृत","Message deleted":"मैसेज हटा दिया गया","Message has been successfully flagged":"मैसेज को फ्लैग कर दिया गया है","Message pinned":"संदेश पिन किया गया",Mute:Mute$7,New:New$7,"New Messages!":"नए मैसेज!","No results found":"कोई परिणाम नहीं मिला","Nothing yet...":"कोई मैसेज नहीं है","Only visible to you":"सिर्फ आपको दिखाई दे रहा है","Open emoji picker":"इमोजी पिकर खोलिये","People matching":"मेल खाते लोग","Pick your emoji":"इमोजी चूस करे",Pin:Pin$7,"Pinned by":"द्वारा पिन किया गया",Reply:Reply$7,"Reply to Message":"संदेश का जवाब दें",Search:Search$7,"Searching...":"खोज कर...",Send:Send$7,"Send message request failed":"संदेश भेजने का अनुरोध विफल रहा","Sending...":"भेजा जा रहा है","Slow Mode ON":"स्लो मोड ऑन","Start of a new thread":"एक नए थ्रेड की शुरुआत","This message was deleted...":"मैसेज हटा दिया गया",Thread:Thread$8,"Type your message":"अपना मैसेज लिखे",Unmute:Unmute$7,Unpin:Unpin$7,"Upload type: \"{{ type }}\" is not allowed":"अपलोड प्रकार: \"{{ type }}\" की अनुमति नहीं है","Wait until all attachments have uploaded":"सभी अटैचमेंट अपलोड होने तक प्रतीक्षा करें","You have no channels currently":"आपके पास कोई चैनल नहीं है","You've reached the maximum number of files":"आप अधिकतम फ़ाइलों तक पहुँच गए हैं",live:live$7,replyCount_one:replyCount_one$7,replyCount_other:replyCount_other$7,"this content could not be displayed":"यह कॉन्टेंट लोड नहीं हो पाया","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} और {{ moreCount }} और","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} और {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} और {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} और","{{ memberCount }} members":"{{ memberCount }} मेंबर्स","{{ user }} has been muted":"{{ user }} को म्यूट कर दिया गया है","{{ user }} has been unmuted":"{{ user }} को अनम्यूट कर दिया गया है","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 अटैचमेंट"};
|
|
292
293
|
|
|
293
|
-
var Cancel$6="Annulla";var Close$6="Chiudi";var Delete$6="Cancella";var Delivered$6="Consegnato";var
|
|
294
|
+
var Cancel$6="Annulla";var Close$6="Chiudi";var Delete$6="Cancella";var Delivered$6="Consegnato";var Flag$6="Segnala";var Menu$6="Menù";var Mute$6="Silenzia";var New$6="Nuovo";var Pin$6="Pin";var Reply$6="Rispondere";var Search$6="Ricerca";var Send$6="Invia";var Thread$7="Thread";var Unmute$6="Riattiva le notifiche";var Unpin$6="Sblocca";var live$6="live";var replyCount_many$2="{{ count }} risposte";var replyCount_one$6="Una risposta";var replyCount_other$6="{{ count }} risposte";var itTranslations = {"Attach files":"Allega file",Cancel:Cancel$6,"Channel Missing":"Il canale non esiste",Close:Close$6,"Close emoji picker":"Chiudi il selettore di emoji","Commands matching":"Comandi corrispondenti","Connection failure, reconnecting now...":"Connessione fallitta, riconnessione in corso...",Delete:Delete$6,Delivered:Delivered$6,"Edit Message":"Modifica messaggio","Edit message request failed":"Richiesta di modifica del messaggio non riuscita","Emoji matching":"Abbinamento emoji","Empty message...":"Message vuoto...","Error adding flag":"Errore durante l'aggiunta del flag","Error connecting to chat, refresh the page to try again.":"Errore di connessione alla chat, aggiorna la pagina per riprovare","Error deleting message":"Errore durante l'eliminazione del messaggio","Error muting a user ...":"Errore silenziando un utente ...","Error pinning message":"Errore durante il blocco del messaggio","Error removing message pin":"Errore durante la rimozione del PIN del messaggio","Error unmuting a user ...":"Errore riattivando le notifiche per l'utente ...","Error uploading file":"Errore durante il caricamento del file","Error uploading image":"Errore durante il caricamento dell'immagine","Error · Unsent":"Errore · Non inviato","Error: {{ errorMessage }}":"Errore: {{ errorMessage }}",Flag:Flag$6,"Latest Messages":"Ultimi messaggi",Menu:Menu$6,"Message Failed · Click to try again":"Invio messaggio fallito · Clicca per riprovare","Message Failed · Unauthorized":"Invio messaggio fallito · Non autorizzato","Message deleted":"Messaggio cancellato","Message has been successfully flagged":"Il messaggio é stato segnalato con successo","Message pinned":"Messaggio bloccato",Mute:Mute$6,New:New$6,"New Messages!":"Nuovo messaggio!","No results found":"Nessun risultato trovato","Nothing yet...":"Ancora niente...","Only visible to you":"Visibile soltanto da te","Open emoji picker":"Apri il selettore dellle emoji","People matching":"Persone che corrispondono","Pick your emoji":"Scegli la tua emoji",Pin:Pin$6,"Pinned by":"Appuntato da",Reply:Reply$6,"Reply to Message":"Rispondi al messaggio",Search:Search$6,"Searching...":"Ricerca in corso ...",Send:Send$6,"Send message request failed":"Invia messaggio di richiesta non riuscito","Sending...":"Invio in corso...","Slow Mode ON":"Modalità lenta attivata","Start of a new thread":"Inizia un nuovo thread","This message was deleted...":"Questo messaggio é stato cancellato",Thread:Thread$7,"Type your message":"Scrivi il tuo messaggio",Unmute:Unmute$6,Unpin:Unpin$6,"Upload type: \"{{ type }}\" is not allowed":"Tipo di caricamento: \"{{ type }}\" non è consentito","Wait until all attachments have uploaded":"Attendi il caricamento di tutti gli allegati","You have no channels currently":"Al momento non sono presenti canali","You've reached the maximum number of files":"Hai raggiunto il numero massimo di file",live:live$6,replyCount_many:replyCount_many$2,replyCount_one:replyCount_one$6,replyCount_other:replyCount_other$6,"this content could not be displayed":"questo contenuto non puó essere mostrato","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e altri {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"+ {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} membri","{{ user }} has been muted":"{{ user }} é stato silenziato","{{ user }} has been unmuted":"Notifiche riattivate per {{ user }}","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Allegato..."};
|
|
294
295
|
|
|
295
|
-
var Cancel$5="キャンセル";var Close$5="閉める";var Delete$5="消去";var Delivered$5="配信しました";var
|
|
296
|
+
var Cancel$5="キャンセル";var Close$5="閉める";var Delete$5="消去";var Delivered$5="配信しました";var Flag$5="フラグ";var Menu$5="メニュー";var Mute$5="無音";var New$5="新しい";var Pin$5="ピン";var Reply$5="返事";var Search$5="探す";var Send$5="送信";var Thread$6="スレッド";var Unmute$5="無音を解除する";var Unpin$5="ピンを解除する";var live$5="ライブ";var replyCount_one$5="1件の返信";var replyCount_other$5="{{ count }} 返信";var jaTranslations = {"Attach files":"ファイルを添付する",Cancel:Cancel$5,"Channel Missing":"チャネルがありません",Close:Close$5,"Close emoji picker":"絵文字ピッカーを閉める","Commands matching":"一致するコマンド","Connection failure, reconnecting now...":"接続が失敗しました。再接続中...",Delete:Delete$5,Delivered:Delivered$5,"Edit Message":"メッセージを編集","Edit message request failed":"メッセージの編集要求が失敗しました","Emoji matching":"絵文字マッチング","Empty message...":"空のメッセージ...","Error adding flag":"フラグを追加のエラーが発生しました","Error connecting to chat, refresh the page to try again.":"チャットへの接続ができませんでした。ページを更新してください。","Error deleting message":"メッセージを削除するエラーが発生しました","Error muting a user ...":"ユーザーを無音するエラーが発生しました...","Error pinning message":"メッセージをピンのエラーが発生しました","Error removing message pin":"メッセージのピンを削除のエラーが発生しました","Error unmuting a user ...":"ユーザーの無音解除のエラーが発生しました...","Error uploading file":"ファイルをアップロードのエラーが発生しました","Error uploading image":"画像をアップロードのエラーが発生しました","Error · Unsent":"エラー・未送信","Error: {{ errorMessage }}":"エラー: {{ errorMessage }}",Flag:Flag$5,"Latest Messages":"最新のメッセージ",Menu:Menu$5,"Message Failed · Click to try again":"メッセージが失敗しました · クリックして再試行してください","Message Failed · Unauthorized":"メッセージが失敗しました · 許可されていません","Message deleted":"メッセージが削除されました","Message has been successfully flagged":"メッセージに正常にフラグが付けられました","Message pinned":"メッセージにピンが付けられました",Mute:Mute$5,New:New$5,"New Messages!":"新しいメッセージ!","No results found":"結果が見つかりません","Nothing yet...":"まだ何もありません...","Only visible to you":"あなただけに見える","Open emoji picker":"絵文字ピッカーを開く","People matching":"一致する人","Pick your emoji":"絵文字を選んでください",Pin:Pin$5,"Pinned by":"ピンした方",Reply:Reply$5,"Reply to Message":"メッセージに返信",Search:Search$5,"Searching...":"検索中...",Send:Send$5,"Send message request failed":"メッセージ送信リクエストが失敗しました","Sending...":"送信中...","Slow Mode ON":"スローモードオン","Start of a new thread":"新しいスレッドの開始","This message was deleted...":"このメッセージは削除されました...",Thread:Thread$6,"Type your message":"メッセージを入力してください",Unmute:Unmute$5,Unpin:Unpin$5,"Upload type: \"{{ type }}\" is not allowed":"アップロードタイプ:\"{{ type }}\"は許可されていません","Wait until all attachments have uploaded":"すべての添付ファイルがアップロードされるまでお待ちください","You have no channels currently":"現在チャンネルはありません","You've reached the maximum number of files":"ファイルの最大数に達しました",live:live$5,replyCount_one:replyCount_one$5,replyCount_other:replyCount_other$5,"this content could not be displayed":"このコンテンツは表示できませんでした","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} と {{ moreCount }} 他人","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} と {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} と {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} イメージ","{{ memberCount }} members":"{{ memberCount }} メンバー","{{ user }} has been muted":"{{ user }} 無音されています","{{ user }} has been unmuted":"{{ user }} 無音されていません","{{ watcherCount }} online":"{{ watcherCount }} オンライン","🏙 Attachment...":"🏙 アタッチメント..."};
|
|
296
297
|
|
|
297
|
-
var Cancel$4="취소";var Close$4="닫기";var Delete$4="삭제";var Delivered$4="배달됨";var
|
|
298
|
+
var Cancel$4="취소";var Close$4="닫기";var Delete$4="삭제";var Delivered$4="배달됨";var Flag$4="플래그";var Menu$4="메뉴";var Mute$4="무음";var New$4="새로운";var Pin$4="핀";var Reply$4="답장";var Search$4="찾다";var Send$4="보내다";var Thread$5="스레드";var Unmute$4="음소거 해제";var Unpin$4="핀 해제";var live$4="라이브";var replyCount_one$4="답장 1개";var replyCount_other$4="{{ count }} 답장";var koTranslations = {"Attach files":"파일 첨부",Cancel:Cancel$4,"Channel Missing":"채널 누락",Close:Close$4,"Close emoji picker":"이모티콘 선택기 닫기","Commands matching":"일치하는 명령","Connection failure, reconnecting now...":"연결 실패, 지금 다시 연결 중...",Delete:Delete$4,Delivered:Delivered$4,"Edit Message":"메시지 수정","Edit message request failed":"메시지 수정 요청 실패","Emoji matching":"이모티콘 매칭","Empty message...":"빈 메시지...","Error adding flag":"플래그를 추가하는 동안 오류가 발생했습니다.","Error connecting to chat, refresh the page to try again.":"채팅에 연결하는 동안 오류가 발생했습니다. 페이지를 새로고침하여 다시 시도하세요.","Error deleting message":"메시지를 삭제하는 중에 오류가 발생했습니다.","Error muting a user ...":"사용자를 음소거하는 중에 오류가 발생했습니다...","Error pinning message":"메시지를 핀하는 중에 오류가 발생했습니다.","Error removing message pin":"메시지 핀을 제거하는 중에 오류가 발생했습니다.","Error unmuting a user ...":"사용자 음소거 해제 중 오류 발생...","Error uploading file":"파일 업로드 오류","Error uploading image":"이미지를 업로드하는 동안 오류가 발생했습니다.","Error · Unsent":"오류 · 전송되지 않음","Error: {{ errorMessage }}":"오류: {{ errorMessage }}",Flag:Flag$4,"Latest Messages":"최신 메시지",Menu:Menu$4,"Message Failed · Click to try again":"메시지 실패 · 다시 시도하려면 클릭하세요.","Message Failed · Unauthorized":"메시지 실패 · 승인되지 않음","Message deleted":"메시지가 삭제되었습니다.","Message has been successfully flagged":"메시지에 플래그가 지정되었습니다.","Message pinned":"메시지 핀했습니다",Mute:Mute$4,New:New$4,"New Messages!":"새 메시지!","No results found":"검색 결과가 없습니다","Nothing yet...":"아직 아무것도...","Only visible to you":"당신만 볼 수 있습니다","Open emoji picker":"이모티콘 선택기 열기","People matching":"일치하는 사람","Pick your emoji":"이모티콘 선택",Pin:Pin$4,"Pinned by":"핀했던 분:",Reply:Reply$4,"Reply to Message":"메시지에 답장",Search:Search$4,"Searching...":"수색...",Send:Send$4,"Send message request failed":"메시지 보내기 요청 실패","Sending...":"배상중...","Slow Mode ON":"슬로우 모드 켜짐","Start of a new thread":"새 스레드의 시작","This message was deleted...":"이 메시지는 삭제되었습니다...",Thread:Thread$5,"Type your message":"메시지 입력",Unmute:Unmute$4,Unpin:Unpin$4,"Upload type: \"{{ type }}\" is not allowed":"업로드 유형: \"{{ type }}\"은(는) 허용되지 않습니다.","Wait until all attachments have uploaded":"모든 첨부 파일이 업로드될 때까지 기다립니다.","You have no channels currently":"현재 채널이 없습니다.","You've reached the maximum number of files":"최대 파일 수에 도달했습니다.",live:live$4,replyCount_one:replyCount_one$4,replyCount_other:replyCount_other$4,"this content could not be displayed":"이 콘텐츠를 표시할 수 없습니다","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} 그리고 {{ moreCount }}명 더","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} 그리고 {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} 그리고 {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }}개 더","{{ memberCount }} members":"{{ memberCount }}명","{{ user }} has been muted":"{{ user }} 음소거되었습니다","{{ user }} has been unmuted":"{{ user }} 음소거가 해제되었습니다","{{ watcherCount }} online":"{{ watcherCount }} 온라인","🏙 Attachment...":"🏙 부착..."};
|
|
298
299
|
|
|
299
|
-
var Cancel$3="Annuleer";var Close$3="Sluit";var Delete$3="Verwijder";var Delivered$3="Afgeleverd";var
|
|
300
|
+
var Cancel$3="Annuleer";var Close$3="Sluit";var Delete$3="Verwijder";var Delivered$3="Afgeleverd";var Flag$3="Markeer";var Menu$3="Menu";var Mute$3="Mute";var New$3="Nieuwe";var Pin$3="Pin";var Reply$3="Antwoord";var Search$3="Zoeken";var Send$3="Verstuur";var Thread$4="Draadje";var Unmute$3="Unmute";var Unpin$3="Losmaken";var live$3="live";var replyCount_one$3="1 antwoord";var replyCount_other$3="{{ count }} antwoorden";var nlTranslations = {"Attach files":"Bijlage toevoegen",Cancel:Cancel$3,"Channel Missing":"Kanaal niet gevonden",Close:Close$3,"Close emoji picker":"Sluit de emoji-kiezer","Commands matching":"Bijpassende opdrachten","Connection failure, reconnecting now...":"Probleem met de verbinding, opnieuw verbinding maken...",Delete:Delete$3,Delivered:Delivered$3,"Edit Message":"Pas bericht aan","Edit message request failed":"Verzoek om bericht bewerken mislukt","Emoji matching":"Emoji-overeenkomsten","Empty message...":"Leeg bericht...","Error adding flag":"Fout bij toevoegen van vlag","Error connecting to chat, refresh the page to try again.":"Fout bij het verbinden, ververs de pagina om nogmaals te proberen","Error deleting message":"Fout bij verwijderen van bericht","Error muting a user ...":"Fout bij het muten van de gebruiker","Error pinning message":"Fout bij vastzetten van bericht","Error removing message pin":"Fout bij verwijderen van berichtpin","Error unmuting a user ...":"Fout bij het unmuten van de gebruiker","Error uploading file":"Fout bij uploaden bestand","Error uploading image":"Fout bij uploaden afbeelding","Error · Unsent":"Error: · niet verzonden","Error: {{ errorMessage }}":"Error: {{ errorMessage }}",Flag:Flag$3,"Latest Messages":"Laatste berichten",Menu:Menu$3,"Message Failed · Click to try again":"Bericht mislukt, klik om het nogmaals te proberen","Message Failed · Unauthorized":"Bericht mislukt, ongeautoriseerd","Message deleted":"Bericht verwijderd","Message has been successfully flagged":"Bericht is succesvol gemarkeerd","Message pinned":"Bericht vastgezet",Mute:Mute$3,New:New$3,"New Messages!":"Nieuwe Berichten!","No results found":"Geen resultaten gevonden","Nothing yet...":"Nog niets ...","Only visible to you":"Alleen zichtbaar voor jou","Open emoji picker":"Open emojipicker","People matching":"Mensen die matchen","Pick your emoji":"Kies je emoji",Pin:Pin$3,"Pinned by":"Vastgemaakt door",Reply:Reply$3,"Reply to Message":"Antwoord op bericht",Search:Search$3,"Searching...":"Zoeken...",Send:Send$3,"Send message request failed":"Verzoek om bericht te verzenden mislukt","Sending...":"Aan het verzenden...","Slow Mode ON":"Langzame modus aan","Start of a new thread":"Begin van een nieuwe draadje","This message was deleted...":"Dit bericht was verwijderd",Thread:Thread$4,"Type your message":"Type je bericht",Unmute:Unmute$3,Unpin:Unpin$3,"Upload type: \"{{ type }}\" is not allowed":"Uploadtype: \"{{ type }}\" is niet toegestaan","Wait until all attachments have uploaded":"Wacht tot alle bijlagen zijn geüpload","You have no channels currently":"Er zijn geen chats beschikbaar","You've reached the maximum number of files":"Je hebt het maximale aantal bestanden bereikt",live:live$3,replyCount_one:replyCount_one$3,replyCount_other:replyCount_other$3,"this content could not be displayed":"Deze inhoud kan niet weergegeven worden","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} en {{ moreCount }} meer","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} en {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} en {{ secondUser }}","{{ imageCount }} more":"+{{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} deelnemers","{{ user }} has been muted":"{{ user }} is muted","{{ user }} has been unmuted":"{{ user }} is unmuted","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Bijlage..."};
|
|
300
301
|
|
|
301
|
-
var Cancel$2="Cancelar";var Close$2="Fechar";var Delete$2="Excluir";var Delivered$2="Entregue";var
|
|
302
|
+
var Cancel$2="Cancelar";var Close$2="Fechar";var Delete$2="Excluir";var Delivered$2="Entregue";var Flag$2="Reportar";var Menu$2="Menu";var Mute$2="Mudo";var New$2="Novo";var Pin$2="Fixar";var Reply$2="Responder";var Search$2="Procurar";var Send$2="Enviar";var Thread$3="Fio";var Unmute$2="Ativar som";var Unpin$2="Liberar";var live$2="ao vivo";var replyCount_many$1="{{ count }} respostas";var replyCount_one$2="1 resposta";var replyCount_other$2="{{ count }} respostas";var ptTranslations = {"Attach files":"Anexar arquivos",Cancel:Cancel$2,"Channel Missing":"Canal ausente",Close:Close$2,"Close emoji picker":"Fechar seletor de emoji","Commands matching":"Comandos correspondentes","Connection failure, reconnecting now...":"Falha de conexão, reconectando agora...",Delete:Delete$2,Delivered:Delivered$2,"Edit Message":"Editar Mensagem","Edit message request failed":"O pedido de edição da mensagem falhou","Emoji matching":"Emoji correspondente","Empty message...":"Mensagem vazia...","Error adding flag":"Erro ao reportar","Error connecting to chat, refresh the page to try again.":"Erro ao conectar ao bate-papo, atualize a página para tentar novamente.","Error deleting message":"Erro ao deletar mensagem","Error muting a user ...":"Erro ao silenciar um usuário...","Error pinning message":"Erro ao fixar mensagem","Error removing message pin":"Erro ao remover o PIN da mensagem","Error unmuting a user ...":"Erro ao ativar o som de um usuário...","Error uploading file":"Erro ao enviar arquivo","Error uploading image":"Erro ao carregar a imagem","Error · Unsent":"Erro · Não enviado","Error: {{ errorMessage }}":"Erro: {{ errorMessage }}",Flag:Flag$2,"Latest Messages":"Mensagens mais recentes",Menu:Menu$2,"Message Failed · Click to try again":"A mensagem falhou · Clique para tentar novamente","Message Failed · Unauthorized":"A mensagem falhou · não autorizado","Message deleted":"Mensagem apagada","Message has been successfully flagged":"A mensagem foi reportada com sucesso","Message pinned":"Mensagem fixada",Mute:Mute$2,New:New$2,"New Messages!":"Novas mensagens!","No results found":"Nenhum resultado encontrado","Nothing yet...":"Nada ainda...","Only visible to you":"Visível apenas para você","Open emoji picker":"Abrir seletor de emoji","People matching":"Pessoas correspondentes","Pick your emoji":"Escolha o seu emoji",Pin:Pin$2,"Pinned by":"Fixado por",Reply:Reply$2,"Reply to Message":"Responder a mensagem",Search:Search$2,"Searching...":"Procurando...",Send:Send$2,"Send message request failed":"O pedido de envio de mensagem falhou","Sending...":"Enviando...","Slow Mode ON":"Modo lento LIGADO","Start of a new thread":"Início de um novo tópico","This message was deleted...":"Esta mensagem foi excluída...",Thread:Thread$3,"Type your message":"Digite sua mensagem",Unmute:Unmute$2,Unpin:Unpin$2,"Upload type: \"{{ type }}\" is not allowed":"Tipo de upload: \"{{ type }}\" não é permitido","Wait until all attachments have uploaded":"Espere até que todos os anexos tenham sido carregados","You have no channels currently":"Você não tem canais atualmente","You've reached the maximum number of files":"Você atingiu o número máximo de arquivos",live:live$2,replyCount_many:replyCount_many$1,replyCount_one:replyCount_one$2,replyCount_other:replyCount_other$2,"this content could not be displayed":"este conteúdo não pôde ser exibido","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} e mais {{ moreCount }}","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} e {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} e {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} mais","{{ memberCount }} members":"{{ memberCount }} membros","{{ user }} has been muted":"{{ user }} foi silenciado","{{ user }} has been unmuted":"{{ user }} foi reativado","{{ watcherCount }} online":"{{ watcherCount }} online","🏙 Attachment...":"🏙 Anexo..."};
|
|
302
303
|
|
|
303
|
-
var Cancel$1="Отмена";var Close$1="Закрыть";var Delete$1="Удалить";var Delivered$1="Отправлено";var
|
|
304
|
+
var Cancel$1="Отмена";var Close$1="Закрыть";var Delete$1="Удалить";var Delivered$1="Отправлено";var Flag$1="Пожаловаться";var Menu$1="Меню";var Mute$1="Отключить уведомления";var New$1="Новые";var Pin$1="Штырь";var Reply$1="Отвечать";var Search$1="Поиск";var Send$1="Отправить";var Thread$2="Ветка";var Unmute$1="Включить уведомления";var Unpin$1="Открепить";var live$1="В прямом эфире";var replyCount_few="{{ count }} ответов";var replyCount_many="{{ count }} ответов";var replyCount_one$1="1 ответ";var replyCount_other$1="{{ count }} ответов";var ruTranslations = {"Attach files":"Прикрепить файлы",Cancel:Cancel$1,"Channel Missing":"Канал не найден",Close:Close$1,"Close emoji picker":"Закрыть окно выбора смайлов","Commands matching":"Соответствие команд","Connection failure, reconnecting now...":"Ошибка соединения, переподключение...",Delete:Delete$1,Delivered:Delivered$1,"Edit Message":"Редактировать сообщение","Edit message request failed":"Не удалось изменить запрос сообщения","Emoji matching":"Соответствие эмодзи","Empty message...":"Пустое сообщение...","Error adding flag":"Ошибка добавления флага","Error connecting to chat, refresh the page to try again.":"Ошибка подключения к чату, обновите страницу чтобы попробовать снова.","Error deleting message":"Ошибка при удалении сообщения","Error muting a user ...":"Ошибка отключения уведомлений от пользователя...","Error pinning message":"Сообщение об ошибке при закреплении","Error removing message pin":"Ошибка при удалении булавки сообщения","Error unmuting a user ...":"Ошибка включения уведомлений...","Error uploading file":"Ошибка при загрузке файла","Error uploading image":"Ошибка загрузки изображения","Error · Unsent":"Ошибка · Не отправлено","Error: {{ errorMessage }}":"Ошибка: {{ errorMessage }}",Flag:Flag$1,"Latest Messages":"Последние сообщения",Menu:Menu$1,"Message Failed · Click to try again":"Ошибка отправки сообщения · Нажмите чтобы повторить","Message Failed · Unauthorized":"Ошибка отправки сообщения · Неавторизованный","Message deleted":"Сообщение удалено","Message has been successfully flagged":"Жалоба на сообщение была принята","Message pinned":"Сообщение закреплено",Mute:Mute$1,New:New$1,"New Messages!":"Новые сообщения!","No results found":"результаты не найдены","Nothing yet...":"Пока ничего нет...","Only visible to you":"Только видно для вас","Open emoji picker":"Выбрать emoji","People matching":"Соответствующие люди","Pick your emoji":"Выберите свой emoji",Pin:Pin$1,"Pinned by":"Закреплено",Reply:Reply$1,"Reply to Message":"Ответить на сообщение",Search:Search$1,"Searching...":"Ищем...",Send:Send$1,"Send message request failed":"Не удалось отправить запрос на отправку сообщения","Sending...":"Отправка...","Slow Mode ON":"Медленный режим включен","Start of a new thread":"Начало новой ветки","This message was deleted...":"Сообщение было удалено...",Thread:Thread$2,"Type your message":"Ваше сообщение",Unmute:Unmute$1,Unpin:Unpin$1,"Upload type: \"{{ type }}\" is not allowed":"Тип загрузки: \"{{ type }}\" не разрешен","Wait until all attachments have uploaded":"Подождите, пока все вложения загрузятся","You have no channels currently":"У вас нет каналов в данный момент","You've reached the maximum number of files":"Вы достигли максимального количества файлов",live:live$1,replyCount_few:replyCount_few,replyCount_many:replyCount_many,replyCount_one:replyCount_one$1,replyCount_other:replyCount_other$1,"this content could not be displayed":"Этот контент не может быть отображен в данный момент","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} и {{ moreCount }} еще","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }} и {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} и {{ secondUser }}","{{ imageCount }} more":"Ещё {{ imageCount }}","{{ memberCount }} members":"{{ memberCount }} члены","{{ user }} has been muted":"Вы отписались от уведомлений от {{ user }}","{{ user }} has been unmuted":"Уведомления от {{ user }} были включены","{{ watcherCount }} online":"{{ watcherCount }} в сети","🏙 Attachment...":"🏙 Вложение..."};
|
|
304
305
|
|
|
305
|
-
var Cancel="İptal";var Close="Kapat";var Delete="Sil";var Delivered="İletildi";var
|
|
306
|
+
var Cancel="İptal";var Close="Kapat";var Delete="Sil";var Delivered="İletildi";var Flag="Bayrak";var Menu="Menü";var Mute="Sessiz";var New="Yeni";var Pin="Toplu iğne";var Reply="Cevapla";var Search="Arama";var Send="Gönder";var Thread$1="Konu";var Unmute="Sesini aç";var Unpin="Sabitlemeyi kaldır";var live="canlı";var replyCount_one="1 cevap";var replyCount_other="{{ count }} cevaplar";var trTranslations = {"Attach files":"Dosya ekle",Cancel:Cancel,"Channel Missing":"Kanal bulunamıyor",Close:Close,"Close emoji picker":"Emoji seçiciyi kapat","Commands matching":"Eşleşen komutlar","Connection failure, reconnecting now...":"Bağlantı hatası, tekrar bağlanılıyor...",Delete:Delete,Delivered:Delivered,"Edit Message":"Mesajı Düzenle","Edit message request failed":"Mesaj düzenleme isteği başarısız oldu","Emoji matching":"Emoji eşleştirme","Empty message...":"Boş mesaj...","Error adding flag":"Bayrak eklenirken hata oluştu","Error connecting to chat, refresh the page to try again.":"Bağlantı hatası, sayfayı yenileyip tekrar deneyin.","Error deleting message":"Mesaj silinirken hata oluştu","Error muting a user ...":"Kullanıcıyı sessize alırken hata oluştu ...","Error pinning message":"Mesaj sabitlenirken hata oluştu","Error removing message pin":"Mesaj PIN'i kaldırılırken hata oluştu","Error unmuting a user ...":"Kullanıcının sesini açarken hata oluştu ...","Error uploading file":"Dosya yüklenirken hata oluştu","Error uploading image":"Resmi yüklerken hata","Error · Unsent":"Hata · Gönderilemedi","Error: {{ errorMessage }}":"Hata: {{ errorMessage }}",Flag:Flag,"Latest Messages":"Son Mesajlar",Menu:Menu,"Message Failed · Click to try again":"Mesaj Başarısız · Tekrar denemek için tıklayın","Message Failed · Unauthorized":"Mesaj Başarısız · Yetkisiz","Message deleted":"Mesaj silindi","Message has been successfully flagged":"Mesaj başarıyla bayraklandı","Message pinned":"Mesaj sabitlendi",Mute:Mute,New:New,"New Messages!":"Yeni Mesajlar!","No results found":"Sonuç bulunamadı","Nothing yet...":"Şimdilik hiçbir şey...","Only visible to you":"Sadece size görünür","Open emoji picker":"Emoji klavyesini aç","People matching":"Eşleşen kişiler","Pick your emoji":"Emoji seçin",Pin:Pin,"Pinned by":"Sabitleyen",Reply:Reply,"Reply to Message":"Mesajı Cevapla",Search:Search,"Searching...":"Aranıyor...",Send:Send,"Send message request failed":"Mesaj gönderme isteği başarısız oldu","Sending...":"Gönderiliyor...","Slow Mode ON":"Yavaş Mod Açık","Start of a new thread":"Yeni konunun başı","This message was deleted...":"Bu mesaj silindi",Thread:Thread$1,"Type your message":"Mesajınızı yazın",Unmute:Unmute,Unpin:Unpin,"Upload type: \"{{ type }}\" is not allowed":"Yükleme türü: \"{{ type }}\" izin verilmez","Wait until all attachments have uploaded":"Tüm ekler yüklenene kadar bekleyin","You have no channels currently":"Henüz kanalınız yok","You've reached the maximum number of files":"Maksimum dosya sayısına ulaştınız",live:live,replyCount_one:replyCount_one,replyCount_other:replyCount_other,"this content could not be displayed":"bu içerik gösterilemiyor","{{ commaSeparatedUsers }} and {{ moreCount }} more":"{{ commaSeparatedUsers }} ve {{ moreCount }} daha","{{ commaSeparatedUsers }}, and {{ lastUser }}":"{{ commaSeparatedUsers }}, ve {{ lastUser }}","{{ firstUser }} and {{ secondUser }}":"{{ firstUser }} ve {{ secondUser }}","{{ imageCount }} more":"{{ imageCount }} adet daha","{{ memberCount }} members":"{{ memberCount }} üyeler","{{ user }} has been muted":"{{ user }} sessize alındı","{{ user }} has been unmuted":"{{ user }} sesi açıldı","{{ watcherCount }} online":"{{ watcherCount }} çevrimiçi","🏙 Attachment...":"🏙 Ek..."};
|
|
306
307
|
|
|
307
308
|
var defaultNS = 'translation';
|
|
308
309
|
var defaultLng = 'en';
|
|
@@ -1028,28 +1029,25 @@ var Modal = function (props) {
|
|
|
1028
1029
|
var innerRef = React.useRef(null);
|
|
1029
1030
|
var closeRef = React.useRef(null);
|
|
1030
1031
|
var handleClick = function (event) {
|
|
1031
|
-
var
|
|
1032
|
-
if (
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
((_b = closeRef.current) === null || _b === void 0 ? void 0 : _b.contains(event.target)) &&
|
|
1037
|
-
onClose)) {
|
|
1038
|
-
onClose();
|
|
1039
|
-
}
|
|
1032
|
+
var target = event.target;
|
|
1033
|
+
if (!innerRef.current || !closeRef.current)
|
|
1034
|
+
return;
|
|
1035
|
+
if (!innerRef.current.contains(target) || closeRef.current.contains(target))
|
|
1036
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
1040
1037
|
};
|
|
1041
1038
|
React.useEffect(function () {
|
|
1042
1039
|
if (!open)
|
|
1043
|
-
return
|
|
1040
|
+
return;
|
|
1044
1041
|
var handleEscKey = function (event) {
|
|
1045
|
-
if (event
|
|
1046
|
-
onClose();
|
|
1047
|
-
}
|
|
1042
|
+
if (event.key === 'Escape')
|
|
1043
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
1048
1044
|
};
|
|
1049
|
-
document.addEventListener('
|
|
1050
|
-
return function () { return document.removeEventListener('
|
|
1045
|
+
document.addEventListener('keydown', handleEscKey);
|
|
1046
|
+
return function () { return document.removeEventListener('keydown', handleEscKey); };
|
|
1051
1047
|
}, [onClose, open]);
|
|
1052
1048
|
var openClasses = open ? 'str-chat__modal--open' : 'str-chat__modal--closed';
|
|
1049
|
+
if (!open)
|
|
1050
|
+
return null;
|
|
1053
1051
|
return (React__default['default'].createElement("div", { className: "str-chat__modal " + openClasses, onClick: handleClick },
|
|
1054
1052
|
React__default['default'].createElement("button", { className: 'str-chat__modal__close-button', ref: closeRef, title: 'Close' },
|
|
1055
1053
|
t('Close'),
|
|
@@ -2569,7 +2567,7 @@ var channelReducer = function (state, action) {
|
|
|
2569
2567
|
}
|
|
2570
2568
|
case 'setLoadingMore': {
|
|
2571
2569
|
var loadingMore = action.loadingMore;
|
|
2572
|
-
//
|
|
2570
|
+
// suppress the autoscroll behavior
|
|
2573
2571
|
return __assign(__assign({}, state), { loadingMore: loadingMore, suppressAutoscroll: true });
|
|
2574
2572
|
}
|
|
2575
2573
|
case 'setLoadingMoreNewer': {
|
|
@@ -4074,11 +4072,11 @@ var QuotedMessage = function () {
|
|
|
4074
4072
|
};
|
|
4075
4073
|
|
|
4076
4074
|
var UnMemoizedMessageTextComponent = function (props) {
|
|
4077
|
-
var _a
|
|
4078
|
-
var customInnerClass = props.customInnerClass,
|
|
4079
|
-
var
|
|
4080
|
-
var
|
|
4081
|
-
var
|
|
4075
|
+
var _a;
|
|
4076
|
+
var customInnerClass = props.customInnerClass, _b = props.customWrapperClass, customWrapperClass = _b === void 0 ? '' : _b, propMessage = props.message, _c = props.theme, theme = _c === void 0 ? 'simple' : _c;
|
|
4077
|
+
var _d = useComponentContext('MessageText').QuotedMessage, QuotedMessage$1 = _d === void 0 ? QuotedMessage : _d;
|
|
4078
|
+
var _e = useMessageContext('MessageText'), contextMessage = _e.message, onMentionsClickMessage = _e.onMentionsClickMessage, onMentionsHoverMessage = _e.onMentionsHoverMessage, _f = _e.renderText, renderText$1 = _f === void 0 ? renderText : _f, unsafeHTML = _e.unsafeHTML;
|
|
4079
|
+
var _g = useTranslationContext('MessageText'), t = _g.t, userLanguage = _g.userLanguage;
|
|
4082
4080
|
var handleMobilePress = useMobilePress().handleMobilePress;
|
|
4083
4081
|
var message = propMessage || contextMessage;
|
|
4084
4082
|
var hasAttachment = messageHasAttachments(message);
|
|
@@ -4098,9 +4096,7 @@ var UnMemoizedMessageTextComponent = function (props) {
|
|
|
4098
4096
|
message.quoted_message && React__default['default'].createElement(QuotedMessage$1, null),
|
|
4099
4097
|
message.type === 'error' && (React__default['default'].createElement("div", { className: "str-chat__" + theme + "-message--error-message" }, t('Error · Unsent'))),
|
|
4100
4098
|
message.status === 'failed' && (React__default['default'].createElement("div", { className: "str-chat__" + theme + "-message--error-message" }, message.errorStatusCode !== 403
|
|
4101
|
-
? (
|
|
4102
|
-
? t('Message failed · Moderation')
|
|
4103
|
-
: t('Message Failed · Click to try again')
|
|
4099
|
+
? t('Message Failed · Click to try again')
|
|
4104
4100
|
: t('Message Failed · Unauthorized'))),
|
|
4105
4101
|
unsafeHTML && message.html ? (React__default['default'].createElement("div", { dangerouslySetInnerHTML: { __html: message.html } })) : (React__default['default'].createElement("div", { onClick: handleMobilePress }, messageText)))));
|
|
4106
4102
|
};
|
|
@@ -4704,7 +4700,9 @@ var UploadsPreview = function () {
|
|
|
4704
4700
|
var _a = useChannelStateContext('UploadsPreview'), maxNumberOfFiles = _a.maxNumberOfFiles, multipleUploads = _a.multipleUploads;
|
|
4705
4701
|
var messageInput = useMessageInputContext('UploadsPreview');
|
|
4706
4702
|
var fileOrder = messageInput.fileOrder, fileUploads = messageInput.fileUploads, imageOrder = messageInput.imageOrder, imageUploads = messageInput.imageUploads, numberOfUploads = messageInput.numberOfUploads, removeFile = messageInput.removeFile, removeImage = messageInput.removeImage, uploadFile = messageInput.uploadFile, uploadImage = messageInput.uploadImage, uploadNewFiles = messageInput.uploadNewFiles;
|
|
4707
|
-
var imagesToPreview = imageOrder
|
|
4703
|
+
var imagesToPreview = imageOrder
|
|
4704
|
+
.map(function (id) { return imageUploads[id]; })
|
|
4705
|
+
.filter(function (image) { return !image.og_scrape_url; });
|
|
4708
4706
|
var filesToPreview = fileOrder.map(function (id) { return fileUploads[id]; });
|
|
4709
4707
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
4710
4708
|
imageOrder.length > 0 && (React__default['default'].createElement(reactFileUtils.ImagePreviewer, { disabled: !multipleUploads ||
|
|
@@ -4749,8 +4747,8 @@ var EditMessageForm = function () {
|
|
|
4749
4747
|
var _c = useComponentContext('EditMessageForm'), _d = _c.EmojiIcon, EmojiIcon = _d === void 0 ? EmojiIconSmall : _d, _e = _c.FileUploadIcon, FileUploadIcon$1 = _e === void 0 ? FileUploadIcon : _e;
|
|
4750
4748
|
React.useEffect(function () {
|
|
4751
4749
|
var onKeyDown = function (event) {
|
|
4752
|
-
if (event.key === 'Escape'
|
|
4753
|
-
clearEditingState();
|
|
4750
|
+
if (event.key === 'Escape')
|
|
4751
|
+
clearEditingState === null || clearEditingState === void 0 ? void 0 : clearEditingState();
|
|
4754
4752
|
};
|
|
4755
4753
|
document.addEventListener('keydown', onKeyDown);
|
|
4756
4754
|
return function () { return document.removeEventListener('keydown', onKeyDown); };
|
|
@@ -4773,11 +4771,7 @@ var EditMessageForm = function () {
|
|
|
4773
4771
|
React__default['default'].createElement("span", { className: 'str-chat__input-fileupload' },
|
|
4774
4772
|
React__default['default'].createElement(FileUploadIcon$1, null)))))),
|
|
4775
4773
|
React__default['default'].createElement("div", null,
|
|
4776
|
-
React__default['default'].createElement("button", { onClick:
|
|
4777
|
-
if (clearEditingState) {
|
|
4778
|
-
clearEditingState();
|
|
4779
|
-
}
|
|
4780
|
-
} }, t('Cancel')),
|
|
4774
|
+
React__default['default'].createElement("button", { onClick: clearEditingState }, t('Cancel')),
|
|
4781
4775
|
React__default['default'].createElement("button", { type: 'submit' }, t('Send'))))))));
|
|
4782
4776
|
};
|
|
4783
4777
|
|
|
@@ -5050,11 +5044,11 @@ var useAttachments = function (props, state, dispatch, textareaRef) {
|
|
|
5050
5044
|
// Number of files that the user can still add. Should never be more than the amount allowed by the API.
|
|
5051
5045
|
// If multipleUploads is false, we only want to allow a single upload.
|
|
5052
5046
|
var maxFilesAllowed = !multipleUploads ? 1 : maxNumberOfFiles || apiMaxNumberOfFiles;
|
|
5047
|
+
// OG attachments should not be counted towards "numberOfImages"
|
|
5053
5048
|
var numberOfImages = Object.values(imageUploads).filter(function (_a) {
|
|
5054
|
-
var state = _a.state;
|
|
5055
|
-
return state !== 'failed';
|
|
5056
|
-
})
|
|
5057
|
-
.length;
|
|
5049
|
+
var og_scrape_url = _a.og_scrape_url, state = _a.state;
|
|
5050
|
+
return state !== 'failed' && !og_scrape_url;
|
|
5051
|
+
}).length;
|
|
5058
5052
|
var numberOfFiles = Object.values(fileUploads).filter(function (_a) {
|
|
5059
5053
|
var state = _a.state;
|
|
5060
5054
|
return state !== 'failed';
|
|
@@ -5238,8 +5232,16 @@ var useSubmitHandler = function (props, state, dispatch, numberOfUploads) {
|
|
|
5238
5232
|
var clearEditingState = props.clearEditingState, message = props.message, overrideSubmitHandler = props.overrideSubmitHandler, parent = props.parent, publishTypingEvent = props.publishTypingEvent;
|
|
5239
5233
|
var attachments = state.attachments, fileOrder = state.fileOrder, fileUploads = state.fileUploads, imageOrder = state.imageOrder, imageUploads = state.imageUploads, mentioned_users = state.mentioned_users, text = state.text;
|
|
5240
5234
|
var channel = useChannelStateContext('useSubmitHandler').channel;
|
|
5241
|
-
var _a = useChannelActionContext('useSubmitHandler'), addNotification = _a.addNotification, editMessage = _a.editMessage,
|
|
5235
|
+
var _a = useChannelActionContext('useSubmitHandler'), addNotification = _a.addNotification, editMessage = _a.editMessage, sendMessage = _a.sendMessage;
|
|
5242
5236
|
var t = useTranslationContext('useSubmitHandler').t;
|
|
5237
|
+
var textReference = React.useRef({ hasChanged: false, initialText: text });
|
|
5238
|
+
React.useEffect(function () {
|
|
5239
|
+
if (!textReference.current.initialText.length) {
|
|
5240
|
+
textReference.current.initialText = text;
|
|
5241
|
+
return;
|
|
5242
|
+
}
|
|
5243
|
+
textReference.current.hasChanged = text !== textReference.current.initialText;
|
|
5244
|
+
}, [text]);
|
|
5243
5245
|
var getAttachmentsFromUploads = function () {
|
|
5244
5246
|
var imageAttachments = imageOrder
|
|
5245
5247
|
.map(function (id) { return imageUploads[id]; })
|
|
@@ -5248,25 +5250,36 @@ var useSubmitHandler = function (props, state, dispatch, numberOfUploads) {
|
|
|
5248
5250
|
var id = _a.id, url = _a.url;
|
|
5249
5251
|
return self.every(function (upload) { return upload.id === id || upload.url !== url; });
|
|
5250
5252
|
})
|
|
5251
|
-
.
|
|
5253
|
+
.filter(function (upload) {
|
|
5254
|
+
// keep the OG attachments in case the text has not changed as the BE
|
|
5255
|
+
// won't re-enrich the message when only attachments have changed
|
|
5256
|
+
if (!textReference.current.hasChanged)
|
|
5257
|
+
return true;
|
|
5258
|
+
return !upload.og_scrape_url;
|
|
5259
|
+
})
|
|
5260
|
+
.map(function (_a) {
|
|
5261
|
+
var name = _a.file.name, url = _a.url, rest = __rest(_a, ["file", "url"]);
|
|
5252
5262
|
return ({
|
|
5253
|
-
|
|
5254
|
-
|
|
5263
|
+
author_name: rest.author_name,
|
|
5264
|
+
fallback: name,
|
|
5265
|
+
image_url: url,
|
|
5266
|
+
og_scrape_url: rest.og_scrape_url,
|
|
5267
|
+
text: rest.text,
|
|
5268
|
+
title: rest.title,
|
|
5269
|
+
title_link: rest.title_link,
|
|
5255
5270
|
type: 'image',
|
|
5256
5271
|
});
|
|
5257
5272
|
});
|
|
5258
5273
|
var fileAttachments = fileOrder
|
|
5259
5274
|
.map(function (id) { return fileUploads[id]; })
|
|
5260
5275
|
.filter(function (upload) { return upload.state !== 'failed'; })
|
|
5261
|
-
.map(function (upload) {
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
});
|
|
5269
|
-
});
|
|
5276
|
+
.map(function (upload) { return ({
|
|
5277
|
+
asset_url: upload.url,
|
|
5278
|
+
file_size: upload.file.size,
|
|
5279
|
+
mime_type: upload.file.type,
|
|
5280
|
+
title: upload.file.name,
|
|
5281
|
+
type: getAttachmentTypeFromMime(upload.file.type || ''),
|
|
5282
|
+
}); });
|
|
5270
5283
|
return __spreadArray(__spreadArray(__spreadArray([], attachments), imageAttachments), fileAttachments);
|
|
5271
5284
|
};
|
|
5272
5285
|
var handleSubmit = function (event, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -5301,102 +5314,53 @@ var useSubmitHandler = function (props, state, dispatch, numberOfUploads) {
|
|
|
5301
5314
|
mentioned_users: actualMentionedUsers,
|
|
5302
5315
|
text: text,
|
|
5303
5316
|
};
|
|
5304
|
-
if (!
|
|
5317
|
+
if (!message) return [3 /*break*/, 5];
|
|
5318
|
+
delete message.i18n;
|
|
5305
5319
|
_a.label = 1;
|
|
5306
5320
|
case 1:
|
|
5307
|
-
_a.trys.push([1,
|
|
5308
|
-
removeMessage(message);
|
|
5309
|
-
dispatch({ type: 'clear' });
|
|
5310
|
-
if (!overrideSubmitHandler) return [3 /*break*/, 3];
|
|
5311
|
-
return [4 /*yield*/, overrideSubmitHandler(__assign(__assign({}, updatedMessage), { parent: parent }), channel.cid, customMessageData)];
|
|
5312
|
-
case 2:
|
|
5313
|
-
_a.sent();
|
|
5314
|
-
return [3 /*break*/, 5];
|
|
5315
|
-
case 3: return [4 /*yield*/, sendMessage(__assign(__assign({}, updatedMessage), { parent: parent }), customMessageData)];
|
|
5316
|
-
case 4:
|
|
5317
|
-
_a.sent();
|
|
5318
|
-
_a.label = 5;
|
|
5319
|
-
case 5:
|
|
5320
|
-
if (!publishTypingEvent) return [3 /*break*/, 7];
|
|
5321
|
-
return [4 /*yield*/, channel.stopTyping()];
|
|
5322
|
-
case 6:
|
|
5323
|
-
_a.sent();
|
|
5324
|
-
_a.label = 7;
|
|
5325
|
-
case 7: return [3 /*break*/, 10];
|
|
5326
|
-
case 8:
|
|
5327
|
-
_a.sent();
|
|
5328
|
-
dispatch({
|
|
5329
|
-
getNewText: function () { return text; },
|
|
5330
|
-
type: 'setText',
|
|
5331
|
-
});
|
|
5332
|
-
if (actualMentionedUsers.length) {
|
|
5333
|
-
actualMentionedUsers.forEach(function (user) {
|
|
5334
|
-
dispatch({ type: 'addMentionedUser', user: user });
|
|
5335
|
-
});
|
|
5336
|
-
}
|
|
5337
|
-
addNotification(t('Send message request failed'), 'error');
|
|
5338
|
-
return [3 /*break*/, 10];
|
|
5339
|
-
case 9:
|
|
5340
|
-
if (clearEditingState)
|
|
5341
|
-
clearEditingState();
|
|
5342
|
-
return [7 /*endfinally*/];
|
|
5343
|
-
case 10: return [3 /*break*/, 24];
|
|
5344
|
-
case 11:
|
|
5345
|
-
if (!(message && message.status === 'received')) return [3 /*break*/, 16];
|
|
5346
|
-
delete message.i18n;
|
|
5347
|
-
_a.label = 12;
|
|
5348
|
-
case 12:
|
|
5349
|
-
_a.trys.push([12, 14, , 15]);
|
|
5321
|
+
_a.trys.push([1, 3, , 4]);
|
|
5350
5322
|
return [4 /*yield*/, editMessage(__assign(__assign({}, message), updatedMessage))];
|
|
5351
|
-
case
|
|
5323
|
+
case 2:
|
|
5352
5324
|
_a.sent();
|
|
5353
|
-
|
|
5354
|
-
clearEditingState();
|
|
5325
|
+
clearEditingState === null || clearEditingState === void 0 ? void 0 : clearEditingState();
|
|
5355
5326
|
dispatch({ type: 'clear' });
|
|
5356
|
-
return [3 /*break*/,
|
|
5357
|
-
case
|
|
5327
|
+
return [3 /*break*/, 4];
|
|
5328
|
+
case 3:
|
|
5358
5329
|
_a.sent();
|
|
5359
|
-
// if we don't do that, the user can't see the error message.
|
|
5360
|
-
// it's still not great, because in that way, we lose the edit state.
|
|
5361
|
-
// this needs to be retought.
|
|
5362
|
-
if (clearEditingState)
|
|
5363
|
-
clearEditingState();
|
|
5364
5330
|
addNotification(t('Edit message request failed'), 'error');
|
|
5365
|
-
return [3 /*break*/,
|
|
5366
|
-
case
|
|
5367
|
-
case
|
|
5368
|
-
_a.trys.push([
|
|
5331
|
+
return [3 /*break*/, 4];
|
|
5332
|
+
case 4: return [3 /*break*/, 13];
|
|
5333
|
+
case 5:
|
|
5334
|
+
_a.trys.push([5, 12, , 13]);
|
|
5369
5335
|
dispatch({ type: 'clear' });
|
|
5370
|
-
if (!overrideSubmitHandler) return [3 /*break*/,
|
|
5336
|
+
if (!overrideSubmitHandler) return [3 /*break*/, 7];
|
|
5371
5337
|
return [4 /*yield*/, overrideSubmitHandler(__assign(__assign({}, updatedMessage), { parent: parent }), channel.cid, customMessageData)];
|
|
5372
|
-
case
|
|
5338
|
+
case 6:
|
|
5373
5339
|
_a.sent();
|
|
5374
|
-
return [3 /*break*/,
|
|
5375
|
-
case
|
|
5376
|
-
case
|
|
5340
|
+
return [3 /*break*/, 9];
|
|
5341
|
+
case 7: return [4 /*yield*/, sendMessage(__assign(__assign({}, updatedMessage), { parent: parent }), customMessageData)];
|
|
5342
|
+
case 8:
|
|
5377
5343
|
_a.sent();
|
|
5378
|
-
_a.label =
|
|
5379
|
-
case
|
|
5380
|
-
if (!publishTypingEvent) return [3 /*break*/,
|
|
5344
|
+
_a.label = 9;
|
|
5345
|
+
case 9:
|
|
5346
|
+
if (!publishTypingEvent) return [3 /*break*/, 11];
|
|
5381
5347
|
return [4 /*yield*/, channel.stopTyping()];
|
|
5382
|
-
case
|
|
5348
|
+
case 10:
|
|
5383
5349
|
_a.sent();
|
|
5384
|
-
_a.label =
|
|
5385
|
-
case
|
|
5386
|
-
case
|
|
5350
|
+
_a.label = 11;
|
|
5351
|
+
case 11: return [3 /*break*/, 13];
|
|
5352
|
+
case 12:
|
|
5387
5353
|
_a.sent();
|
|
5388
5354
|
dispatch({
|
|
5389
5355
|
getNewText: function () { return text; },
|
|
5390
5356
|
type: 'setText',
|
|
5391
5357
|
});
|
|
5392
|
-
|
|
5393
|
-
|
|
5394
|
-
|
|
5395
|
-
});
|
|
5396
|
-
}
|
|
5358
|
+
actualMentionedUsers === null || actualMentionedUsers === void 0 ? void 0 : actualMentionedUsers.forEach(function (user) {
|
|
5359
|
+
dispatch({ type: 'addMentionedUser', user: user });
|
|
5360
|
+
});
|
|
5397
5361
|
addNotification(t('Send message request failed'), 'error');
|
|
5398
|
-
return [3 /*break*/,
|
|
5399
|
-
case
|
|
5362
|
+
return [3 /*break*/, 13];
|
|
5363
|
+
case 13: return [2 /*return*/];
|
|
5400
5364
|
}
|
|
5401
5365
|
});
|
|
5402
5366
|
}); };
|
|
@@ -5454,15 +5418,13 @@ var usePasteHandler = function (uploadNewFiles, insertText, isUploadEnabled) {
|
|
|
5454
5418
|
return { onPaste: onPaste };
|
|
5455
5419
|
};
|
|
5456
5420
|
|
|
5457
|
-
var emptyFileUploads = {};
|
|
5458
|
-
var emptyImageUploads = {};
|
|
5459
5421
|
var makeEmptyMessageInputState = function () { return ({
|
|
5460
5422
|
attachments: [],
|
|
5461
5423
|
emojiPickerIsOpen: false,
|
|
5462
5424
|
fileOrder: [],
|
|
5463
|
-
fileUploads:
|
|
5425
|
+
fileUploads: {},
|
|
5464
5426
|
imageOrder: [],
|
|
5465
|
-
imageUploads:
|
|
5427
|
+
imageUploads: {},
|
|
5466
5428
|
mentioned_users: [],
|
|
5467
5429
|
setText: function () { return null; },
|
|
5468
5430
|
text: '',
|
|
@@ -5471,46 +5433,53 @@ var makeEmptyMessageInputState = function () { return ({
|
|
|
5471
5433
|
* Initializes the state. Empty if the message prop is falsy.
|
|
5472
5434
|
*/
|
|
5473
5435
|
var initState = function (message) {
|
|
5474
|
-
var _a, _b, _c;
|
|
5436
|
+
var _a, _b, _c, _d, _e;
|
|
5475
5437
|
if (!message) {
|
|
5476
5438
|
return makeEmptyMessageInputState();
|
|
5477
5439
|
}
|
|
5478
5440
|
// if message prop is defined, get image uploads, file uploads, text, etc.
|
|
5479
|
-
var imageUploads = ((_a = message.attachments) === null || _a === void 0 ? void 0 : _a.filter(function (_a) {
|
|
5441
|
+
var imageUploads = (_b = (_a = message.attachments) === null || _a === void 0 ? void 0 : _a.filter(function (_a) {
|
|
5480
5442
|
var type = _a.type;
|
|
5481
5443
|
return type === 'image';
|
|
5482
|
-
}).reduce(function (acc,
|
|
5444
|
+
}).reduce(function (acc, _a) {
|
|
5445
|
+
var author_name = _a.author_name, _b = _a.fallback, fallback = _b === void 0 ? '' : _b, image_url = _a.image_url, og_scrape_url = _a.og_scrape_url, text = _a.text, title = _a.title, title_link = _a.title_link;
|
|
5483
5446
|
var id = nanoid.nanoid();
|
|
5484
5447
|
acc[id] = {
|
|
5448
|
+
author_name: author_name,
|
|
5485
5449
|
file: {
|
|
5486
|
-
name:
|
|
5450
|
+
name: fallback,
|
|
5487
5451
|
},
|
|
5488
5452
|
id: id,
|
|
5453
|
+
og_scrape_url: og_scrape_url,
|
|
5489
5454
|
state: 'finished',
|
|
5490
|
-
|
|
5455
|
+
text: text,
|
|
5456
|
+
title: title,
|
|
5457
|
+
title_link: title_link,
|
|
5458
|
+
url: image_url,
|
|
5491
5459
|
};
|
|
5492
5460
|
return acc;
|
|
5493
|
-
}, {}))
|
|
5494
|
-
var
|
|
5495
|
-
var fileUploads = ((_b = message.attachments) === null || _b === void 0 ? void 0 : _b.filter(function (_a) {
|
|
5461
|
+
}, {})) !== null && _b !== void 0 ? _b : {};
|
|
5462
|
+
var fileUploads = (_d = (_c = message.attachments) === null || _c === void 0 ? void 0 : _c.filter(function (_a) {
|
|
5496
5463
|
var type = _a.type;
|
|
5497
5464
|
return type === 'file';
|
|
5498
|
-
}).reduce(function (acc,
|
|
5465
|
+
}).reduce(function (acc, _a) {
|
|
5466
|
+
var asset_url = _a.asset_url, file_size = _a.file_size, mime_type = _a.mime_type, _b = _a.title, title = _b === void 0 ? '' : _b;
|
|
5499
5467
|
var id = nanoid.nanoid();
|
|
5500
5468
|
acc[id] = {
|
|
5501
5469
|
file: {
|
|
5502
|
-
name:
|
|
5503
|
-
size:
|
|
5504
|
-
type:
|
|
5470
|
+
name: title,
|
|
5471
|
+
size: file_size,
|
|
5472
|
+
type: mime_type,
|
|
5505
5473
|
},
|
|
5506
5474
|
id: id,
|
|
5507
5475
|
state: 'finished',
|
|
5508
|
-
url:
|
|
5476
|
+
url: asset_url,
|
|
5509
5477
|
};
|
|
5510
5478
|
return acc;
|
|
5511
|
-
}, {}))
|
|
5479
|
+
}, {})) !== null && _d !== void 0 ? _d : {};
|
|
5480
|
+
var imageOrder = Object.keys(imageUploads);
|
|
5512
5481
|
var fileOrder = Object.keys(fileUploads);
|
|
5513
|
-
var attachments = ((
|
|
5482
|
+
var attachments = ((_e = message.attachments) === null || _e === void 0 ? void 0 : _e.filter(function (_a) {
|
|
5514
5483
|
var type = _a.type;
|
|
5515
5484
|
return type !== 'file' && type !== 'image';
|
|
5516
5485
|
})) || [];
|
|
@@ -6119,13 +6088,10 @@ var UnMemoizedSimpleReactionsList = function (props) {
|
|
|
6119
6088
|
};
|
|
6120
6089
|
var SimpleReactionsList = React__default['default'].memo(UnMemoizedSimpleReactionsList);
|
|
6121
6090
|
|
|
6122
|
-
var MODERATION_ERROR_CODE = 73;
|
|
6123
6091
|
var MessageSimpleWithContext = function (props) {
|
|
6124
|
-
var _a
|
|
6125
|
-
var additionalMessageInputProps = props.additionalMessageInputProps, clearEditingState = props.clearEditingState, editing = props.editing, endOfGroup = props.endOfGroup, firstOfGroup = props.firstOfGroup, groupedByUser = props.groupedByUser, handleAction = props.handleAction, handleOpenThread = props.handleOpenThread, handleRetry = props.handleRetry, highlighted = props.highlighted, isMyMessage = props.isMyMessage, isReactionEnabled = props.isReactionEnabled, message = props.message, onUserClick = props.onUserClick, onUserHover = props.onUserHover, reactionSelectorRef = props.reactionSelectorRef,
|
|
6126
|
-
var
|
|
6127
|
-
var removeMessage = useChannelActionContext('useSubmitHandler').removeMessage;
|
|
6128
|
-
var t = useTranslationContext('MessageText').t;
|
|
6092
|
+
var _a;
|
|
6093
|
+
var additionalMessageInputProps = props.additionalMessageInputProps, clearEditingState = props.clearEditingState, editing = props.editing, endOfGroup = props.endOfGroup, firstOfGroup = props.firstOfGroup, groupedByUser = props.groupedByUser, handleAction = props.handleAction, handleOpenThread = props.handleOpenThread, handleRetry = props.handleRetry, highlighted = props.highlighted, isMyMessage = props.isMyMessage, isReactionEnabled = props.isReactionEnabled, message = props.message, onUserClick = props.onUserClick, onUserHover = props.onUserHover, reactionSelectorRef = props.reactionSelectorRef, showDetailedReactions = props.showDetailedReactions, threadList = props.threadList;
|
|
6094
|
+
var _b = useComponentContext('MessageSimple'), Attachment = _b.Attachment, _c = _b.Avatar, Avatar$1 = _c === void 0 ? Avatar : _c, _d = _b.EditMessageInput, EditMessageInput = _d === void 0 ? EditMessageForm : _d, _e = _b.MessageDeleted, MessageDeleted$1 = _e === void 0 ? MessageDeleted : _e, _f = _b.MessageOptions, MessageOptions$1 = _f === void 0 ? MessageOptions : _f, _g = _b.MessageRepliesCountButton, MessageRepliesCountButton$1 = _g === void 0 ? MessageRepliesCountButton : _g, _h = _b.MessageStatus, MessageStatus$1 = _h === void 0 ? MessageStatus : _h, _j = _b.MessageTimestamp, MessageTimestamp$1 = _j === void 0 ? MessageTimestamp : _j, _k = _b.ReactionSelector, ReactionSelector$1 = _k === void 0 ? ReactionSelector : _k, _l = _b.ReactionsList, ReactionsList$1 = _l === void 0 ? ReactionsList : _l;
|
|
6129
6095
|
var hasAttachment = messageHasAttachments(message);
|
|
6130
6096
|
var hasReactions = messageHasReactions(message);
|
|
6131
6097
|
var messageClasses = isMyMessage()
|
|
@@ -6139,25 +6105,21 @@ var MessageSimpleWithContext = function (props) {
|
|
|
6139
6105
|
}
|
|
6140
6106
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
6141
6107
|
editing && (React__default['default'].createElement(Modal, { onClose: clearEditingState, open: editing },
|
|
6142
|
-
React__default['default'].createElement(MessageInput, __assign({ clearEditingState: clearEditingState,
|
|
6108
|
+
React__default['default'].createElement(MessageInput, __assign({ clearEditingState: clearEditingState, Input: EditMessageInput, message: message }, additionalMessageInputProps)))),
|
|
6143
6109
|
React__default['default'].createElement("div", { className: ("\n\t\t\t\t\t\t" + messageClasses + "\n\t\t\t\t\t\tstr-chat__message--" + message.type + "\n\t\t\t\t\t\tstr-chat__message--" + message.status + "\n\t\t\t\t\t\t" + (message.text ? 'str-chat__message--has-text' : 'has-no-text') + "\n\t\t\t\t\t\t" + (hasAttachment ? 'str-chat__message--has-attachment' : '') + "\n " + (hasReactions && isReactionEnabled ? 'str-chat__message--with-reactions' : '') + "\n " + (highlighted ? 'str-chat__message--highlighted' : '') + "\n " + (message.pinned ? 'pinned-message' : '') + "\n " + (groupedByUser ? 'str-chat__virtual-message__wrapper--group' : '') + "\n " + (firstOfGroup ? 'str-chat__virtual-message__wrapper--first' : '') + "\n " + (endOfGroup ? 'str-chat__virtual-message__wrapper--end' : '') + "\n\t\t\t\t\t").trim(), key: message.id },
|
|
6144
6110
|
React__default['default'].createElement(MessageStatus$1, null),
|
|
6145
6111
|
message.user && (React__default['default'].createElement(Avatar$1, { image: message.user.image, name: message.user.name || message.user.id, onClick: onUserClick, onMouseOver: onUserHover, user: message.user })),
|
|
6146
|
-
React__default['default'].createElement("div", { className: 'str-chat__message-inner', "data-testid": 'message-inner', onClick: message.status === 'failed' &&
|
|
6147
|
-
|
|
6148
|
-
|
|
6112
|
+
React__default['default'].createElement("div", { className: 'str-chat__message-inner', "data-testid": 'message-inner', onClick: message.status === 'failed' && message.errorStatusCode !== 403
|
|
6113
|
+
? function () { return handleRetry(message); }
|
|
6114
|
+
: undefined, onKeyPress: message.status === 'failed' && message.errorStatusCode !== 403
|
|
6149
6115
|
? function () { return handleRetry(message); }
|
|
6150
6116
|
: undefined },
|
|
6151
6117
|
React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
6152
6118
|
React__default['default'].createElement(MessageOptions$1, null),
|
|
6153
6119
|
hasReactions && !showDetailedReactions && isReactionEnabled && (React__default['default'].createElement(ReactionsList$1, { reverse: true })),
|
|
6154
6120
|
showDetailedReactions && isReactionEnabled && (React__default['default'].createElement(ReactionSelector$1, { ref: reactionSelectorRef }))),
|
|
6155
|
-
((
|
|
6121
|
+
((_a = message.attachments) === null || _a === void 0 ? void 0 : _a.length) && !message.quoted_message ? (React__default['default'].createElement(Attachment, { actionHandler: handleAction, attachments: message.attachments })) : null,
|
|
6156
6122
|
React__default['default'].createElement(MessageText, { message: message }),
|
|
6157
|
-
((_c = message.error) === null || _c === void 0 ? void 0 : _c.code) === MODERATION_ERROR_CODE && (React__default['default'].createElement("div", { className: 'str-chat__message-moderation-error-actions-box' },
|
|
6158
|
-
React__default['default'].createElement("button", { onClick: function () { return removeMessage(message); } }, t('Remove')),
|
|
6159
|
-
React__default['default'].createElement("button", { onClick: function () { return handleRetry(message); } }, t('Send anyway')),
|
|
6160
|
-
React__default['default'].createElement("button", { className: 'str-chat__message-moderation-error-actions-box--primary', onClick: function (e) { return setEditingState(e); } }, t('Edit')))),
|
|
6161
6123
|
message.mml && (React__default['default'].createElement(MML, { actionHandler: handleAction, align: isMyMessage() ? 'right' : 'left', source: message.mml })),
|
|
6162
6124
|
!threadList && !!message.reply_count && (React__default['default'].createElement("div", { className: 'str-chat__message-simple-reply-button' },
|
|
6163
6125
|
React__default['default'].createElement(MessageRepliesCountButton$1, { onClick: handleOpenThread, reply_count: message.reply_count }))),
|
|
@@ -6206,9 +6168,15 @@ var makeAddNotifications = function (setNotifications, notificationTimeouts) { r
|
|
|
6206
6168
|
|
|
6207
6169
|
var JUMP_MESSAGE_PAGE_SIZE = 25;
|
|
6208
6170
|
var UnMemoizedChannel = function (props) {
|
|
6209
|
-
var propsChannel = props.channel, _a = props.EmptyPlaceholder, EmptyPlaceholder = _a === void 0 ? null : _a;
|
|
6210
|
-
var
|
|
6171
|
+
var propsChannel = props.channel, _a = props.EmptyPlaceholder, EmptyPlaceholder = _a === void 0 ? null : _a, LoadingErrorIndicator = props.LoadingErrorIndicator, LoadingIndicator = props.LoadingIndicator;
|
|
6172
|
+
var _b = useChatContext('Channel'), contextChannel = _b.channel, channelsQueryState = _b.channelsQueryState;
|
|
6211
6173
|
var channel = propsChannel || contextChannel;
|
|
6174
|
+
if (channelsQueryState.queryInProgress === 'reload' && LoadingIndicator) {
|
|
6175
|
+
return React__default['default'].createElement(LoadingIndicator, { size: 25 });
|
|
6176
|
+
}
|
|
6177
|
+
if (channelsQueryState.error && LoadingErrorIndicator) {
|
|
6178
|
+
return React__default['default'].createElement(LoadingErrorIndicator, { error: channelsQueryState.error });
|
|
6179
|
+
}
|
|
6212
6180
|
if (!(channel === null || channel === void 0 ? void 0 : channel.cid))
|
|
6213
6181
|
return EmptyPlaceholder;
|
|
6214
6182
|
return React__default['default'].createElement(ChannelInner, __assign({}, props, { channel: channel, key: channel.cid }));
|
|
@@ -6222,7 +6190,7 @@ var ChannelInner = function (props) {
|
|
|
6222
6190
|
var _k = React.useState([]), notifications = _k[0], setNotifications = _k[1];
|
|
6223
6191
|
var _l = React.useState(), quotedMessage = _l[0], setQuotedMessage = _l[1];
|
|
6224
6192
|
var notificationTimeouts = [];
|
|
6225
|
-
var _m = React.useReducer(channelReducer, initialState), state = _m[0], dispatch = _m[1];
|
|
6193
|
+
var _m = React.useReducer(channelReducer, __assign(__assign({}, initialState), { loading: !channel.initialized })), state = _m[0], dispatch = _m[1];
|
|
6226
6194
|
var isMounted = useIsMounted();
|
|
6227
6195
|
var originalTitle = React.useRef('');
|
|
6228
6196
|
var lastRead = React.useRef(new Date());
|
|
@@ -6825,7 +6793,6 @@ var UnMemoizedChatDown = function (_a) {
|
|
|
6825
6793
|
var _b = _a.image, image = _b === void 0 ? React__default['default'].createElement(ConnectionErrorIcon, null) : _b, text = _a.text, _c = _a.type, type = _c === void 0 ? 'Error' : _c;
|
|
6826
6794
|
var t = useTranslationContext('ChatDown').t;
|
|
6827
6795
|
return (React__default['default'].createElement("div", { className: 'str-chat__down' },
|
|
6828
|
-
React__default['default'].createElement(LoadingChannels, null),
|
|
6829
6796
|
React__default['default'].createElement("div", { className: 'str-chat__down-main' },
|
|
6830
6797
|
typeof image === 'string' ? (React__default['default'].createElement("img", { alt: 'Connection error', "data-testid": 'chatdown-img', src: image })) : (image),
|
|
6831
6798
|
React__default['default'].createElement("h1", null, type),
|
|
@@ -6840,7 +6807,7 @@ var ChatDown = React__default['default'].memo(UnMemoizedChatDown);
|
|
|
6840
6807
|
* A preview list of channels, allowing you to select the channel you want to open
|
|
6841
6808
|
*/
|
|
6842
6809
|
var ChannelListMessenger = function (props) {
|
|
6843
|
-
var children = props.children, _a = props.error, error = _a === void 0 ?
|
|
6810
|
+
var children = props.children, _a = props.error, error = _a === void 0 ? null : _a, loading = props.loading, _b = props.LoadingErrorIndicator, LoadingErrorIndicator = _b === void 0 ? ChatDown : _b, _c = props.LoadingIndicator, LoadingIndicator = _c === void 0 ? LoadingChannels : _c;
|
|
6844
6811
|
if (error) {
|
|
6845
6812
|
return React__default['default'].createElement(LoadingErrorIndicator, { type: 'Connection Error' });
|
|
6846
6813
|
}
|
|
@@ -7139,11 +7106,9 @@ var useNotificationRemovedFromChannelListener = function (setChannels, customHan
|
|
|
7139
7106
|
};
|
|
7140
7107
|
|
|
7141
7108
|
var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler) {
|
|
7142
|
-
var _a =
|
|
7143
|
-
var _b = React.useState(
|
|
7109
|
+
var _a = useChatContext('usePaginatedChannels').channelsQueryState, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
|
|
7110
|
+
var _b = React.useState([]), channels = _b[0], setChannels = _b[1];
|
|
7144
7111
|
var _c = React.useState(true), hasNextPage = _c[0], setHasNextPage = _c[1];
|
|
7145
|
-
var _d = React.useState(true), loadingChannels = _d[0], setLoadingChannels = _d[1];
|
|
7146
|
-
var _e = React.useState(true), refreshing = _e[0], setRefreshing = _e[1];
|
|
7147
7112
|
var filterString = React.useMemo(function () { return JSON.stringify(filters); }, [filters]);
|
|
7148
7113
|
var sortString = React.useMemo(function () { return JSON.stringify(sort); }, [sort]);
|
|
7149
7114
|
var queryChannels = function (queryType) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -7152,12 +7117,14 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
|
|
|
7152
7117
|
return __generator(this, function (_b) {
|
|
7153
7118
|
switch (_b.label) {
|
|
7154
7119
|
case 0:
|
|
7155
|
-
setError(
|
|
7120
|
+
setError(null);
|
|
7156
7121
|
if (queryType === 'reload') {
|
|
7157
7122
|
setChannels([]);
|
|
7158
|
-
|
|
7123
|
+
setQueryInProgress('reload');
|
|
7124
|
+
}
|
|
7125
|
+
else {
|
|
7126
|
+
setQueryInProgress('load-more');
|
|
7159
7127
|
}
|
|
7160
|
-
setRefreshing(true);
|
|
7161
7128
|
offset = queryType === 'reload' ? 0 : channels.length;
|
|
7162
7129
|
newOptions = __assign({ limit: (_a = options === null || options === void 0 ? void 0 : options.limit) !== null && _a !== void 0 ? _a : MAX_QUERY_CHANNELS_LIMIT, offset: offset }, options);
|
|
7163
7130
|
_b.label = 1;
|
|
@@ -7177,11 +7144,10 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
|
|
|
7177
7144
|
case 3:
|
|
7178
7145
|
err_1 = _b.sent();
|
|
7179
7146
|
console.warn(err_1);
|
|
7180
|
-
setError(
|
|
7147
|
+
setError(err_1);
|
|
7181
7148
|
return [3 /*break*/, 4];
|
|
7182
7149
|
case 4:
|
|
7183
|
-
|
|
7184
|
-
setRefreshing(false);
|
|
7150
|
+
setQueryInProgress(null);
|
|
7185
7151
|
return [2 /*return*/];
|
|
7186
7152
|
}
|
|
7187
7153
|
});
|
|
@@ -7197,11 +7163,6 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
|
|
|
7197
7163
|
hasNextPage: hasNextPage,
|
|
7198
7164
|
loadNextPage: loadNextPage,
|
|
7199
7165
|
setChannels: setChannels,
|
|
7200
|
-
status: {
|
|
7201
|
-
error: error,
|
|
7202
|
-
loadingChannels: loadingChannels,
|
|
7203
|
-
refreshing: refreshing,
|
|
7204
|
-
},
|
|
7205
7166
|
};
|
|
7206
7167
|
};
|
|
7207
7168
|
|
|
@@ -7608,8 +7569,8 @@ var DEFAULT_FILTERS = {};
|
|
|
7608
7569
|
var DEFAULT_OPTIONS = {};
|
|
7609
7570
|
var DEFAULT_SORT = {};
|
|
7610
7571
|
var UnMemoizedChannelList = function (props) {
|
|
7611
|
-
var additionalChannelSearchProps = props.additionalChannelSearchProps, _a = props.Avatar, Avatar$1 = _a === void 0 ? Avatar : _a, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _b = props.ChannelSearch, ChannelSearch$1 = _b === void 0 ? ChannelSearch : _b, customActiveChannel = props.customActiveChannel, _c = props.EmptyStateIndicator, EmptyStateIndicator$1 = _c === void 0 ? EmptyStateIndicator : _c, filters = props.filters, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? ChatDown : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannels : _e, _f = props.List, List = _f === void 0 ? ChannelListMessenger : _f, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _g = props.Paginator, Paginator = _g === void 0 ? LoadMorePaginator : _g, Preview = props.Preview, _h = props.sendChannelsToList, sendChannelsToList = _h === void 0 ? false : _h, _j = props.setActiveChannelOnMount, setActiveChannelOnMount = _j === void 0 ? true : _j, _k = props.showChannelSearch, showChannelSearch = _k === void 0 ? false : _k, _l = props.sort, sort = _l === void 0 ? DEFAULT_SORT : _l, _m = props.watchers, watchers = _m === void 0 ? {} : _m;
|
|
7612
|
-
var _o = useChatContext('ChannelList'), channel = _o.channel, client = _o.client, closeMobileNav = _o.closeMobileNav, customClasses = _o.customClasses, _p = _o.navOpen, navOpen = _p === void 0 ? false : _p, setActiveChannel = _o.setActiveChannel, theme = _o.theme, useImageFlagEmojisOnWindows = _o.useImageFlagEmojisOnWindows;
|
|
7572
|
+
var additionalChannelSearchProps = props.additionalChannelSearchProps, _a = props.Avatar, Avatar$1 = _a === void 0 ? Avatar : _a, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _b = props.ChannelSearch, ChannelSearch$1 = _b === void 0 ? ChannelSearch : _b, customActiveChannel = props.customActiveChannel, _c = props.EmptyStateIndicator, EmptyStateIndicator$1 = _c === void 0 ? EmptyStateIndicator : _c, filters = props.filters, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? ChatDown : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannels : _e, _f = props.List, List = _f === void 0 ? ChannelListMessenger : _f, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _g = props.Paginator, Paginator = _g === void 0 ? LoadMorePaginator : _g, Preview = props.Preview, renderChannels = props.renderChannels, _h = props.sendChannelsToList, sendChannelsToList = _h === void 0 ? false : _h, _j = props.setActiveChannelOnMount, setActiveChannelOnMount = _j === void 0 ? true : _j, _k = props.showChannelSearch, showChannelSearch = _k === void 0 ? false : _k, _l = props.sort, sort = _l === void 0 ? DEFAULT_SORT : _l, _m = props.watchers, watchers = _m === void 0 ? {} : _m;
|
|
7573
|
+
var _o = useChatContext('ChannelList'), channel = _o.channel, channelsQueryState = _o.channelsQueryState, client = _o.client, closeMobileNav = _o.closeMobileNav, customClasses = _o.customClasses, _p = _o.navOpen, navOpen = _p === void 0 ? false : _p, setActiveChannel = _o.setActiveChannel, theme = _o.theme, useImageFlagEmojisOnWindows = _o.useImageFlagEmojisOnWindows;
|
|
7613
7574
|
var channelListRef = React.useRef(null);
|
|
7614
7575
|
var _q = React.useState(0), channelUpdateCount = _q[0], setChannelUpdateCount = _q[1];
|
|
7615
7576
|
/**
|
|
@@ -7656,7 +7617,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
7656
7617
|
* force a re-render. Incrementing this dummy variable ensures the channel previews update.
|
|
7657
7618
|
*/
|
|
7658
7619
|
var forceUpdate = function () { return setChannelUpdateCount(function (count) { return count + 1; }); };
|
|
7659
|
-
var _r = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler), channels = _r.channels, hasNextPage = _r.hasNextPage, loadNextPage = _r.loadNextPage, setChannels = _r.setChannels
|
|
7620
|
+
var _r = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler), channels = _r.channels, hasNextPage = _r.hasNextPage, loadNextPage = _r.loadNextPage, setChannels = _r.setChannels;
|
|
7660
7621
|
var loadedChannels = channelRenderFilterFn ? channelRenderFilterFn(channels) : channels;
|
|
7661
7622
|
useMobileNavigation(channelListRef, navOpen, closeMobileNav);
|
|
7662
7623
|
useMessageNewListener(setChannels, lockChannelOrder, allowNewMessagesFromUnfilteredChannels);
|
|
@@ -7706,14 +7667,16 @@ var UnMemoizedChannelList = function (props) {
|
|
|
7706
7667
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
7707
7668
|
React__default['default'].createElement("div", { className: chatClass + " " + channelListClass + " " + theme + " " + navigationClass + " " + windowsEmojiClass, ref: channelListRef },
|
|
7708
7669
|
showChannelSearch && React__default['default'].createElement(ChannelSearch$1, __assign({}, additionalChannelSearchProps)),
|
|
7709
|
-
React__default['default'].createElement(List, { error:
|
|
7670
|
+
React__default['default'].createElement(List, { error: channelsQueryState.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: channelsQueryState.queryInProgress === 'reload', LoadingErrorIndicator: LoadingErrorIndicator, LoadingIndicator: LoadingIndicator, setChannels: setChannels }, !(loadedChannels === null || loadedChannels === void 0 ? void 0 : loadedChannels.length) ? (React__default['default'].createElement(EmptyStateIndicator$1, { listType: 'channel' })) : (React__default['default'].createElement(Paginator, { hasNextPage: hasNextPage, loadNextPage: loadNextPage, refreshing: channelsQueryState.queryInProgress === 'load-more' }, renderChannels
|
|
7671
|
+
? renderChannels(loadedChannels, renderChannel)
|
|
7672
|
+
: loadedChannels.map(renderChannel)))))));
|
|
7710
7673
|
};
|
|
7711
7674
|
/**
|
|
7712
7675
|
* Renders a preview list of Channels, allowing you to select the Channel you want to open
|
|
7713
7676
|
*/
|
|
7714
7677
|
var ChannelList = React__default['default'].memo(UnMemoizedChannelList);
|
|
7715
7678
|
|
|
7716
|
-
var version = '9.1.
|
|
7679
|
+
var version = '9.1.2';
|
|
7717
7680
|
|
|
7718
7681
|
var useChat = function (_a) {
|
|
7719
7682
|
var _b, _c;
|
|
@@ -7810,12 +7773,15 @@ var useChat = function (_a) {
|
|
|
7810
7773
|
|
|
7811
7774
|
var useCreateChatContext = function (value) {
|
|
7812
7775
|
var _a;
|
|
7813
|
-
var channel = value.channel, client = value.client, closeMobileNav = value.closeMobileNav, customClasses = value.customClasses, getAppSettings = value.getAppSettings, latestMessageDatesByChannels = value.latestMessageDatesByChannels, mutes = value.mutes, navOpen = value.navOpen, openMobileNav = value.openMobileNav, setActiveChannel = value.setActiveChannel, theme = value.theme, useImageFlagEmojisOnWindows = value.useImageFlagEmojisOnWindows;
|
|
7776
|
+
var channel = value.channel, channelsQueryState = value.channelsQueryState, client = value.client, closeMobileNav = value.closeMobileNav, customClasses = value.customClasses, getAppSettings = value.getAppSettings, latestMessageDatesByChannels = value.latestMessageDatesByChannels, mutes = value.mutes, navOpen = value.navOpen, openMobileNav = value.openMobileNav, setActiveChannel = value.setActiveChannel, theme = value.theme, useImageFlagEmojisOnWindows = value.useImageFlagEmojisOnWindows;
|
|
7814
7777
|
var channelCid = channel === null || channel === void 0 ? void 0 : channel.cid;
|
|
7778
|
+
var channelsQueryError = channelsQueryState.error;
|
|
7779
|
+
var channelsQueryInProgress = channelsQueryState.queryInProgress;
|
|
7815
7780
|
var clientValues = "" + client.clientID + Object.keys(client.activeChannels).length + Object.keys(client.listeners).length + client.mutedChannels.length + "\n " + ((_a = client.user) === null || _a === void 0 ? void 0 : _a.id);
|
|
7816
7781
|
var mutedUsersLength = mutes.length;
|
|
7817
7782
|
var chatContext = React.useMemo(function () { return ({
|
|
7818
7783
|
channel: channel,
|
|
7784
|
+
channelsQueryState: channelsQueryState,
|
|
7819
7785
|
client: client,
|
|
7820
7786
|
closeMobileNav: closeMobileNav,
|
|
7821
7787
|
customClasses: customClasses,
|
|
@@ -7827,10 +7793,29 @@ var useCreateChatContext = function (value) {
|
|
|
7827
7793
|
setActiveChannel: setActiveChannel,
|
|
7828
7794
|
theme: theme,
|
|
7829
7795
|
useImageFlagEmojisOnWindows: useImageFlagEmojisOnWindows,
|
|
7830
|
-
}); }, [
|
|
7796
|
+
}); }, [
|
|
7797
|
+
channelCid,
|
|
7798
|
+
channelsQueryError,
|
|
7799
|
+
channelsQueryInProgress,
|
|
7800
|
+
clientValues,
|
|
7801
|
+
getAppSettings,
|
|
7802
|
+
mutedUsersLength,
|
|
7803
|
+
navOpen,
|
|
7804
|
+
]);
|
|
7831
7805
|
return chatContext;
|
|
7832
7806
|
};
|
|
7833
7807
|
|
|
7808
|
+
var useChannelsQueryState = function () {
|
|
7809
|
+
var _a = React.useState(null), error = _a[0], setError = _a[1];
|
|
7810
|
+
var _b = React.useState(null), queryInProgress = _b[0], setQueryInProgress = _b[1];
|
|
7811
|
+
return {
|
|
7812
|
+
error: error,
|
|
7813
|
+
queryInProgress: queryInProgress,
|
|
7814
|
+
setError: setError,
|
|
7815
|
+
setQueryInProgress: setQueryInProgress,
|
|
7816
|
+
};
|
|
7817
|
+
};
|
|
7818
|
+
|
|
7834
7819
|
var darkModeTheme = {
|
|
7835
7820
|
'--bg-gradient-end': '#101214',
|
|
7836
7821
|
'--bg-gradient-start': '#070a0d',
|
|
@@ -7868,9 +7853,11 @@ var useCustomStyles = function (customStyles) {
|
|
|
7868
7853
|
var Chat = function (props) {
|
|
7869
7854
|
var children = props.children, client = props.client, customClasses = props.customClasses, customStyles = props.customStyles, _a = props.darkMode, darkMode = _a === void 0 ? false : _a, defaultLanguage = props.defaultLanguage, i18nInstance = props.i18nInstance, _b = props.initialNavOpen, initialNavOpen = _b === void 0 ? true : _b, _c = props.theme, theme = _c === void 0 ? 'messaging light' : _c, _d = props.useImageFlagEmojisOnWindows, useImageFlagEmojisOnWindows = _d === void 0 ? false : _d;
|
|
7870
7855
|
var _e = useChat({ client: client, defaultLanguage: defaultLanguage, i18nInstance: i18nInstance, initialNavOpen: initialNavOpen }), channel = _e.channel, closeMobileNav = _e.closeMobileNav, getAppSettings = _e.getAppSettings, latestMessageDatesByChannels = _e.latestMessageDatesByChannels, mutes = _e.mutes, navOpen = _e.navOpen, openMobileNav = _e.openMobileNav, setActiveChannel = _e.setActiveChannel, translators = _e.translators;
|
|
7856
|
+
var channelsQueryState = useChannelsQueryState();
|
|
7871
7857
|
useCustomStyles(darkMode ? darkModeTheme : customStyles);
|
|
7872
7858
|
var chatContextValue = useCreateChatContext({
|
|
7873
7859
|
channel: channel,
|
|
7860
|
+
channelsQueryState: channelsQueryState,
|
|
7874
7861
|
client: client,
|
|
7875
7862
|
closeMobileNav: closeMobileNav,
|
|
7876
7863
|
customClasses: customClasses,
|
|
@@ -7981,9 +7968,6 @@ var InfiniteScroll = function (props) {
|
|
|
7981
7968
|
}
|
|
7982
7969
|
scrollElement.addEventListener('scroll', scrollListener, useCapture);
|
|
7983
7970
|
scrollElement.addEventListener('resize', scrollListener, useCapture);
|
|
7984
|
-
if (initialLoad) {
|
|
7985
|
-
scrollListener();
|
|
7986
|
-
}
|
|
7987
7971
|
return function () {
|
|
7988
7972
|
scrollElement.removeEventListener('scroll', scrollListener, useCapture);
|
|
7989
7973
|
scrollElement.removeEventListener('resize', scrollListener, useCapture);
|
|
@@ -8004,10 +7988,7 @@ var InfiniteScroll = function (props) {
|
|
|
8004
7988
|
var attributes = __assign(__assign({}, elementProps), { ref: function (element) {
|
|
8005
7989
|
scrollComponent.current = element;
|
|
8006
7990
|
} });
|
|
8007
|
-
var childrenArray = [children];
|
|
8008
|
-
if (isLoading && loader) {
|
|
8009
|
-
childrenArray.unshift(loader);
|
|
8010
|
-
}
|
|
7991
|
+
var childrenArray = [loader, children];
|
|
8011
7992
|
return React__default['default'].createElement(element, attributes, childrenArray);
|
|
8012
7993
|
};
|
|
8013
7994
|
|
|
@@ -8747,9 +8728,6 @@ function useMessageListScrollManager(params) {
|
|
|
8747
8728
|
});
|
|
8748
8729
|
var messages = React.useRef();
|
|
8749
8730
|
var scrollTop = React.useRef(0);
|
|
8750
|
-
React.useEffect(function () {
|
|
8751
|
-
scrollToBottom();
|
|
8752
|
-
}, []);
|
|
8753
8731
|
React.useEffect(function () {
|
|
8754
8732
|
var _a, _b, _c;
|
|
8755
8733
|
var prevMeasures = measures.current;
|
|
@@ -8795,49 +8773,63 @@ function useMessageListScrollManager(params) {
|
|
|
8795
8773
|
};
|
|
8796
8774
|
}
|
|
8797
8775
|
|
|
8776
|
+
var isBrowser = typeof window !== 'undefined';
|
|
8777
|
+
var ResizeObserver = (isBrowser && window.ResizeObserver) || resizeObserver.ResizeObserver;
|
|
8798
8778
|
var useScrollLocationLogic = function (params) {
|
|
8799
|
-
var _a = params.messages, messages = _a === void 0 ? [] : _a, _b = params.scrolledUpThreshold, scrolledUpThreshold = _b === void 0 ? 200 : _b, hasMoreNewer = params.hasMoreNewer, suppressAutoscroll = params.suppressAutoscroll;
|
|
8779
|
+
var _a = params.messages, messages = _a === void 0 ? [] : _a, _b = params.scrolledUpThreshold, scrolledUpThreshold = _b === void 0 ? 200 : _b, hasMoreNewer = params.hasMoreNewer, suppressAutoscroll = params.suppressAutoscroll, listElement = params.listElement, ulElement = params.ulElement;
|
|
8800
8780
|
var _c = React.useState(false), hasNewMessages = _c[0], setHasNewMessages = _c[1];
|
|
8801
8781
|
var _d = React.useState(), wrapperRect = _d[0], setWrapperRect = _d[1];
|
|
8802
8782
|
var closeToBottom = React.useRef(false);
|
|
8803
8783
|
var closeToTop = React.useRef(false);
|
|
8804
|
-
var
|
|
8784
|
+
var scrollCounter = React.useRef({ autoScroll: 0, scroll: 0 });
|
|
8805
8785
|
var scrollToBottom = React.useCallback(function () {
|
|
8806
|
-
|
|
8807
|
-
if (!((_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo) || hasMoreNewer || suppressAutoscroll) {
|
|
8786
|
+
if (!(listElement === null || listElement === void 0 ? void 0 : listElement.scrollTo) || hasMoreNewer || suppressAutoscroll) {
|
|
8808
8787
|
return;
|
|
8809
8788
|
}
|
|
8810
|
-
|
|
8811
|
-
|
|
8789
|
+
scrollCounter.current.autoScroll += 1;
|
|
8790
|
+
listElement.scrollTo({
|
|
8791
|
+
top: listElement.scrollHeight,
|
|
8812
8792
|
});
|
|
8813
8793
|
setHasNewMessages(false);
|
|
8814
|
-
|
|
8815
|
-
|
|
8816
|
-
|
|
8817
|
-
|
|
8818
|
-
|
|
8819
|
-
|
|
8820
|
-
|
|
8821
|
-
|
|
8794
|
+
}, [listElement, hasMoreNewer, suppressAutoscroll]);
|
|
8795
|
+
React.useEffect(function () {
|
|
8796
|
+
if (!listElement)
|
|
8797
|
+
return;
|
|
8798
|
+
var observer = new ResizeObserver(scrollToBottom);
|
|
8799
|
+
var cancelObserverOnUserScroll = function () {
|
|
8800
|
+
scrollCounter.current.scroll += 1;
|
|
8801
|
+
var userScrolled = scrollCounter.current.autoScroll < scrollCounter.current.scroll;
|
|
8802
|
+
if (ulElement && userScrolled) {
|
|
8803
|
+
observer.unobserve(ulElement);
|
|
8804
|
+
listElement === null || listElement === void 0 ? void 0 : listElement.removeEventListener('scroll', cancelObserverOnUserScroll);
|
|
8805
|
+
}
|
|
8806
|
+
};
|
|
8807
|
+
if (ulElement) {
|
|
8808
|
+
observer.observe(ulElement);
|
|
8809
|
+
}
|
|
8810
|
+
listElement.addEventListener('scroll', cancelObserverOnUserScroll);
|
|
8811
|
+
return function () {
|
|
8812
|
+
observer.disconnect();
|
|
8813
|
+
if (listElement) {
|
|
8814
|
+
listElement.removeEventListener('scroll', cancelObserverOnUserScroll);
|
|
8815
|
+
}
|
|
8816
|
+
};
|
|
8817
|
+
}, [ulElement, scrollToBottom]);
|
|
8822
8818
|
React.useLayoutEffect(function () {
|
|
8823
|
-
if (
|
|
8824
|
-
setWrapperRect(
|
|
8819
|
+
if (listElement) {
|
|
8820
|
+
setWrapperRect(listElement.getBoundingClientRect());
|
|
8825
8821
|
scrollToBottom();
|
|
8826
8822
|
}
|
|
8827
|
-
}, [
|
|
8823
|
+
}, [listElement, hasMoreNewer]);
|
|
8828
8824
|
var updateScrollTop = useMessageListScrollManager({
|
|
8829
8825
|
messages: messages,
|
|
8830
8826
|
onScrollBy: function (scrollBy) {
|
|
8831
|
-
|
|
8832
|
-
(_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollBy({ top: scrollBy });
|
|
8833
|
-
},
|
|
8834
|
-
scrollContainerMeasures: function () {
|
|
8835
|
-
var _a, _b;
|
|
8836
|
-
return ({
|
|
8837
|
-
offsetHeight: ((_a = listRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0,
|
|
8838
|
-
scrollHeight: ((_b = listRef.current) === null || _b === void 0 ? void 0 : _b.scrollHeight) || 0,
|
|
8839
|
-
});
|
|
8827
|
+
listElement === null || listElement === void 0 ? void 0 : listElement.scrollBy({ top: scrollBy });
|
|
8840
8828
|
},
|
|
8829
|
+
scrollContainerMeasures: function () { return ({
|
|
8830
|
+
offsetHeight: (listElement === null || listElement === void 0 ? void 0 : listElement.offsetHeight) || 0,
|
|
8831
|
+
scrollHeight: (listElement === null || listElement === void 0 ? void 0 : listElement.scrollHeight) || 0,
|
|
8832
|
+
}); },
|
|
8841
8833
|
scrolledUpThreshold: scrolledUpThreshold,
|
|
8842
8834
|
scrollToBottom: scrollToBottom,
|
|
8843
8835
|
showNewMessages: function () { return setHasNewMessages(true); },
|
|
@@ -8865,7 +8857,7 @@ var useScrollLocationLogic = function (params) {
|
|
|
8865
8857
|
}, [closeToTop, closeToBottom, scrollToBottom]);
|
|
8866
8858
|
return {
|
|
8867
8859
|
hasNewMessages: hasNewMessages,
|
|
8868
|
-
|
|
8860
|
+
listElement: listElement,
|
|
8869
8861
|
onMessageLoadCaptured: onMessageLoadCaptured,
|
|
8870
8862
|
onScroll: onScroll,
|
|
8871
8863
|
scrollToBottom: scrollToBottom,
|
|
@@ -8873,12 +8865,6 @@ var useScrollLocationLogic = function (params) {
|
|
|
8873
8865
|
};
|
|
8874
8866
|
};
|
|
8875
8867
|
|
|
8876
|
-
var UnMemoizedCenter = function (_a) {
|
|
8877
|
-
var children = _a.children;
|
|
8878
|
-
return (React__default['default'].createElement("div", { className: 'str-chat__list__center' }, children));
|
|
8879
|
-
};
|
|
8880
|
-
var Center = React__default['default'].memo(UnMemoizedCenter);
|
|
8881
|
-
|
|
8882
8868
|
var UnMemoizedMessageNotification = function (props) {
|
|
8883
8869
|
var children = props.children, onClick = props.onClick, _a = props.showNotification, showNotification = _a === void 0 ? true : _a;
|
|
8884
8870
|
if (!showNotification)
|
|
@@ -8941,15 +8927,19 @@ var MessageListWithContext = function (props) {
|
|
|
8941
8927
|
var channel = props.channel, _a = props.disableDateSeparator, disableDateSeparator = _a === void 0 ? false : _a, groupStyles = props.groupStyles, _b = props.hideDeletedMessages, hideDeletedMessages = _b === void 0 ? false : _b, _c = props.hideNewMessageSeparator, hideNewMessageSeparator = _c === void 0 ? false : _c, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, _e = props.messages, messages = _e === void 0 ? [] : _e, notifications = props.notifications, _f = props.noGroupByUser, noGroupByUser = _f === void 0 ? false : _f, _g = props.pinPermissions, pinPermissions = _g === void 0 ? defaultPinPermissions : _g, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
8942
8928
|
_h = props.returnAllReadData, // @deprecated in favor of `channelCapabilities` - TODO: remove in next major release
|
|
8943
8929
|
returnAllReadData = _h === void 0 ? false : _h, _j = props.threadList, threadList = _j === void 0 ? false : _j, _k = props.unsafeHTML, unsafeHTML = _k === void 0 ? false : _k, headerPosition = props.headerPosition, read = props.read, _l = props.messageLimit, messageLimit = _l === void 0 ? 100 : _l, loadMoreCallback = props.loadMore, loadMoreNewerCallback = props.loadMoreNewer, _m = props.hasMoreNewer, hasMoreNewer = _m === void 0 ? false : _m, suppressAutoscroll = props.suppressAutoscroll, highlightedMessageId = props.highlightedMessageId, _o = props.jumpToLatestMessage, jumpToLatestMessage = _o === void 0 ? function () { return Promise.resolve(); } : _o;
|
|
8930
|
+
var _p = React__default['default'].useState(null), listElement = _p[0], setListElement = _p[1];
|
|
8931
|
+
var _q = React__default['default'].useState(null), ulElement = _q[0], setUlElement = _q[1];
|
|
8944
8932
|
var customClasses = useChatContext('MessageList').customClasses;
|
|
8945
|
-
var
|
|
8946
|
-
var
|
|
8933
|
+
var _r = useComponentContext('MessageList'), _s = _r.EmptyStateIndicator, EmptyStateIndicator$1 = _s === void 0 ? EmptyStateIndicator : _s, _t = _r.MessageListNotifications, MessageListNotifications$1 = _t === void 0 ? MessageListNotifications : _t, _u = _r.MessageNotification, MessageNotification$1 = _u === void 0 ? MessageNotification : _u, _v = _r.TypingIndicator, TypingIndicator$1 = _v === void 0 ? TypingIndicator : _v;
|
|
8934
|
+
var _w = useScrollLocationLogic({
|
|
8947
8935
|
hasMoreNewer: hasMoreNewer,
|
|
8936
|
+
listElement: listElement,
|
|
8948
8937
|
messages: messages,
|
|
8949
8938
|
scrolledUpThreshold: props.scrolledUpThreshold,
|
|
8950
8939
|
suppressAutoscroll: suppressAutoscroll,
|
|
8951
|
-
|
|
8952
|
-
|
|
8940
|
+
ulElement: ulElement,
|
|
8941
|
+
}), hasNewMessages = _w.hasNewMessages, onMessageLoadCaptured = _w.onMessageLoadCaptured, onScroll = _w.onScroll, scrollToBottom = _w.scrollToBottom, wrapperRect = _w.wrapperRect;
|
|
8942
|
+
var _x = useEnrichedMessages({
|
|
8953
8943
|
channel: channel,
|
|
8954
8944
|
disableDateSeparator: disableDateSeparator,
|
|
8955
8945
|
groupStyles: groupStyles,
|
|
@@ -8958,7 +8948,7 @@ var MessageListWithContext = function (props) {
|
|
|
8958
8948
|
hideNewMessageSeparator: hideNewMessageSeparator,
|
|
8959
8949
|
messages: messages,
|
|
8960
8950
|
noGroupByUser: noGroupByUser,
|
|
8961
|
-
}), messageGroupStyles =
|
|
8951
|
+
}), messageGroupStyles = _x.messageGroupStyles, enrichedMessages = _x.messages;
|
|
8962
8952
|
var elements = useMessageListElements({
|
|
8963
8953
|
enrichedMessages: enrichedMessages,
|
|
8964
8954
|
internalMessageProps: {
|
|
@@ -8993,7 +8983,7 @@ var MessageListWithContext = function (props) {
|
|
|
8993
8983
|
returnAllReadData: returnAllReadData,
|
|
8994
8984
|
threadList: threadList,
|
|
8995
8985
|
});
|
|
8996
|
-
var
|
|
8986
|
+
var _y = useComponentContext('useInternalInfiniteScrollProps').LoadingIndicator, LoadingIndicator$1 = _y === void 0 ? LoadingIndicator : _y;
|
|
8997
8987
|
var messageListClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.messageList) || 'str-chat__list';
|
|
8998
8988
|
var threadListClass = threadList ? (customClasses === null || customClasses === void 0 ? void 0 : customClasses.threadList) || 'str-chat__list--thread' : '';
|
|
8999
8989
|
var loadMore = React__default['default'].useCallback(function () {
|
|
@@ -9022,18 +9012,15 @@ var MessageListWithContext = function (props) {
|
|
|
9022
9012
|
}
|
|
9023
9013
|
});
|
|
9024
9014
|
}); }, [scrollToBottom, hasMoreNewer]);
|
|
9025
|
-
var ulRef = React__default['default'].useRef(null);
|
|
9026
9015
|
React__default['default'].useLayoutEffect(function () {
|
|
9027
|
-
var _a;
|
|
9028
9016
|
if (highlightedMessageId) {
|
|
9029
|
-
var element =
|
|
9017
|
+
var element = ulElement === null || ulElement === void 0 ? void 0 : ulElement.querySelector("[data-message-id='" + highlightedMessageId + "']");
|
|
9030
9018
|
element === null || element === void 0 ? void 0 : element.scrollIntoView({ block: 'center' });
|
|
9031
9019
|
}
|
|
9032
9020
|
}, [highlightedMessageId]);
|
|
9033
9021
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
9034
|
-
React__default['default'].createElement("div", { className: messageListClass + " " + threadListClass, onScroll: onScroll, ref:
|
|
9035
|
-
|
|
9036
|
-
React__default['default'].createElement("ul", { className: 'str-chat__ul', ref: ulRef }, elements),
|
|
9022
|
+
React__default['default'].createElement("div", { className: messageListClass + " " + threadListClass, onScroll: onScroll, ref: setListElement, tabIndex: 0 }, !elements.length ? (React__default['default'].createElement(EmptyStateIndicator$1, { listType: 'message' })) : (React__default['default'].createElement(InfiniteScroll, __assign({ className: 'str-chat__reverse-infinite-scroll', "data-testid": 'reverse-infinite-scroll', hasMore: props.hasMore, hasMoreNewer: props.hasMoreNewer, isLoading: props.loadingMore, loader: React__default['default'].createElement("div", { className: 'str-chat__list__loading', key: 'loadingindicator' }, props.loadingMore && React__default['default'].createElement(LoadingIndicator$1, { size: 20 })), loadMore: loadMore, loadMoreNewer: loadMoreNewer }, props.internalInfiniteScrollProps),
|
|
9023
|
+
React__default['default'].createElement("ul", { className: 'str-chat__ul', ref: setUlElement }, elements),
|
|
9037
9024
|
React__default['default'].createElement(TypingIndicator$1, { threadList: threadList }),
|
|
9038
9025
|
React__default['default'].createElement("div", { key: 'bottom' })))),
|
|
9039
9026
|
React__default['default'].createElement(MessageListNotifications$1, { hasNewMessages: hasNewMessages, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottomFromNotification })));
|
|
@@ -9544,7 +9531,6 @@ exports.LoadingIndicator = LoadingIndicator;
|
|
|
9544
9531
|
exports.MAX_QUERY_CHANNELS_LIMIT = MAX_QUERY_CHANNELS_LIMIT;
|
|
9545
9532
|
exports.MESSAGE_ACTIONS = MESSAGE_ACTIONS;
|
|
9546
9533
|
exports.MML = MML;
|
|
9547
|
-
exports.MODERATION_ERROR_CODE = MODERATION_ERROR_CODE;
|
|
9548
9534
|
exports.Message = Message;
|
|
9549
9535
|
exports.MessageActions = MessageActions;
|
|
9550
9536
|
exports.MessageActionsBox = MessageActionsBox;
|