diff --git a/__tests__/__snapshots__/Storyshots.test.js.snap b/__tests__/__snapshots__/Storyshots.test.js.snap index 3b283ab56..62fa05a82 100644 --- a/__tests__/__snapshots__/Storyshots.test.js.snap +++ b/__tests__/__snapshots__/Storyshots.test.js.snap @@ -18121,6 +18121,26 @@ exports[`Storyshots Markdown Preview 1`] = ` > Testing: 😃 👍 :marioparty: + + Fallback from new md to old + `; @@ -50359,20 +50379,100 @@ exports[`Storyshots NewMarkdown Block quote 1`] = ` } > - Rocket.Chat to the moon + + Rocket.Chat to the moon + + + + + + + + + + + + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + @@ -50408,28 +50508,36 @@ exports[`Storyshots NewMarkdown Code 1`] = ` > - - inline code + + + inline code + @@ -50455,10 +50563,9 @@ exports[`Storyshots NewMarkdown Code 1`] = ` } > - Multi line - - - Code + Multi +Line +Code @@ -50554,108 +50661,116 @@ exports[`Storyshots NewMarkdown Emoji 1`] = ` > - 🚀 - - - 🤦 - - - + 🚀 + + - - - + 🤦 + + - + > + + + + + + `; @@ -50687,57 +50802,65 @@ exports[`Storyshots NewMarkdown Hashtag 1`] = ` } > - #text_channel - - - and - - - #not_a_channel + + #text_channel + + + and + + + #not_a_channel + @@ -50891,24 +51014,32 @@ exports[`Storyshots NewMarkdown Links 1`] = ` } > - https://rocket.chat + + https://rocket.chat + - Markdown link + + Markdown link + @@ -50988,20 +51127,205 @@ exports[`Storyshots NewMarkdown Lists 1`] = ` - - Open Source + + Plain text + + + 💡 + + + + italic + + + + + bold + + + + + strike + + + + #general + + + link + + + rocket.cat + + + + inline code + + - Rocket.Chat + + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + @@ -51075,20 +51407,205 @@ exports[`Storyshots NewMarkdown Lists 1`] = ` . - Open Source + + Plain text + + + 💡 + + + + italic + + + + + bold + + + + + strike + + + + #general + + + link + + + rocket.cat + + + + inline code + + + + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + + + + + - Rocket.Chat + - [x] + + + + Plain text + + + 💡 + + + + italic + + + + + bold + + + + + strike + + + + #general + + + link + + + rocket.cat + + + + inline code + + + + + + + - [ ] + + + + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + @@ -51165,23 +51969,31 @@ exports[`Storyshots NewMarkdown Mentions 1`] = ` } > - rocket.cat + + rocket.cat + - name - - - - - - rocket.cat - - - - - - here - - - - - - all + + name + + + + + + rocket.cat + + + + + + here + + + + + + all + @@ -51336,250 +52156,6 @@ exports[`Storyshots NewMarkdown Text 1`] = ` } } > - - - This is Rocket.Chat - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - - - - - a - - - b - - - c - - - - - - d - - - - - - - - - e - - - - - a b c - - - This is bold + This is Rocket.Chat - - and - + + - this is italic + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries + + + + + + + a + + + b + + + c + + + + + + d + + + + + + + + + e + + + + + + + a b c + + + + + + + This is Rocket.Chat + + + + + + + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries diff --git a/app/containers/markdown/index.tsx b/app/containers/markdown/index.tsx index d84dc7dc8..f4800579b 100644 --- a/app/containers/markdown/index.tsx +++ b/app/containers/markdown/index.tsx @@ -369,7 +369,7 @@ class Markdown extends PureComponent { return null; } - if (this.isNewMarkdown) { + if (this.isNewMarkdown && !preview) { return ( { const { useRealName, username, navToRoomInfo, mentions, channels } = useContext(MarkdownContext); return ( - <> + {value.map(block => { switch (block.type) { case 'IMAGE': @@ -55,7 +57,7 @@ const Inline = ({ value }: IParagraphProps): JSX.Element => { return null; } })} - + ); }; diff --git a/app/containers/markdown/styles.ts b/app/containers/markdown/styles.ts index 7a9cdebb5..0e594d3a4 100644 --- a/app/containers/markdown/styles.ts +++ b/app/containers/markdown/styles.ts @@ -161,5 +161,8 @@ export default StyleSheet.create({ }, alignRight: { textAlign: 'right' + }, + inline: { + flexShrink: 1 } }); diff --git a/app/i18n/locales/af.json b/app/i18n/locales/af.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/af.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/ar.json b/app/i18n/locales/ar.json index b47c373f9..896d4d0d1 100644 --- a/app/i18n/locales/ar.json +++ b/app/i18n/locales/ar.json @@ -14,7 +14,7 @@ "error-delete-protected-role": "لا يمكن حذف دور محمي", "error-department-not-found": "القسم غير موجود", "error-direct-message-file-upload-not-allowed": "مشاركة الملفات غير مسموح في الرسالة المباشرة", - "error-duplicate-channel-name": "القناة {{channel_name}} موجودة مسبقاً", + "error-duplicate-channel-name": "القناة {{room_name}} موجودة مسبقاً", "error-email-domain-blacklisted": "عنوان اﻹيميل محظور", "error-email-send-failed": "خطأ في إرسال البريد اﻹلكتروني: {{message}}", "error-save-image": "خطأ عند حفظ الصورة", @@ -78,6 +78,7 @@ "error-user-registration-disabled": "التسجيل معطل", "error-user-registration-secret": "التسجيل مسموح به عبر عنوان الويب السري فقط", "error-you-are-last-owner": "أنت المالك الأخير. يرجى تعيين مالك جديد قبل مغادرة الغرفة", + "error-status-not-allowed": "تم تعطيل الحلة غير المرئية", "Actions": "الإجراءات", "Activity": "النشاط", "Add_Reaction": "إضافة تفاعل", @@ -89,6 +90,7 @@ "alert": "إنذار", "alerts": "الإنذارات", "All_users_in_the_channel_can_write_new_messages": "يمكن لجميع المستخدمين في القناة كتابة رسائل جديدة", + "All_users_in_the_team_can_write_new_messages": "يمكن لجميع المستخدمين في الفريق كتابة رسائل جديدة", "A_meaningful_name_for_the_discussion_room": "اسم معبر لغرفة النقاش", "All": "الكل", "All_Messages": "كل الرسائل", @@ -179,9 +181,12 @@ "delete": "حذف", "Delete": "حذف", "DELETE": "حذف", + "move": "حرك", "deleting_room": "حذف الغرفة", "description": "وصف", "Description": "وصف", + "Desktop_Options": "خيارات سطح المكتب", + "Desktop_Notifications": "إخطارات سطح المكتب", "Desktop_Alert_info": "هذه الإشعارات ترسل لسطح المكتب", "Directory": "مجلد", "Direct_Messages": "رسالة مباشرة", @@ -221,6 +226,7 @@ "Encryption_error_title": "كلمة المرور المشفرة خاطئة", "Encryption_error_desc": "تعذر قراءة مفتاح التشفير أثناء الاستيراد", "Everyone_can_access_this_channel": "يمكن للجميع الوصول إلى هذه القناة", + "Everyone_can_access_this_team": "يمكن للجميع الوصول إلى هذا الفريق", "Error_uploading": "خطأ في الرفع", "Expiration_Days": "انتهاء (أيام)", "Favorites": "مفضلات", @@ -261,6 +267,7 @@ "I_Saved_My_E2E_Password": "قمت بحفظ كلمة المرور الطرفية", "IP": " عنوان بروتوكول الإنترنت (الآيبي)", "In_app": "في التطبيق", + "In_App_And_Desktop": "تطبيق داخلي وسطح المكتب", "In_App_and_Desktop_Alert_info": "يعرض شعاراً أعلى الشاشة عندما يكون التطبيق مفتوحًا، ويعرض إشعاراً على سطح المكتب", "Invisible": "غير مرئي", "Invite": "دعوة", @@ -272,9 +279,12 @@ "Invite_Link": "رابط الدعوة", "Invite_users": "دعوة المستخدمين", "Join": "انضم", + "Join_Code": "رمز الانضمام", + "Insert_Join_Code": "ضع رمز الانضمام", "Join_our_open_workspace": "انضم لمساحة عملنا المفتوحة", "Join_your_workspace": "انضم لمساحة عملك", "Just_invited_people_can_access_this_channel": "يمكن للأشخاص المدعوين فقط الوصول إلى هذه القناة", + "Just_invited_people_can_access_this_team": "فقط الأشخاص المدعوين يمكنهم الوصول إلى هذا الفريق", "Language": "اللغة", "last_message": "الرسالة الأخيرة", "Leave_channel": "مغادرة القناة", @@ -316,6 +326,7 @@ "My_servers": "الخوادم", "N_people_reacted": "{{n}} تفاعل الناس", "N_users": "{{n}} مستخدمين", + "N_channels": "{{n}} القنوات", "Name": "اسم", "Navigation_history": "تاريخ التصفح", "Never": "أبداً", @@ -421,9 +432,11 @@ "Review_app_unable_store": "لم يتمكن من فتح {{store}}", "Review_this_app": "تقييم هذا التطبيق", "Remove": "حذف", + "remove": "حذف", "Roles": "أدوار", "Room_actions": "إجراءات الغرفة", "Room_changed_announcement": "تم تغيير إعلان الغرفة إلى: {{announcement}} من قبل {{userBy}}", + "Room_changed_avatar": " {{userBy}}تم تغيير الصورة الرمزية للغرفة", "Room_changed_description": "تم تغيير وصف الغرفة إلى: {{description}} من قبل {{userBy}}", "Room_changed_privacy": "تم تغيير نوع الغرفة إلى: {{type}} من قبل {{userBy}}", "Room_changed_topic": "تم تغيير موضوع الغرفة إلى: {{topic}} من قبل {{userBy}}", @@ -450,6 +463,7 @@ "Search_global_users": "بحث عام عن المستخدمين", "Search_global_users_description": "إذا قمت بالتفعيل، فسيمكنك البحث عن أي مستخدم في شركات أو خوادم أخرى", "Seconds": "{{second}} ثواني", + "Security_and_privacy": "الأمن والخصوصية", "Select_Avatar": "حدد الصورة الرمزية", "Select_Server": "حدد خادم", "Select_Users": "حدد مستخدمين", @@ -644,4 +658,4 @@ "Logout_failed": "فشل تسجيل الخروج!", "Log_analytics_events": "تحليلات سجل الأحداث", "invalid-room": "غرفة غير صالحة" -} +} \ No newline at end of file diff --git a/app/i18n/locales/az.json b/app/i18n/locales/az.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/az.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/bas-CM.json b/app/i18n/locales/bas-CM.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/bas-CM.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/be-BY.json b/app/i18n/locales/be-BY.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/be-BY.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/bg.json b/app/i18n/locales/bg.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/bg.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/bn-BD.json b/app/i18n/locales/bn-BD.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/bn-BD.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/bn-IN.json b/app/i18n/locales/bn-IN.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/bn-IN.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/bs.json b/app/i18n/locales/bs.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/bs.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/ca.json b/app/i18n/locales/ca.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/ca.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/cs.json b/app/i18n/locales/cs.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/cs.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/cy.json b/app/i18n/locales/cy.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/cy.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/da.json b/app/i18n/locales/da.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/da.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/de-AT.json b/app/i18n/locales/de-AT.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/de-AT.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/de.json b/app/i18n/locales/de.json index f47ed1949..5a6fe2bda 100644 --- a/app/i18n/locales/de.json +++ b/app/i18n/locales/de.json @@ -764,4 +764,4 @@ "Select_Team_Channels_To_Delete": "Wähle die Kanäle des Teams aus, die du löschen möchtest. Die Kanäle, die du nicht auswählst, werden in den Arbeitsbereich verschoben \n\nBeachte, dass öffentliche Kanäle öffentlich und für alle sichtbar sind.", "You_are_converting_the_team": "Du wandelst dieses Team in einen Raum um", "creating_discussion": "erzeuge Diskussion" -} +} \ No newline at end of file diff --git a/app/i18n/locales/el.json b/app/i18n/locales/el.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/el.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/en.json b/app/i18n/locales/en.json index 0d75c4e39..5d6eb5819 100644 --- a/app/i18n/locales/en.json +++ b/app/i18n/locales/en.json @@ -783,5 +783,5 @@ "No_canned_responses": "No canned responses", "Send_email_confirmation": "Send email confirmation", "sending_email_confirmation": "sending email confirmation", - "Enable_Message_Parser": "Enable Message Parser" -} + "Enable_Message_Parser": "Enable Message Parser" +} \ No newline at end of file diff --git a/app/i18n/locales/eo.json b/app/i18n/locales/eo.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/eo.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/es-ES.json b/app/i18n/locales/es-ES.json index 8a630f401..f75061579 100644 --- a/app/i18n/locales/es-ES.json +++ b/app/i18n/locales/es-ES.json @@ -442,4 +442,4 @@ "Server_selection_numbers": "Seleccionar servidor 1...9", "Add_server": "Añadir servidor", "New_line": "Nueva línea" -} +} \ No newline at end of file diff --git a/app/i18n/locales/et.json b/app/i18n/locales/et.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/et.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/eu.json b/app/i18n/locales/eu.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/eu.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/fa.json b/app/i18n/locales/fa.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/fa.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/fi.json b/app/i18n/locales/fi.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/fi.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/fr.json b/app/i18n/locales/fr.json index 00f19ed77..811486b06 100644 --- a/app/i18n/locales/fr.json +++ b/app/i18n/locales/fr.json @@ -763,5 +763,24 @@ "Converting_Team_To_Channel": "Conversion de l’équipe en canal", "Select_Team_Channels_To_Delete": "Sélectionnez les canaux de l'équipe que vous souhaitez supprimer, ceux que vous ne sélectionnez pas, seront déplacés vers l'espace de travail. \n\n\nNotez que les canaux publics seront publics et visibles par tous.", "You_are_converting_the_team": "Vous convertissez cette équipe en canal", - "creating_discussion": "créer une discussion" -} + "Display": "Affichage", + "Avatars": "Avatars", + "Sort_by": "Trier par", + "Group_by": "Grouper par", + "Types": "Types", + "Expanded": "Etendu", + "Condensed": "Condensé", + "creating_discussion": "créer une discussion", + "Canned_Responses": "Modèles de réponse", + "No_match_found": "Pas de résultat trouvé.", + "Check_canned_responses": "Vérifiez les réponses standardisées.", + "Searching": "Recherche", + "Use": "Utiliser", + "Shortcut": "Raccourci", + "Content": "Contenu", + "Sharing": "Partager", + "No_canned_responses": "Pas de réponses standardisées", + "Send_email_confirmation": "Envoyer un e-mail de confirmation", + "sending_email_confirmation": "envoi d'e-mail de confirmation", + "Enable_Message_Parser": "Activer le parseur de messages" +} \ No newline at end of file diff --git a/app/i18n/locales/gl.json b/app/i18n/locales/gl.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/gl.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/he.json b/app/i18n/locales/he.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/he.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/hi-IN.json b/app/i18n/locales/hi-IN.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/hi-IN.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/hr.json b/app/i18n/locales/hr.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/hr.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/hu.json b/app/i18n/locales/hu.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/hu.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/id.json b/app/i18n/locales/id.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/id.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/it.json b/app/i18n/locales/it.json index e4cc8997e..7b1f1f666 100644 --- a/app/i18n/locales/it.json +++ b/app/i18n/locales/it.json @@ -14,7 +14,7 @@ "error-delete-protected-role": "Impossibile eliminare un ruolo protetto", "error-department-not-found": "Reparto non trovato", "error-direct-message-file-upload-not-allowed": "La condivisione di file non è autorizzata nei messaggi diretti", - "error-duplicate-channel-name": "Esiste già un canale con nome {{channel_name}}", + "error-duplicate-channel-name": "Esiste già un canale con nome {{room_name}}", "error-email-domain-blacklisted": "Il dominio e-mail è nella lista nera", "error-email-send-failed": "Errore nel tentativo di invio e-mail: {{message}}", "error-save-image": "Errore nel salvataggio dell'immagine", @@ -690,4 +690,4 @@ "Enter_workspace_URL": "Inserisci la url del workspace", "Workspace_URL_Example": "Es. tua-azienda.rocket.chat", "invalid-room": "Canale non valido" -} +} \ No newline at end of file diff --git a/app/i18n/locales/ja.json b/app/i18n/locales/ja.json index 99c76468d..dedba9ffd 100644 --- a/app/i18n/locales/ja.json +++ b/app/i18n/locales/ja.json @@ -13,7 +13,7 @@ "error-delete-protected-role": "保護されたロールは削除できません。", "error-department-not-found": "ロールが存在しません。", "error-direct-message-file-upload-not-allowed": "ダイレクトメッセージでのファイルのアップロードは許可されていません。", - "error-duplicate-channel-name": "{{channel_name}}と同名のチャンネルが存在します。", + "error-duplicate-channel-name": "{{room_name}}と同名のチャンネルが存在します。", "error-email-domain-blacklisted": "このドメインのメールアドレスはブラックリストに登録されています。", "error-email-send-failed": "次のメールアドレスの送信に失敗しました: {{message}}", "error-save-image": "画像の保存に失敗しました。", @@ -480,4 +480,4 @@ "Clear": "クリア", "This_will_clear_all_your_offline_data": "オフラインデータをすべて削除します。", "invalid-room": "無効なルーム" -} +} \ No newline at end of file diff --git a/app/i18n/locales/ka-GE.json b/app/i18n/locales/ka-GE.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/ka-GE.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/kg.json b/app/i18n/locales/kg.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/kg.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/km.json b/app/i18n/locales/km.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/km.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/ko.json b/app/i18n/locales/ko.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/ko.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/ku.json b/app/i18n/locales/ku.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/ku.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/ln.json b/app/i18n/locales/ln.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/ln.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/lo.json b/app/i18n/locales/lo.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/lo.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/lt.json b/app/i18n/locales/lt.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/lt.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/lv.json b/app/i18n/locales/lv.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/lv.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/mn.json b/app/i18n/locales/mn.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/mn.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/ms-MY.json b/app/i18n/locales/ms-MY.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/ms-MY.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/nl.json b/app/i18n/locales/nl.json index 2df9653f0..df4e3aafd 100644 --- a/app/i18n/locales/nl.json +++ b/app/i18n/locales/nl.json @@ -763,5 +763,24 @@ "Converting_Team_To_Channel": "Team converteren naar kanaal", "Select_Team_Channels_To_Delete": "Selecteer de teamkanalen die je wilt verwijderen, de kanalen die u niet selecteert, worden naar de werkruimte verplaatst.\n\nMerk op dat openbare kanalen openbaar en voor iedereen zichtbaar zullen zijn.", "You_are_converting_the_team": "Je converteert dit team naar een kanaal", - "creating_discussion": "discussie aanmaken" -} + "Display": "Weergave", + "Avatars": "Avatars", + "Sort_by": "Sorteer op", + "Group_by": "Groeperen op", + "Types": "Soorten", + "Expanded": "Uitgebreid", + "Condensed": "Gecondenseerd", + "creating_discussion": "discussie aanmaken", + "Canned_Responses": "Standaardantwoorden", + "No_match_found": "Geen overeenkomst gevonden.", + "Check_canned_responses": "Controleer op standaardantwoorden.", + "Searching": "Zoeken", + "Use": "Gebruiken", + "Shortcut": "Snelkoppeling", + "Content": "Inhoud", + "Sharing": "Delen", + "No_canned_responses": "Geen standaardantwoorden", + "Send_email_confirmation": "Stuur e-mailbevestiging", + "sending_email_confirmation": "e-mailbevestiging aan het verzenden", + "Enable_Message_Parser": "Berichtparser inschakelen" +} \ No newline at end of file diff --git a/app/i18n/locales/no.json b/app/i18n/locales/no.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/no.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/pl.json b/app/i18n/locales/pl.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/pl.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/pt-BR.json b/app/i18n/locales/pt-BR.json index f33e7586a..fcc05ca22 100644 --- a/app/i18n/locales/pt-BR.json +++ b/app/i18n/locales/pt-BR.json @@ -13,7 +13,7 @@ "error-delete-protected-role": "Não é possível remover um papel protegido", "error-department-not-found": "Departamento não encontrado", "error-direct-message-file-upload-not-allowed": "Compartilhamento de arquivos não está permitido em mensagens diretas", - "error-duplicate-channel-name": "Já existe um canal com nome {{channel_name}}", + "error-duplicate-channel-name": "Já existe um canal com nome {{room_name}}", "error-email-domain-blacklisted": "O domínio de e-mail está na lista negra", "error-email-send-failed": "Erro ao tentar enviar e-mail: {{message}}", "error-save-image": "Erro ao salvar imagem", @@ -59,6 +59,7 @@ "error-message-editing-blocked": "Edição de mensagens está bloqueada", "error-message-size-exceeded": "O tamanho da mensagem excede Message_MaxAllowedSize", "error-missing-unsubscribe-link": "Você deve fornecer o link para desinscrever-se: [unsubscribe].", + "error-no-owner-channel": "Você não é dono do canal", "error-no-tokens-for-this-user": "Não existem tokens para este usuário", "error-not-allowed": "Não permitido", "error-not-authorized": "Não autorizado", @@ -86,6 +87,7 @@ "alert": "alerta", "alerts": "alertas", "All_users_in_the_channel_can_write_new_messages": "Todos usuários no canal podem enviar mensagens novas", + "All_users_in_the_team_can_write_new_messages": "Todos usuários no canal podem enviar mensagens novas", "A_meaningful_name_for_the_discussion_room": "Um nome significativo para o canal de discussão", "All": "Todos", "Allow_Reactions": "Permitir reagir", @@ -171,6 +173,7 @@ "delete": "excluir", "Delete": "Excluir", "DELETE": "EXCLUIR", + "move": "mover", "deleting_room": "excluindo sala", "description": "descrição", "Description": "Descrição", @@ -216,6 +219,7 @@ "Encryption_error_title": "Sua senha de criptografia parece errada", "Encryption_error_desc": "Não foi possível decodificar sua chave de criptografia para ser importada.", "Everyone_can_access_this_channel": "Todos podem acessar este canal", + "Everyone_can_access_this_team": "Todos podem acessar este canal", "Error_uploading": "Erro subindo", "Expiration_Days": "Expira em (dias)", "Favorites": "Favoritos", @@ -268,6 +272,7 @@ "Join_our_open_workspace": "Entra na nossa workspace pública", "Join_your_workspace": "Entre na sua workspace", "Just_invited_people_can_access_this_channel": "Apenas as pessoas convidadas podem acessar este canal", + "Just_invited_people_can_access_this_team": "Apenas as pessoas convidadas podem acessar este time", "Language": "Idioma", "last_message": "última mensagem", "Leave_channel": "Sair do canal", @@ -302,6 +307,7 @@ "muted": "mudo", "N_people_reacted": "{{n}} pessoas reagiram", "N_users": "{{n}} usuários", + "N_channels": "{{n}} canais", "Name": "Nome", "Navigation_history": "Histórico de navegação", "Never": "Nunca", @@ -405,6 +411,7 @@ "Review_app_unable_store": "Não foi possível abrir {{store}}", "Review_this_app": "Avaliar esse app", "Remove": "Remover", + "remove": "remover", "Roles": "Papéis", "Room_actions": "Ações", "Room_changed_announcement": "O anúncio da sala foi alterado para: {{announcement}} por {{userBy}}", @@ -480,8 +487,8 @@ "The_user_wont_be_able_to_type_in_roomName": "O usuário não poderá digitar em {{roomName}}", "The_user_will_be_able_to_type_in_roomName": "O usuário poderá digitar em {{roomName}}", "There_was_an_error_while_action": "Aconteceu um erro {{action}}!", - "This_room_is_blocked": "Este quarto está bloqueado", - "This_room_is_read_only": "Este quarto é apenas de leitura", + "This_room_is_blocked": "Esta sala está bloqueada", + "This_room_is_read_only": "Esta sala é somente leitura", "Thread": "Tópico", "Threads": "Tópicos", "Timezone": "Fuso horário", @@ -631,6 +638,9 @@ "No_threads_following": "Você não está seguindo tópicos", "No_threads_unread": "Não há tópicos não lidos", "Messagebox_Send_to_channel": "Mostrar no canal", + "Leader": "Líder", + "Moderator": "Moderador", + "Owner": "Proprietário", "Remove_from_room": "Remover do canal", "Ignore": "Ignorar", "Unignore": "Deixar de ignorar", @@ -655,9 +665,46 @@ "No_team_channels_found": "Nenhum canal encontrado", "Team_not_found": "Time não encontrado", "Private_Team": "Equipe Privada", + "Add_Channel_to_Team": "Adicionar Canal ao Time", "Left_The_Team_Successfully": "Saiu do time com sucesso", + "Create_New": "Criar", + "Add_Existing": "Adicionar", "Add_Existing_Channel": "Adicionar Canal Existente", + "Remove_from_Team": "Remover do time", + "Auto-join": "Entrada Automática", + "Remove_Team_Room_Warning": "Você deseja remover este canal do time? O canal será movido de volta para o espaço de trabalho", + "Confirmation": "Confirmação", "invalid-room": "Sala inválida", + "You_are_leaving_the_team": "Você está deixando o time '{{team}}'", + "Leave_Team": "Sair do Time", + "Select_Team": "Selecionar Time", + "Select_Team_Channels": "Selecione os canais do time que você gostaria de deixar.", + "Cannot_leave": "Não pode sair", + "Cannot_remove": "Não é possível remover", + "Cannot_delete": "Não é possível apagar", + "Last_owner_team_room": "Você é o último dono deste canal. Uma vez que você deixe o time, o canal será mantido dentro da equipe, mas você estará administrando-o de fora.", + "last-owner-can-not-be-removed": "O último dono não pode ser removido", + "Remove_User_Teams": "Selecione os canais dos quais você deseja que o usuário seja removido.", + "Delete_Team": "Excluir Time", + "Select_channels_to_delete": "Isto não pode ser desfeito. Assim que você apagar um time, todo o conteúdo e configuração do chat serão apagados.\n\nSelecione os canais que você gostaria de excluir. Os que você decidir manter estarão disponíveis no seu espaço de trabalho. Note que os canais públicos continuarão a ser públicos e visíveis para todos.", + "You_are_deleting_the_team": "Você está apagando este time.", + "Removing_user_from_this_team": "Você está removendo {{user}} deste time", + "Remove_User_Team_Channels": "Selecione os canais dos quais você deseja que o usuário seja removido.", + "Remove_Member": "Remover Membro", + "leaving_team": "saindo do time", + "removing_team": "removendo do time", + "moving_channel_to_team": "movendo canal do time", + "deleting_team": "apagando time", + "member-does-not-exist": "Membro não existe", + "Convert": "Converter", + "Convert_to_Team": "Converter para Time", + "Convert_to_Team_Warning": "Você está convertendo este Canal para um Time. Todos os Membros serão mantidos.", + "Move_to_Team": "Mover para Time", + "Move_Channel_Paragraph": "Mover um canal dentro de um time significa que este canal será adicionado no contexto da equipe, no entanto, todos os membros do canal, que não são membros do respectivo time, ainda terão acesso a este canal, mas não serão adicionados como membros da equipe \n\nA gestão de todos os canais continuará a ser feita pelos proprietários deste canal.\n\nOs membros da equipe e até mesmo os proprietários da equipe, se não forem membros deste canal, não podem ter acesso ao conteúdo do canal.\n\nPor favor, note que o dono do time poderá remover membros do canal.", + "Move_to_Team_Warning": "Depois de ler as instruções anteriores sobre este comportamento, você ainda deseja mover este canal para o time selecionado?", + "Load_More": "Carregar mais", + "Load_Newer": "Carregar mais novas", + "Load_Older": "Carregar mais antigas", "room-name-already-exists": "Nome da sala já existe", "error-team-creation": "Erro na criação do time", "unauthorized": "Não autorizado", @@ -665,6 +712,9 @@ "Deleted_The_Team_Successfully": "Time deletado com sucesso", "Deleted_The_Room_Successfully": "Sala deletada com sucesso", "Convert_to_Channel": "Converter para um Canal", + "Converting_Team_To_Channel": "Convertendo Time para Canal", + "Select_Team_Channels_To_Delete": "Selecione os Canais do Time que você gostaria de excluir. Aqueles que você não selecionar serão movidos para o Espaço de Trabalho.\n\nNote que os Canais públicos serão públicos e visíveis para todos.", + "You_are_converting_the_team": "Você está convertendo este Time para um Canal", "Display": "Display", "Avatars": "Avatars", "Sort_by": "Ordenar por", @@ -672,6 +722,7 @@ "Types": "Tipos", "Expanded": "Estendido", "Condensed": "Condensado", + "creating_discussion": "criando discussão", "Canned_Responses": "Respostas Predefinidas", "No_match_found": "Nenhum resultado encontrado", "Check_canned_responses": "Verifique nas respostas predefinidas", @@ -679,7 +730,8 @@ "Use": "Use", "Shortcut": "Atalho", "Content": "Conteúdo", + "Sharing": "Compartilhando", "No_canned_responses": "Não há respostas predefinidas", "Send_email_confirmation": "Enviar email de confirmação", "sending_email_confirmation": "enviando email de confirmação" -} +} \ No newline at end of file diff --git a/app/i18n/locales/pt-PT.json b/app/i18n/locales/pt-PT.json index f13311354..f3d23c51e 100644 --- a/app/i18n/locales/pt-PT.json +++ b/app/i18n/locales/pt-PT.json @@ -510,4 +510,4 @@ "you": "você", "You": "Você", "You_will_not_be_able_to_recover_this_message": "Você será incapaz de recuperar esta mensagem!" -} +} \ No newline at end of file diff --git a/app/i18n/locales/ro.json b/app/i18n/locales/ro.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/ro.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/ru.json b/app/i18n/locales/ru.json index 69bf61ab8..071e8f3e4 100644 --- a/app/i18n/locales/ru.json +++ b/app/i18n/locales/ru.json @@ -81,7 +81,7 @@ "error-you-are-last-owner": "Вы последний владелец. Пожалуйста, назначьте нового владельца, прежде чем покинуть чат.", "error-status-not-allowed": "Статус Невидимый отключён", "Actions": "Действия", - "Activity": "По активности", + "Activity": "Активность", "Add_Reaction": "Добавить реакцию", "Add_Server": "Добавить сервер", "Add_users": "Добавить пользователей", @@ -231,7 +231,7 @@ "Everyone_can_access_this_team": "Каждый может получить доступ к этой Команде", "Error_uploading": "Ошибка загрузки", "Expiration_Days": "Срок действия (Дни)", - "Favorites": "Избранные", + "Favorites": "Избранное", "Files": "Файлы", "File_description": "Описание файла", "File_name": "Имя файла", @@ -763,5 +763,24 @@ "Converting_Team_To_Channel": "Преобразование Команды в канал", "Select_Team_Channels_To_Delete": "Выберите каналы Команды, которые вы хотите удалить, те, которые вы не выбрали, будут перемещены в рабочую область \n\nОбратите внимание, что публичные каналы будут открытыми и видимыми для всех.", "You_are_converting_the_team": "Вы преобразуете эту Команду в канал", - "creating_discussion": "создание обсуждения" -} + "Display": "Внешний вид", + "Avatars": "Аватары", + "Sort_by": "Сортировка по", + "Group_by": "Группировка", + "Types": "Типы", + "Expanded": "Расширенный", + "Condensed": "Упрощенный", + "creating_discussion": "создание обсуждения", + "Canned_Responses": "Заготовленные ответы", + "No_match_found": "Совпадений не найдено.", + "Check_canned_responses": "Проверить заготовленные ответы", + "Searching": "Поиск", + "Use": "Использовать", + "Shortcut": "Ярлык", + "Content": "Содержимое", + "Sharing": "Поделиться", + "No_canned_responses": "Нет заготовленных ответов", + "Send_email_confirmation": "Отправить электронное письмо с подтверждением", + "sending_email_confirmation": "отправка подтверждения по электронной почте", + "Enable_Message_Parser": "Включить парсер сообщений" +} \ No newline at end of file diff --git a/app/i18n/locales/si.json b/app/i18n/locales/si.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/si.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/sk-SK.json b/app/i18n/locales/sk-SK.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/sk-SK.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/sl-SI.json b/app/i18n/locales/sl-SI.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/sl-SI.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/sq.json b/app/i18n/locales/sq.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/sq.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/sr.json b/app/i18n/locales/sr.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/sr.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/sv.json b/app/i18n/locales/sv.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/sv.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/ta-IN.json b/app/i18n/locales/ta-IN.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/ta-IN.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/th-TH.json b/app/i18n/locales/th-TH.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/th-TH.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/tr.json b/app/i18n/locales/tr.json index d0a68e1c2..aeb4caba8 100644 --- a/app/i18n/locales/tr.json +++ b/app/i18n/locales/tr.json @@ -14,7 +14,7 @@ "error-delete-protected-role": "Korunan bir rol silinemez!", "error-department-not-found": "Bölüm bulunamadı!", "error-direct-message-file-upload-not-allowed": "Özel iletilerde dosya paylaşımına izin verilmiyor!", - "error-duplicate-channel-name": "{{channel_name}} adında bir kanal var!", + "error-duplicate-channel-name": "{{room_name}} adında bir kanal var!", "error-email-domain-blacklisted": "E-posta alan adı kara listeye alındı!", "error-email-send-failed": "E-posta göndermeye çalışırken hata oluştu: {{message}}", "error-save-image": "Görüntüyü kaydederken hata oluştu!", @@ -690,4 +690,4 @@ "Enter_workspace_URL": "Çalışma alanı URL'nizi girin", "Workspace_URL_Example": "Örn. sirketiniz.rocket.chat", "invalid-room": "Geçersiz oda" -} +} \ No newline at end of file diff --git a/app/i18n/locales/ug.json b/app/i18n/locales/ug.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/ug.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/uk.json b/app/i18n/locales/uk.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/uk.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/vi-VN.json b/app/i18n/locales/vi-VN.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/vi-VN.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/zh-CN.json b/app/i18n/locales/zh-CN.json index 29a617b8f..e01368904 100644 --- a/app/i18n/locales/zh-CN.json +++ b/app/i18n/locales/zh-CN.json @@ -14,7 +14,7 @@ "error-delete-protected-role": "无法删除受保护的角色", "error-department-not-found": "找不到部门", "error-direct-message-file-upload-not-allowed": "私人对话中不允许档案分享", - "error-duplicate-channel-name": "名为「{{channel_name}}」的频道已存在", + "error-duplicate-channel-name": "名为「{{room_name}}」的频道已存在", "error-email-domain-blacklisted": "电子邮件网域被禁用", "error-email-send-failed": "尝试发送电子邮件时出错:{{message}}", "error-save-image": "错误,无法保存图片", @@ -669,4 +669,4 @@ "No_threads_following": "当前没有正在追踪的讨论", "No_threads_unread": "当前没有未读的讨论", "Messagebox_Send_to_channel": "发送至频道" -} +} \ No newline at end of file diff --git a/app/i18n/locales/zh-HK.json b/app/i18n/locales/zh-HK.json new file mode 100644 index 000000000..6f31cf5a2 --- /dev/null +++ b/app/i18n/locales/zh-HK.json @@ -0,0 +1 @@ +{ } \ No newline at end of file diff --git a/app/i18n/locales/zh-TW.json b/app/i18n/locales/zh-TW.json index a2d1203b4..85d2690ca 100644 --- a/app/i18n/locales/zh-TW.json +++ b/app/i18n/locales/zh-TW.json @@ -14,7 +14,7 @@ "error-delete-protected-role": "無法刪除受保護的角色", "error-department-not-found": "找不到部門", "error-direct-message-file-upload-not-allowed": "私人對話中不允許檔案分享", - "error-duplicate-channel-name": "名為「{{channel_name}}」的頻道已存在", + "error-duplicate-channel-name": "名為「{{room_name}}」的頻道已存在", "error-email-domain-blacklisted": "電子郵件網域被禁用", "error-email-send-failed": "嘗試發送電子郵件時出錯:{{message}}", "error-save-image": "錯誤,無法儲存圖片", @@ -672,4 +672,4 @@ "Messagebox_Send_to_channel": "發送至頻道", "Confirmation": "確認", "invalid-room": "無效的房間" -} +} \ No newline at end of file diff --git a/app/sagas/createChannel.js b/app/sagas/createChannel.js index c12d18a55..8185f673e 100644 --- a/app/sagas/createChannel.js +++ b/app/sagas/createChannel.js @@ -116,7 +116,7 @@ const handleFailure = function handleFailure({ err, isTeam }) { ? I18n.t(err.data.errorType, { room_name: err.data.details.channel_name }) : actionError; } else { - msg = err?.reason || (errorArray.includes(err?.data?.error) ? I18n.t(err.data.error) : err.data.error || actionError); + msg = err?.reason || (errorArray.includes(err?.data?.error) ? I18n.t(err.data.error) : err?.data?.error || actionError); } showErrorAlert(msg, isTeam ? I18n.t('Create_Team') : I18n.t('Create_Channel')); }, 300); diff --git a/app/sagas/deepLinking.js b/app/sagas/deepLinking.js index efad7afae..101747ccd 100644 --- a/app/sagas/deepLinking.js +++ b/app/sagas/deepLinking.js @@ -45,8 +45,10 @@ const navigate = function* navigate({ params }) { if (params.path || params.rid) { let type; let name; + let jumpToThreadId; if (params.path) { - [type, name] = params.path.split('/'); + // Following this pattern: {channelType}/{channelName}/thread/{threadId} + [type, name, , jumpToThreadId] = params.path.split('/'); } if (type !== 'invite' || params.rid) { const room = yield RocketChat.canOpenRoom(params); @@ -65,14 +67,19 @@ const navigate = function* navigate({ params }) { if (focusedRooms.includes(room.rid)) { // if there's one room on the list or last room is the one if (focusedRooms.length === 1 || focusedRooms[0] === room.rid) { - yield goRoom({ item, isMasterDetail, jumpToMessageId }); + if (jumpToThreadId) { + // With this conditional when there is a jumpToThreadId we can avoid the thread open again + // above other thread and the room could call again the thread + popToRoot({ isMasterDetail }); + } + yield goRoom({ item, isMasterDetail, jumpToMessageId, jumpToThreadId }); } else { popToRoot({ isMasterDetail }); - yield goRoom({ item, isMasterDetail, jumpToMessageId }); + yield goRoom({ item, isMasterDetail, jumpToMessageId, jumpToThreadId }); } } else { popToRoot({ isMasterDetail }); - yield goRoom({ item, isMasterDetail, jumpToMessageId }); + yield goRoom({ item, isMasterDetail, jumpToMessageId, jumpToThreadId }); } if (params.isCall) { diff --git a/app/views/NewServerView/ServerInput/index.tsx b/app/views/NewServerView/ServerInput/index.tsx index c3399b730..1da151367 100644 --- a/app/views/NewServerView/ServerInput/index.tsx +++ b/app/views/NewServerView/ServerInput/index.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { FlatList, StyleSheet, View } from 'react-native'; +import { FlatList, StyleSheet, TextInputProps, View } from 'react-native'; import TextInput from '../../../containers/TextInput'; import * as List from '../../../containers/List'; @@ -28,11 +28,10 @@ const styles = StyleSheet.create({ } }); -interface IServerInput { +interface IServerInput extends TextInputProps { text: string; theme: string; serversHistory: any[]; - onChangeText(text: string): void; onSubmit(): void; onDelete(item: IServer): void; onPressServerHistory(serverHistory: IServer): void; diff --git a/app/views/NewServerView/index.tsx b/app/views/NewServerView/index.tsx index 815ec1347..f1458c93a 100644 --- a/app/views/NewServerView/index.tsx +++ b/app/views/NewServerView/index.tsx @@ -71,6 +71,7 @@ export interface IServer extends Model { url: string; username: string; } + interface INewServerView { navigation: StackNavigationProp; theme: string; @@ -91,6 +92,11 @@ interface IState { serversHistory: IServer[]; } +interface ISubmitParams { + fromServerHistory?: boolean; + username?: string; +} + class NewServerView extends React.Component { constructor(props: INewServerView) { super(props); @@ -184,10 +190,10 @@ class NewServerView extends React.Component { }; onPressServerHistory = (serverHistory: IServer) => { - this.setState({ text: serverHistory.url }, () => this.submit(true, serverHistory?.username)); + this.setState({ text: serverHistory.url }, () => this.submit({ fromServerHistory: true, username: serverHistory?.username })); }; - submit = async (fromServerHistory?: boolean, username?: string) => { + submit = async ({ fromServerHistory = false, username }: ISubmitParams = {}) => { logEvent(events.NS_CONNECT_TO_WORKSPACE); const { text, certificate } = this.state; const { connectServer } = this.props; diff --git a/app/views/RoomView/index.js b/app/views/RoomView/index.js index 4a58770f9..312bbdef4 100644 --- a/app/views/RoomView/index.js +++ b/app/views/RoomView/index.js @@ -149,6 +149,7 @@ class RoomView extends React.Component { prid }; this.jumpToMessageId = props.route.params?.jumpToMessageId; + this.jumpToThreadId = props.route.params?.jumpToThreadId; const roomUserId = props.route.params?.roomUserId ?? RocketChat.getUidDirectMessage(room); this.state = { joined: true, @@ -209,6 +210,9 @@ class RoomView extends React.Component { if (this.jumpToMessageId) { this.jumpToMessage(this.jumpToMessageId); } + if (this.jumpToThreadId && !this.jumpToMessageId) { + this.navToThread({ tmid: this.jumpToThreadId }); + } if (isIOS && this.rid) { this.updateUnreadCount(); } @@ -254,6 +258,10 @@ class RoomView extends React.Component { this.jumpToMessage(route?.params?.jumpToMessageId); } + if (route?.params?.jumpToThreadId !== prevProps.route?.params?.jumpToThreadId) { + this.navToThread({ tmid: route?.params?.jumpToThreadId }); + } + if (appState === 'foreground' && appState !== prevProps.appState && this.rid) { // Fire List.query() just to keep observables working if (this.list && this.list.current) { @@ -872,7 +880,12 @@ class RoomView extends React.Component { if (item.tmid) { let name = item.tmsg; if (!name) { - name = await this.getThreadName(item.tmid, item.id); + const result = await this.getThreadName(item.tmid, item.id); + // test if there isn't a thread + if (!result) { + return; + } + name = result; } if (item.t === E2E_MESSAGE_TYPE && item.e2e !== E2E_STATUS.DONE) { name = I18n.t('Encrypted_message'); diff --git a/e2e/data.js b/e2e/data.js index 979be71c7..800239e76 100644 --- a/e2e/data.js +++ b/e2e/data.js @@ -44,6 +44,9 @@ const data = { }, alternate: { name: `detox-alternate-${value}` + }, + alternate2: { + name: `detox-alternate2-${value}` } }, teams: { diff --git a/e2e/data/data.docker.js b/e2e/data/data.docker.js index 104007ce2..e9804e91c 100644 --- a/e2e/data/data.docker.js +++ b/e2e/data/data.docker.js @@ -45,6 +45,9 @@ const data = { }, alternate: { name: `detox-alternate-${value}` + }, + alternate2: { + name: `detox-alternate2-${value}` } }, teams: { diff --git a/e2e/helpers/data_setup.js b/e2e/helpers/data_setup.js index 4c0f2d4e0..4b038e42e 100644 --- a/e2e/helpers/data_setup.js +++ b/e2e/helpers/data_setup.js @@ -116,11 +116,12 @@ const changeChannelJoinCode = async (roomId, joinCode) => { } }; -const sendMessage = async (user, channel, msg) => { +const sendMessage = async (user, channel, msg, tmid) => { console.log(`Sending message to ${channel}`); try { await login(user.username, user.password); - await rocketchat.post('chat.postMessage', { channel, msg }); + const response = await rocketchat.post('chat.postMessage', { channel, msg, tmid }); + return response.data; } catch (infoError) { console.log(JSON.stringify(infoError)); throw new Error('Failed to find or create private group'); diff --git a/e2e/tests/assorted/11-deeplinking.spec.js b/e2e/tests/assorted/11-deeplinking.spec.js index 27255be3c..135cd574e 100644 --- a/e2e/tests/assorted/11-deeplinking.spec.js +++ b/e2e/tests/assorted/11-deeplinking.spec.js @@ -1,6 +1,6 @@ const data = require('../../data'); const { tapBack, checkServer, navigateToRegister } = require('../../helpers/app'); -const { get, login } = require('../../helpers/data_setup'); +const { get, login, sendMessage } = require('../../helpers/data_setup'); const DEEPLINK_METHODS = { AUTH: 'auth', ROOM: 'room' }; const getDeepLink = (method, server, params) => { @@ -12,9 +12,15 @@ const getDeepLink = (method, server, params) => { describe('Deep linking', () => { let userId; let authToken; + let threadId; + const threadMessage = `to-thread-${data.random}`; before(async () => { const loginResult = await login(data.users.regular.username, data.users.regular.password); ({ userId, authToken } = loginResult); + // create a thread with api + const result = await sendMessage(data.users.regular, data.groups.alternate2.name, threadMessage); + threadId = result.message._id; + await sendMessage(data.users.regular, result.message.rid, data.random, threadId); }); describe('Authentication', () => { @@ -87,6 +93,18 @@ describe('Deep linking', () => { .withTimeout(10000); }); + it('should navigate to the thread using path', async () => { + await device.launchApp({ + permissions: { notifications: 'YES' }, + newInstance: true, + url: getDeepLink(DEEPLINK_METHODS.ROOM, data.server, `path=group/${data.groups.alternate2.name}/thread/${threadId}`), + sourceApp: 'com.apple.mobilesafari' + }); + await waitFor(element(by.id(`room-view-title-${threadMessage}`))) + .toExist() + .withTimeout(10000); + }); + it('should navigate to the room using rid', async () => { const roomResult = await get(`groups.info?roomName=${data.groups.private.name}`); await device.launchApp({ diff --git a/ios/Podfile b/ios/Podfile index fdc7c3ab9..83f91afbc 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -4,7 +4,6 @@ require_relative '../node_modules/@react-native-community/cli-platform-ios/nativ require_relative '../node_modules/react-native-unimodules/cocoapods.rb' def all_pods - pod 'WatermelonDB', :path => '../node_modules/@nozbe/watermelondb' pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi', :modular_headers => true pod 'simdjson', path: '../node_modules/@nozbe/simdjson' config = use_native_modules! diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 675a4027b..aaf432c41 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -945,7 +945,7 @@ SPEC CHECKSUMS: EXVideoThumbnails: 442c3abadb51a81551a3b53705b7560de390e6f7 EXWebBrowser: 76783ba5dcb8699237746ecf41a9643d428a4cc5 FBLazyVector: e686045572151edef46010a6f819ade377dfeb4b - FBReactNativeSpec: 110d69378fce79af38271c39894b59fec7890221 + FBReactNativeSpec: 686ac17e193dcf7d5df4d772b224504dd2f3ad81 Firebase: 919186c8e119dd9372a45fd1dd17a8a942bc1892 FirebaseAnalytics: 5fa308e1b13f838d0f6dc74719ac2a72e8c5afc4 FirebaseCore: 8cd4f8ea22075e0ee582849b1cf79d8816506085 @@ -1047,6 +1047,6 @@ SPEC CHECKSUMS: Yoga: 575c581c63e0d35c9a83f4b46d01d63abc1100ac YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: 46fb1ed324f44252f8900c63e7c93e4391658bad +PODFILE CHECKSUM: 9fd323641c96f6bf98b309066332c3ff95b9cf15 COCOAPODS: 1.10.1 diff --git a/ios/RocketChatRN.xcodeproj/project.pbxproj b/ios/RocketChatRN.xcodeproj/project.pbxproj index 4c54b0d3e..e7af4c7d3 100644 --- a/ios/RocketChatRN.xcodeproj/project.pbxproj +++ b/ios/RocketChatRN.xcodeproj/project.pbxproj @@ -80,8 +80,7 @@ 1EFEB5982493B6640072EDC0 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EFEB5972493B6640072EDC0 /* NotificationService.swift */; }; 1EFEB59C2493B6640072EDC0 /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1EFEB5952493B6640072EDC0 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 06BB44DD4855498082A744AD /* libz.tbd */; }; - 66AF0CC8FE18A9B0C6B3A3CA /* libPods-defaults-RocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FFD96B27BA4184219615DE18 /* libPods-defaults-RocketChatRN.a */; }; - 69E4354C5D935D5EE022A7E5 /* libPods-defaults-Rocket.Chat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 54CFE45F7A9BAAB898835DB0 /* libPods-defaults-Rocket.Chat.a */; }; + 29B785412B69F334BD7E6314 /* libPods-defaults-Rocket.Chat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8254958F7FAFC2744F0BEFA2 /* libPods-defaults-Rocket.Chat.a */; }; 7A006F14229C83B600803143 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7A006F13229C83B600803143 /* GoogleService-Info.plist */; }; 7A0D62D2242AB187006D5C06 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */; }; 7A14FCED257FEB3A005BDCD4 /* Experimental.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */; }; @@ -136,9 +135,10 @@ 7AAB3E49257E6A6E00707CF6 /* ShareRocketChatRN.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1EC6ACB022CB9FC300A41C61 /* ShareRocketChatRN.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 7AAB3E4A257E6A6E00707CF6 /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1EFEB5952493B6640072EDC0 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 7ACD4897222860DE00442C55 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7ACD4853222860DE00442C55 /* JavaScriptCore.framework */; }; - DC5529EC3B4695AC7319279F /* libPods-defaults-ShareRocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42EF13FCD0CA813CFABFE073 /* libPods-defaults-ShareRocketChatRN.a */; }; + 83F99820D542132F15E51371 /* libPods-defaults-RocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 88665EE8B2B6F34580EEF27D /* libPods-defaults-RocketChatRN.a */; }; + D62A2CEE91B92F16EAD2FA3F /* libPods-defaults-ShareRocketChatRN.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9747EA64783AAAD1486EC3CC /* libPods-defaults-ShareRocketChatRN.a */; }; + D85BF476A3215BD80F1C79E7 /* libPods-defaults-NotificationService.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EC5D50B36CB5F0E0126E19BE /* libPods-defaults-NotificationService.a */; }; DD2BA30A89E64F189C2C24AC /* libWatermelonDB.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BA7E862283664608B3894E34 /* libWatermelonDB.a */; }; - EDE8A8F63A3ADB93A6640F8E /* libPods-defaults-NotificationService.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B2C0164CCC5BED03F5A257E /* libPods-defaults-NotificationService.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -201,15 +201,15 @@ /* Begin PBXFileReference section */ 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; - 037C33B0D9A54FB4CB670FB7 /* Pods-ShareRocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShareRocketChatRN.release.xcconfig"; path = "Pods/Target Support Files/Pods-ShareRocketChatRN/Pods-ShareRocketChatRN.release.xcconfig"; sourceTree = ""; }; - 0383633C4523666C176CAA52 /* Pods-ShareRocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ShareRocketChatRN.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ShareRocketChatRN/Pods-ShareRocketChatRN.debug.xcconfig"; sourceTree = ""; }; 06BB44DD4855498082A744AD /* libz.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + 12291EB8ADD6DC12373463FD /* Pods-defaults-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.release.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.release.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* Rocket.Chat Experimental.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Rocket.Chat Experimental.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = RocketChatRN/AppDelegate.h; sourceTree = ""; }; 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = RocketChatRN/AppDelegate.m; sourceTree = ""; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RocketChatRN/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = RocketChatRN/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = RocketChatRN/main.m; sourceTree = ""; }; + 1A28A51C191812B6DE1F460B /* Pods-defaults-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.release.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; 1E01C81B2511208400FEF824 /* URL+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+Extensions.swift"; sourceTree = ""; }; 1E01C8202511301400FEF824 /* PushResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushResponse.swift; sourceTree = ""; }; 1E01C8242511303100FEF824 /* Notification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notification.swift; sourceTree = ""; }; @@ -256,18 +256,11 @@ 1EFEB5972493B6640072EDC0 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; 1EFEB5992493B6640072EDC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 1EFEB5A12493B67D0072EDC0 /* NotificationService.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NotificationService.entitlements; sourceTree = ""; }; - 2977818A2C0F18284F485E2B /* Pods-defaults-Rocket.Chat.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.release.xcconfig"; path = "Pods/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.release.xcconfig"; sourceTree = ""; }; - 298C921C910A1A2FD60068AE /* Pods-defaults-RocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.debug.xcconfig"; path = "Pods/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.debug.xcconfig"; sourceTree = ""; }; - 2B2C0164CCC5BED03F5A257E /* libPods-defaults-NotificationService.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-NotificationService.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3E39DC0E55DAF0C76229CDB1 /* Pods-RocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RocketChatRN.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RocketChatRN/Pods-RocketChatRN.debug.xcconfig"; sourceTree = ""; }; - 4046FBF676A7866DDD7F3D4D /* Pods-defaults-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.debug.xcconfig"; path = "Pods/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; - 42EF13FCD0CA813CFABFE073 /* libPods-defaults-ShareRocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-ShareRocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 4AD2A9CF2BF6DA3C0B8292A5 /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.debug.xcconfig"; path = "Pods/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.debug.xcconfig"; sourceTree = ""; }; - 4F207203734B8F5868BBE28D /* Pods-NotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.debug.xcconfig"; path = "Pods/Target Support Files/Pods-NotificationService/Pods-NotificationService.debug.xcconfig"; sourceTree = ""; }; - 54CFE45F7A9BAAB898835DB0 /* libPods-defaults-Rocket.Chat.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-Rocket.Chat.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1FD576942AB7B278424D7D91 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.release.xcconfig"; sourceTree = ""; }; + 295C2358EF89141BF3F047D4 /* Pods-defaults-RocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.release.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.release.xcconfig"; sourceTree = ""; }; + 3A8E0E87A40E71A91253A4B7 /* Pods-defaults-RocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.debug.xcconfig"; sourceTree = ""; }; 60B2A6A31FC4588700BD58E5 /* RocketChatRN.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = RocketChatRN.entitlements; path = RocketChatRN/RocketChatRN.entitlements; sourceTree = ""; }; - 655D972D9C9581ECA960A1A3 /* Pods-defaults-RocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-RocketChatRN.release.xcconfig"; path = "Pods/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN.release.xcconfig"; sourceTree = ""; }; - 761454CCD8F76AE5720EF9E8 /* Pods-defaults-NotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.debug.xcconfig"; path = "Pods/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.debug.xcconfig"; sourceTree = ""; }; + 67366E177712BF459EE04D2F /* Pods-defaults-Rocket.Chat.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-Rocket.Chat.debug.xcconfig"; path = "Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat.debug.xcconfig"; sourceTree = ""; }; 7A006F13229C83B600803143 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 7A0D62D1242AB187006D5C06 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; 7A14FCEC257FEB3A005BDCD4 /* Experimental.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Experimental.xcassets; sourceTree = ""; }; @@ -276,13 +269,14 @@ 7AAA749C23043B1D00F1ADE9 /* RocketChatRN-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RocketChatRN-Bridging-Header.h"; sourceTree = ""; }; 7AAB3E52257E6A6E00707CF6 /* Rocket.Chat.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Rocket.Chat.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7ACD4853222860DE00442C55 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - 9730F55A254AC78BC5361659 /* Pods-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-NotificationService.release.xcconfig"; path = "Pods/Target Support Files/Pods-NotificationService/Pods-NotificationService.release.xcconfig"; sourceTree = ""; }; + 8254958F7FAFC2744F0BEFA2 /* libPods-defaults-Rocket.Chat.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-Rocket.Chat.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 88665EE8B2B6F34580EEF27D /* libPods-defaults-RocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-RocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9747EA64783AAAD1486EC3CC /* libPods-defaults-ShareRocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-ShareRocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 977A37B323E7A8A7EC0B01EF /* Pods-defaults-NotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.debug.xcconfig"; path = "Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.debug.xcconfig"; sourceTree = ""; }; B37C79D9BD0742CE936B6982 /* libc++.tbd */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; + B9D2BCED708759575760AFDE /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.debug.xcconfig"; path = "Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.debug.xcconfig"; sourceTree = ""; }; BA7E862283664608B3894E34 /* libWatermelonDB.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libWatermelonDB.a; sourceTree = ""; }; - C2E54E960FF01DF65065578A /* Pods-defaults-ShareRocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-ShareRocketChatRN.release.xcconfig"; path = "Pods/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN.release.xcconfig"; sourceTree = ""; }; - CD6349B2FB77351DFCD655CF /* Pods-RocketChatRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RocketChatRN.release.xcconfig"; path = "Pods/Target Support Files/Pods-RocketChatRN/Pods-RocketChatRN.release.xcconfig"; sourceTree = ""; }; - E1E67FDDC7B11F12B06766A6 /* Pods-defaults-NotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-defaults-NotificationService.release.xcconfig"; path = "Pods/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService.release.xcconfig"; sourceTree = ""; }; - FFD96B27BA4184219615DE18 /* libPods-defaults-RocketChatRN.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-RocketChatRN.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + EC5D50B36CB5F0E0126E19BE /* libPods-defaults-NotificationService.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-defaults-NotificationService.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -303,7 +297,7 @@ 7ACD4897222860DE00442C55 /* JavaScriptCore.framework in Frameworks */, 24A2AEF2383D44B586D31C01 /* libz.tbd in Frameworks */, DD2BA30A89E64F189C2C24AC /* libWatermelonDB.a in Frameworks */, - 66AF0CC8FE18A9B0C6B3A3CA /* libPods-defaults-RocketChatRN.a in Frameworks */, + 83F99820D542132F15E51371 /* libPods-defaults-RocketChatRN.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -312,7 +306,7 @@ buildActionMask = 2147483647; files = ( 1E25743422CBA2CF005A877F /* JavaScriptCore.framework in Frameworks */, - DC5529EC3B4695AC7319279F /* libPods-defaults-ShareRocketChatRN.a in Frameworks */, + D62A2CEE91B92F16EAD2FA3F /* libPods-defaults-ShareRocketChatRN.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -320,7 +314,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - EDE8A8F63A3ADB93A6640F8E /* libPods-defaults-NotificationService.a in Frameworks */, + D85BF476A3215BD80F1C79E7 /* libPods-defaults-NotificationService.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -341,7 +335,7 @@ 7AAB3E3D257E6A6E00707CF6 /* JavaScriptCore.framework in Frameworks */, 7AAB3E3E257E6A6E00707CF6 /* libz.tbd in Frameworks */, 7AAB3E3F257E6A6E00707CF6 /* libWatermelonDB.a in Frameworks */, - 69E4354C5D935D5EE022A7E5 /* libPods-defaults-Rocket.Chat.a in Frameworks */, + 29B785412B69F334BD7E6314 /* libPods-defaults-Rocket.Chat.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -470,25 +464,20 @@ path = NotificationService; sourceTree = ""; }; - 22CA7F59107E0C79C2506C7C /* Pods */ = { + 7AC2B09613AA7C3FEBAC9F57 /* Pods */ = { isa = PBXGroup; children = ( - 0383633C4523666C176CAA52 /* Pods-ShareRocketChatRN.debug.xcconfig */, - 037C33B0D9A54FB4CB670FB7 /* Pods-ShareRocketChatRN.release.xcconfig */, - 4F207203734B8F5868BBE28D /* Pods-NotificationService.debug.xcconfig */, - 9730F55A254AC78BC5361659 /* Pods-NotificationService.release.xcconfig */, - 3E39DC0E55DAF0C76229CDB1 /* Pods-RocketChatRN.debug.xcconfig */, - CD6349B2FB77351DFCD655CF /* Pods-RocketChatRN.release.xcconfig */, - 4046FBF676A7866DDD7F3D4D /* Pods-defaults-Rocket.Chat.debug.xcconfig */, - 2977818A2C0F18284F485E2B /* Pods-defaults-Rocket.Chat.release.xcconfig */, - 298C921C910A1A2FD60068AE /* Pods-defaults-RocketChatRN.debug.xcconfig */, - 655D972D9C9581ECA960A1A3 /* Pods-defaults-RocketChatRN.release.xcconfig */, - 761454CCD8F76AE5720EF9E8 /* Pods-defaults-NotificationService.debug.xcconfig */, - E1E67FDDC7B11F12B06766A6 /* Pods-defaults-NotificationService.release.xcconfig */, - 4AD2A9CF2BF6DA3C0B8292A5 /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */, - C2E54E960FF01DF65065578A /* Pods-defaults-ShareRocketChatRN.release.xcconfig */, + 977A37B323E7A8A7EC0B01EF /* Pods-defaults-NotificationService.debug.xcconfig */, + 12291EB8ADD6DC12373463FD /* Pods-defaults-NotificationService.release.xcconfig */, + 67366E177712BF459EE04D2F /* Pods-defaults-Rocket.Chat.debug.xcconfig */, + 1A28A51C191812B6DE1F460B /* Pods-defaults-Rocket.Chat.release.xcconfig */, + 3A8E0E87A40E71A91253A4B7 /* Pods-defaults-RocketChatRN.debug.xcconfig */, + 295C2358EF89141BF3F047D4 /* Pods-defaults-RocketChatRN.release.xcconfig */, + B9D2BCED708759575760AFDE /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */, + 1FD576942AB7B278424D7D91 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */, ); name = Pods; + path = Pods; sourceTree = ""; }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { @@ -511,7 +500,7 @@ BB4B591B5FC44CD9986DB2A6 /* Frameworks */, AF5E16F0398347E6A80C8CBE /* Resources */, B8E79A681F3CCC69005B464F /* Recovered References */, - 22CA7F59107E0C79C2506C7C /* Pods */, + 7AC2B09613AA7C3FEBAC9F57 /* Pods */, ); indentWidth = 2; sourceTree = ""; @@ -559,10 +548,10 @@ 7ACD4853222860DE00442C55 /* JavaScriptCore.framework */, B37C79D9BD0742CE936B6982 /* libc++.tbd */, 06BB44DD4855498082A744AD /* libz.tbd */, - 54CFE45F7A9BAAB898835DB0 /* libPods-defaults-Rocket.Chat.a */, - FFD96B27BA4184219615DE18 /* libPods-defaults-RocketChatRN.a */, - 2B2C0164CCC5BED03F5A257E /* libPods-defaults-NotificationService.a */, - 42EF13FCD0CA813CFABFE073 /* libPods-defaults-ShareRocketChatRN.a */, + EC5D50B36CB5F0E0126E19BE /* libPods-defaults-NotificationService.a */, + 8254958F7FAFC2744F0BEFA2 /* libPods-defaults-Rocket.Chat.a */, + 88665EE8B2B6F34580EEF27D /* libPods-defaults-RocketChatRN.a */, + 9747EA64783AAAD1486EC3CC /* libPods-defaults-ShareRocketChatRN.a */, ); name = Frameworks; sourceTree = ""; @@ -574,17 +563,17 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "RocketChatRN" */; buildPhases = ( - FB4AC4FF76ACF097F2431C74 /* [CP] Check Pods Manifest.lock */, + 5C2E3808524C9A6F5C6A9750 /* [CP] Check Pods Manifest.lock */, 7AA5C63E23E30D110005C4A7 /* Start Packager */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - FD0EBB93B02BAD0637E4F286 /* [CP] Copy Pods Resources */, 1EC6ACF422CB9FC300A41C61 /* Embed App Extensions */, 1E1EA8082326CCE300E22452 /* ShellScript */, - 9558AC195A3506BB8472CE99 /* [CP] Embed Pods Frameworks */, 88055964DAAE45B1A4886C27 /* Upload source maps to Bugsnag */, + 65E8927EC9B95C6E8D689FDA /* [CP] Embed Pods Frameworks */, + 380AA10C91012B22C764EA14 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -601,12 +590,12 @@ isa = PBXNativeTarget; buildConfigurationList = 1EC6ACF322CB9FC300A41C61 /* Build configuration list for PBXNativeTarget "ShareRocketChatRN" */; buildPhases = ( - A68B7A0986AFB750F727793A /* [CP] Check Pods Manifest.lock */, + DC254D9A4F5CA2FB6530641A /* [CP] Check Pods Manifest.lock */, 1EC6ACAC22CB9FC300A41C61 /* Sources */, 1EC6ACAD22CB9FC300A41C61 /* Frameworks */, 1EC6ACAE22CB9FC300A41C61 /* Resources */, 1EFE4DC322CBF36300B766B7 /* ShellScript */, - 1984338E174B5F45674AD7A1 /* [CP] Copy Pods Resources */, + 970378E3115905D89C23B2A7 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -621,11 +610,11 @@ isa = PBXNativeTarget; buildConfigurationList = 1EFEB5A02493B6640072EDC0 /* Build configuration list for PBXNativeTarget "NotificationService" */; buildPhases = ( - 3C502B893433C21E52E88E8B /* [CP] Check Pods Manifest.lock */, + EBB49F0CFCF892BE1FD1886A /* [CP] Check Pods Manifest.lock */, 1EFEB5912493B6640072EDC0 /* Sources */, 1EFEB5922493B6640072EDC0 /* Frameworks */, 1EFEB5932493B6640072EDC0 /* Resources */, - 222BDC9959FFD7AAFFB578E7 /* [CP] Copy Pods Resources */, + E7EC11D0C238B71D7EA53598 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -640,7 +629,7 @@ isa = PBXNativeTarget; buildConfigurationList = 7AAB3E4F257E6A6E00707CF6 /* Build configuration list for PBXNativeTarget "Rocket.Chat" */; buildPhases = ( - 3995C2EE3AF3138E9AF58F1B /* [CP] Check Pods Manifest.lock */, + 66BA60EF0ADB5C1F3BD9CFFD /* [CP] Check Pods Manifest.lock */, 7AAB3E13257E6A6E00707CF6 /* Start Packager */, 7AAB3E14257E6A6E00707CF6 /* Sources */, 7AAB3E32257E6A6E00707CF6 /* Frameworks */, @@ -648,9 +637,9 @@ 7AAB3E46257E6A6E00707CF6 /* Bundle React Native code and images */, 7AAB3E48257E6A6E00707CF6 /* Embed App Extensions */, 7AAB3E4B257E6A6E00707CF6 /* ShellScript */, - ED0FD291560ADE19562D38A2 /* [CP] Embed Pods Frameworks */, - 6630EA9DDAD28E02D0764540 /* [CP] Copy Pods Resources */, 7A10288726B1D15200E47EF8 /* Upload source maps to Bugsnag */, + E581E5894D086FA8DC2E9F34 /* [CP] Embed Pods Frameworks */, + 3ECD9DAF59C3CE363BEE2BE3 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -796,60 +785,6 @@ shellPath = /bin/sh; shellScript = "export EXTRA_PACKAGER_ARGS=\"--sourcemap-output $TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; }; - 1984338E174B5F45674AD7A1 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", - "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 1E1EA8082326CCE300E22452 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -884,13 +819,13 @@ shellPath = /bin/sh; shellScript = "export EXTRA_PACKAGER_ARGS=\"--sourcemap-output $TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; }; - 222BDC9959FFD7AAFFB578E7 /* [CP] Copy Pods Resources */ = { + 380AA10C91012B22C764EA14 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh", + "${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh", "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", @@ -935,54 +870,10 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 3995C2EE3AF3138E9AF58F1B /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-defaults-Rocket.Chat-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 3C502B893433C21E52E88E8B /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-defaults-NotificationService-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 6630EA9DDAD28E02D0764540 /* [CP] Copy Pods Resources */ = { + 3ECD9DAF59C3CE363BEE2BE3 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1036,6 +927,74 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-resources.sh\"\n"; showEnvVarsInLog = 0; }; + 5C2E3808524C9A6F5C6A9750 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-defaults-RocketChatRN-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 65E8927EC9B95C6E8D689FDA /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-frameworks.sh", + "${PODS_ROOT}/hermes-engine/destroot/Library/Frameworks/iphoneos/hermes.framework", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDK/JitsiMeetSDK.framework/JitsiMeetSDK", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/WebRTC/WebRTC.framework/WebRTC", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 66BA60EF0ADB5C1F3BD9CFFD /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-defaults-Rocket.Chat-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; 7A10288726B1D15200E47EF8 /* Upload source maps to Bugsnag */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1135,101 +1094,13 @@ shellPath = /bin/sh; shellScript = "SOURCE_MAP=\"$TMPDIR/$(md5 -qs \"$CONFIGURATION_BUILD_DIR\")-main.jsbundle.map\" ../node_modules/@bugsnag/react-native/bugsnag-react-native-xcode.sh\n"; }; - 9558AC195A3506BB8472CE99 /* [CP] Embed Pods Frameworks */ = { + 970378E3115905D89C23B2A7 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-frameworks.sh", - "${PODS_ROOT}/hermes-engine/destroot/Library/Frameworks/iphoneos/hermes.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDK/JitsiMeetSDK.framework/JitsiMeetSDK", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/WebRTC/WebRTC.framework/WebRTC", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - A68B7A0986AFB750F727793A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-defaults-ShareRocketChatRN-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - ED0FD291560ADE19562D38A2 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh", - "${PODS_ROOT}/hermes-engine/destroot/Library/Frameworks/iphoneos/hermes.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDK/JitsiMeetSDK.framework/JitsiMeetSDK", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/WebRTC/WebRTC.framework/WebRTC", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - FB4AC4FF76ACF097F2431C74 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-defaults-RocketChatRN-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - FD0EBB93B02BAD0637E4F286 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh", + "${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh", "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", @@ -1274,7 +1145,129 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-RocketChatRN/Pods-defaults-RocketChatRN-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-ShareRocketChatRN/Pods-defaults-ShareRocketChatRN-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + DC254D9A4F5CA2FB6530641A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-defaults-ShareRocketChatRN-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + E581E5894D086FA8DC2E9F34 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh", + "${PODS_ROOT}/hermes-engine/destroot/Library/Frameworks/iphoneos/hermes.framework", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/JitsiMeetSDK/JitsiMeetSDK.framework/JitsiMeetSDK", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/WebRTC/WebRTC.framework/WebRTC", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JitsiMeetSDK.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebRTC.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-Rocket.Chat/Pods-defaults-Rocket.Chat-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + E7EC11D0C238B71D7EA53598 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Feather.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Brands.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Foundation.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", + "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EvilIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Feather.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Solid.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Fontisto.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Foundation.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Ionicons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialCommunityIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-defaults-NotificationService/Pods-defaults-NotificationService-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + EBB49F0CFCF892BE1FD1886A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-defaults-NotificationService-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -1430,7 +1423,7 @@ /* Begin XCBuildConfiguration section */ 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 298C921C910A1A2FD60068AE /* Pods-defaults-RocketChatRN.debug.xcconfig */; + baseConfigurationReference = 3A8E0E87A40E71A91253A4B7 /* Pods-defaults-RocketChatRN.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; APPLICATION_EXTENSION_API_ONLY = NO; @@ -1485,7 +1478,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 655D972D9C9581ECA960A1A3 /* Pods-defaults-RocketChatRN.release.xcconfig */; + baseConfigurationReference = 295C2358EF89141BF3F047D4 /* Pods-defaults-RocketChatRN.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; APPLICATION_EXTENSION_API_ONLY = NO; @@ -1538,7 +1531,7 @@ }; 1EC6ACBC22CB9FC300A41C61 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4AD2A9CF2BF6DA3C0B8292A5 /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */; + baseConfigurationReference = B9D2BCED708759575760AFDE /* Pods-defaults-ShareRocketChatRN.debug.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ANALYZER_NONNULL = YES; @@ -1605,7 +1598,7 @@ }; 1EC6ACBD22CB9FC300A41C61 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C2E54E960FF01DF65065578A /* Pods-defaults-ShareRocketChatRN.release.xcconfig */; + baseConfigurationReference = 1FD576942AB7B278424D7D91 /* Pods-defaults-ShareRocketChatRN.release.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; CLANG_ANALYZER_NONNULL = YES; @@ -1670,7 +1663,7 @@ }; 1EFEB59D2493B6640072EDC0 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 761454CCD8F76AE5720EF9E8 /* Pods-defaults-NotificationService.debug.xcconfig */; + baseConfigurationReference = 977A37B323E7A8A7EC0B01EF /* Pods-defaults-NotificationService.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -1706,7 +1699,7 @@ }; 1EFEB59E2493B6640072EDC0 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E1E67FDDC7B11F12B06766A6 /* Pods-defaults-NotificationService.release.xcconfig */; + baseConfigurationReference = 12291EB8ADD6DC12373463FD /* Pods-defaults-NotificationService.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -1741,7 +1734,7 @@ }; 7AAB3E50257E6A6E00707CF6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4046FBF676A7866DDD7F3D4D /* Pods-defaults-Rocket.Chat.debug.xcconfig */; + baseConfigurationReference = 67366E177712BF459EE04D2F /* Pods-defaults-Rocket.Chat.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; APPLICATION_EXTENSION_API_ONLY = NO; @@ -1794,7 +1787,7 @@ }; 7AAB3E51257E6A6E00707CF6 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2977818A2C0F18284F485E2B /* Pods-defaults-Rocket.Chat.release.xcconfig */; + baseConfigurationReference = 1A28A51C191812B6DE1F460B /* Pods-defaults-Rocket.Chat.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; APPLICATION_EXTENSION_API_ONLY = NO; diff --git a/storybook/stories/Markdown.js b/storybook/stories/Markdown.js index 4f4cb2955..c00aaa78c 100644 --- a/storybook/stories/Markdown.js +++ b/storybook/stories/Markdown.js @@ -80,6 +80,24 @@ stories.add('Preview', () => ( username='rocket.cat' /> + )); diff --git a/storybook/stories/NewMarkdown.js b/storybook/stories/NewMarkdown.js index 17684bb91..e6d6be320 100644 --- a/storybook/stories/NewMarkdown.js +++ b/storybook/stories/NewMarkdown.js @@ -5,6 +5,7 @@ import { storiesOf } from '@storybook/react-native'; import NewMarkdown from '../../app/containers/markdown/new'; import { themes } from '../../app/constants/colors'; +import { longText } from '../utils'; const stories = storiesOf('NewMarkdown', module); @@ -49,8 +50,7 @@ const longTextMsg = [ value: [ { type: 'PLAIN_TEXT', - value: - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' + value: longText } ] } @@ -108,43 +108,13 @@ const sequentialEmptySpacesMsg = [ } ]; -const boldOrUnderscoreMsg = [ - { - type: 'PARAGRAPH', - value: [ - { - type: 'BOLD', - value: [ - { - type: 'PLAIN_TEXT', - value: 'This is bold' - } - ] - }, - { - type: 'PLAIN_TEXT', - value: ' and ' - }, - { - type: 'ITALIC', - value: [ - { - type: 'PLAIN_TEXT', - value: 'this is italic' - } - ] - } - ] - } -]; - stories.add('Text', () => ( - + )); @@ -375,6 +345,20 @@ const blockQuoteTokens = [ ] } ] + }, + { + type: 'QUOTE', + value: [ + { + type: 'PARAGRAPH', + value: [ + { + type: 'PLAIN_TEXT', + value: longText + } + ] + } + ] } ]; @@ -546,14 +530,7 @@ const multilineCodeToken = [ type: 'CODE_LINE', value: { type: 'PLAIN_TEXT', - value: 'Multi line ' - } - }, - { - type: 'CODE_LINE', - value: { - type: 'PLAIN_TEXT', - value: 'Code' + value: 'Multi \nLine \nCode' } } ] @@ -567,53 +544,141 @@ stories.add('Code', () => ( )); +const items = [ + [ + { + type: 'PLAIN_TEXT', + value: 'Plain text ' + }, + { + type: 'EMOJI', + value: { + type: 'PLAIN_TEXT', + value: 'bulb' + } + }, + { + type: 'ITALIC', + value: [ + { + type: 'PLAIN_TEXT', + value: ' italic ' + } + ] + }, + { + type: 'BOLD', + value: [ + { + type: 'PLAIN_TEXT', + value: ' bold ' + } + ] + }, + { + type: 'STRIKE', + value: [ + { + type: 'PLAIN_TEXT', + value: ' strike ' + } + ] + }, + { + type: 'MENTION_CHANNEL', + value: { + type: 'PLAIN_TEXT', + value: 'general' + } + }, + { + type: 'LINK', + value: { + src: { + type: 'PLAIN_TEXT', + value: 'https://google.com' + }, + label: { + type: 'PLAIN_TEXT', + value: ' link ' + } + } + }, + { + type: 'MENTION_USER', + value: { + type: 'PLAIN_TEXT', + value: 'rocket.cat' + } + }, + { + type: 'INLINE_CODE', + value: { + type: 'PLAIN_TEXT', + value: ' inline code' + } + } + ], + [ + { + type: 'PLAIN_TEXT', + value: longText + } + ] +]; + +const listItems = [ + { + type: 'LIST_ITEM', + value: items[0] + }, + { + type: 'LIST_ITEM', + value: items[1] + } +]; + const unorederedListToken = [ { type: 'UNORDERED_LIST', - value: [ - { - type: 'LIST_ITEM', - value: [ - { - type: 'PLAIN_TEXT', - value: 'Open Source' - } - ] - }, - { - type: 'LIST_ITEM', - value: [ - { - type: 'PLAIN_TEXT', - value: 'Rocket.Chat' - } - ] - } - ] + value: listItems } ]; const orderedListToken = [ { type: 'ORDERED_LIST', + value: listItems + } +]; + +const listMentions = [ + { + _id: 'rocket.cat', + username: 'rocket.cat' + } +]; + +const listChannels = [ + { + _id: 'general', + name: 'general' + } +]; + +const tasks = [ + { + type: 'TASKS', value: [ { - type: 'LIST_ITEM', - value: [ - { - type: 'PLAIN_TEXT', - value: 'Open Source' - } - ] + type: 'TASK', + status: true, + value: items[0] }, { - type: 'LIST_ITEM', - value: [ - { - type: 'PLAIN_TEXT', - value: 'Rocket.Chat' - } - ] + type: 'TASK', + status: false, + value: items[1] } ] } @@ -621,7 +686,8 @@ const orderedListToken = [ stories.add('Lists', () => ( - - + + + ));