diff --git a/src/components/EmptyStateComponent/index.tsx b/src/components/EmptyStateComponent/index.tsx index 5bd82115fbcd..807ce31b157c 100644 --- a/src/components/EmptyStateComponent/index.tsx +++ b/src/components/EmptyStateComponent/index.tsx @@ -9,6 +9,8 @@ import Text from '@components/Text'; import VideoPlayer from '@components/VideoPlayer'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; +import {containsCustomEmoji, containsOnlyCustomEmoji} from '@libs/EmojiUtils'; +import TextWithEmojiFragment from '@pages/home/report/comment/TextWithEmojiFragment'; import CONST from '@src/CONST'; import type {EmptyStateComponentProps, VideoLoadedEventType} from './types'; @@ -35,6 +37,7 @@ function EmptyStateComponent({ const styles = useThemeStyles(); const [videoAspectRatio, setVideoAspectRatio] = useState(VIDEO_ASPECT_RATIO); const {shouldUseNarrowLayout} = useResponsiveLayout(); + const doesSubtitleContainCustomEmojiAndMore = containsCustomEmoji(subtitle ?? '') && !containsOnlyCustomEmoji(subtitle ?? ''); const setAspectRatio = (event: VideoReadyForDisplayEvent | VideoLoadedEventType | undefined) => { if (!event) { @@ -100,7 +103,15 @@ function EmptyStateComponent({ {HeaderComponent} {title} - {subtitleText ?? {subtitle}} + {subtitleText ?? + (doesSubtitleContainCustomEmojiAndMore ? ( + + ) : ( + {subtitle} + ))} {children} {!isEmpty(buttons) && ( diff --git a/src/components/ReportWelcomeText.tsx b/src/components/ReportWelcomeText.tsx index 614069958ed5..0f238a4c0888 100644 --- a/src/components/ReportWelcomeText.tsx +++ b/src/components/ReportWelcomeText.tsx @@ -23,6 +23,7 @@ import { temporary_getMoneyRequestOptions, } from '@libs/ReportUtils'; import SidebarUtils from '@libs/SidebarUtils'; +import TextWithEmojiFragment from '@pages/home/report/comment/TextWithEmojiFragment'; import CONST from '@src/CONST'; import type {IOUType} from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -131,7 +132,7 @@ function ReportWelcomeText({report, policy}: ReportWelcomeTextProps) { {isSelfDM && ( {welcomeMessage.messageText} - {shouldShowUsePlusButtonText && {translate('reportActionsView.usePlusButton', {additionalText})}} + {shouldShowUsePlusButtonText && } )} {isSystemChat && ( @@ -163,7 +164,7 @@ function ReportWelcomeText({report, policy}: ReportWelcomeTextProps) { {index < displayNamesWithTooltips.length - 2 && , } ))} - {shouldShowUsePlusButtonText && {translate('reportActionsView.usePlusButton', {additionalText})}} + {shouldShowUsePlusButtonText && } {isConciergeChatReport(report) && {translate('reportActionsView.askConcierge')}} )} diff --git a/src/languages/de.ts b/src/languages/de.ts index 56ed4f729caa..f9f322a11549 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -874,17 +874,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `Dieser Chatraum ist für alles, was mit ${reportName} zu tun hat.`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `Dieser Chat ist für Rechnungen zwischen ${invoicePayer} und ${invoiceReceiver}. Verwenden Sie die Schaltfläche +, um eine Rechnung zu senden.`, + `Dieser Chat ist für Rechnungen zwischen ${invoicePayer} und ${invoiceReceiver}. Verwenden Sie die Schaltfläche ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}, um eine Rechnung zu senden.`, beginningOfChatHistory: 'Dieser Chat ist mit', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `Hier wird ${submitterDisplayName} die Ausgaben an ${workspaceName} übermitteln. Verwenden Sie einfach die Schaltfläche +.`, + `Hier wird ${submitterDisplayName} die Ausgaben an ${workspaceName} übermitteln. Verwenden Sie einfach die Schaltfläche ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, beginningOfChatHistorySelfDM: 'Dies ist Ihr persönlicher Bereich. Nutzen Sie ihn für Notizen, Aufgaben, Entwürfe und Erinnerungen.', beginningOfChatHistorySystemDM: 'Willkommen! Lassen Sie uns mit der Einrichtung beginnen.', chatWithAccountManager: 'Hier mit Ihrem Kundenbetreuer chatten', sayHello: 'Hallo!', yourSpace: 'Ihr Bereich', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `Willkommen in ${roomName}!`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => `Verwenden Sie die + Taste, um ${additionalText} einen Ausgabenposten hinzuzufügen.`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Verwenden Sie die ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} Taste, um ${additionalText} einen Ausgabenposten hinzuzufügen.`, askConcierge: 'Stellen Sie Fragen und erhalten Sie rund um die Uhr Unterstützung in Echtzeit.', conciergeSupport: '24/7 Support', create: 'erstellen', @@ -6043,7 +6043,7 @@ const translations = { searchResults: { emptyResults: { title: 'Nichts zu zeigen', - subtitle: 'Versuchen Sie, Ihre Suchkriterien anzupassen oder etwas mit dem grünen + Button zu erstellen.', + subtitle: `Versuchen Sie, Ihre Suchkriterien anzupassen oder etwas mit dem grünen ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} Button zu erstellen.`, }, emptyExpenseResults: { title: 'Sie haben noch keine Ausgaben erstellt.', diff --git a/src/languages/en.ts b/src/languages/en.ts index cec1db1cabad..e4fb56069cb9 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -864,17 +864,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `This chat room is for anything ${reportName} related.`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `This chat is for invoices between ${invoicePayer} and ${invoiceReceiver}. Use the + button to send an invoice.`, + `This chat is for invoices between ${invoicePayer} and ${invoiceReceiver}. Use the ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} button to send an invoice.`, beginningOfChatHistory: 'This chat is with ', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `This is where ${submitterDisplayName} will submit expenses to ${workspaceName}. Just use the + button.`, + `This is where ${submitterDisplayName} will submit expenses to ${workspaceName}. Just use the ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} button.`, beginningOfChatHistorySelfDM: 'This is your personal space. Use it for notes, tasks, drafts, and reminders.', beginningOfChatHistorySystemDM: "Welcome! Let's get you set up.", chatWithAccountManager: 'Chat with your account manager here', sayHello: 'Say hello!', yourSpace: 'Your space', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `Welcome to ${roomName}!`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Use the + button to ${additionalText} an expense.`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Use the ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} button to ${additionalText} an expense.`, askConcierge: ' Ask questions and get 24/7 realtime support.', conciergeSupport: '24/7 support', create: 'create', @@ -6017,7 +6017,7 @@ const translations = { searchResults: { emptyResults: { title: 'Nothing to show', - subtitle: 'Try adjusting your search criteria or creating something with the green + button.', + subtitle: `Try adjusting your search criteria or creating something with the green ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} button.`, }, emptyExpenseResults: { title: "You haven't created any expenses yet", diff --git a/src/languages/es.ts b/src/languages/es.ts index 4fb05c9fc147..2affe21f61e9 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -856,17 +856,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `Esta sala de chat es para cualquier cosa relacionada con ${reportName}.`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `Este chat es para facturas entre ${invoicePayer} y ${invoiceReceiver}. Usa el botón + para enviar una factura.`, + `Este chat es para facturas entre ${invoicePayer} y ${invoiceReceiver}. Usa el botón ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} para enviar una factura.`, beginningOfChatHistory: 'Este chat es con ', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `Aquí es donde ${submitterDisplayName} enviará los gastos al espacio de trabajo ${workspaceName}. Solo usa el botón +.`, + `Aquí es donde ${submitterDisplayName} enviará los gastos al espacio de trabajo ${workspaceName}. Solo usa el botón ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, beginningOfChatHistorySelfDM: 'Este es tu espacio personal. Úsalo para notas, tareas, borradores y recordatorios.', beginningOfChatHistorySystemDM: '¡Bienvenido! Vamos a configurar tu cuenta.', chatWithAccountManager: 'Chatea con tu gestor de cuenta aquí', sayHello: '¡Saluda!', yourSpace: 'Tu espacio', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `¡Bienvenido a ${roomName}!`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Usa el botón + para ${additionalText} un gasto`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Usa el botón ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} para ${additionalText} un gasto`, askConcierge: ' Haz preguntas y obtén soporte en tiempo real las 24/7.', conciergeSupport: 'Soporte 24/7', create: 'crear', @@ -6038,7 +6038,7 @@ const translations = { searchResults: { emptyResults: { title: 'No hay nada que ver aquí', - subtitle: 'Intenta ajustar tus criterios de búsqueda o crear algo con el botón verde +.', + subtitle: `Intenta ajustar tus criterios de búsqueda o crear algo con el botón verde ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, }, emptyExpenseResults: { title: 'Aún no has creado ningún gasto', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index aedd8d5e8298..30806dbc97f2 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -877,17 +877,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `Ce salon de discussion est destiné à tout ce qui concerne ${reportName}.`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `Ce chat concerne les factures entre ${invoicePayer} et ${invoiceReceiver}. Utilisez le bouton + pour envoyer une facture.`, + `Ce chat concerne les factures entre ${invoicePayer} et ${invoiceReceiver}. Utilisez le bouton ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} pour envoyer une facture.`, beginningOfChatHistory: 'Ce chat est avec', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `C'est ici que ${submitterDisplayName} soumettra ses dépenses à ${workspaceName}. Il suffit d'utiliser le bouton +.`, + `C'est ici que ${submitterDisplayName} soumettra ses dépenses à ${workspaceName}. Il suffit d'utiliser le bouton ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, beginningOfChatHistorySelfDM: "C'est votre espace personnel. Utilisez-le pour des notes, des tâches, des brouillons et des rappels.", beginningOfChatHistorySystemDM: 'Bienvenue ! Commençons votre configuration.', chatWithAccountManager: 'Discutez avec votre gestionnaire de compte ici', sayHello: 'Dites bonjour !', yourSpace: 'Votre espace', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `Bienvenue dans ${roomName} !`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => `Utilisez le bouton + pour ${additionalText} une dépense.`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Utilisez le bouton ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} pour ${additionalText} une dépense.`, askConcierge: 'Posez des questions et obtenez une assistance en temps réel 24h/24 et 7j/7.', conciergeSupport: 'Support 24h/24 et 7j/7', create: 'créer', @@ -6057,7 +6057,7 @@ const translations = { searchResults: { emptyResults: { title: 'Rien à afficher', - subtitle: "Essayez d'ajuster vos critères de recherche ou de créer quelque chose avec le bouton vert +.", + subtitle: `Essayez d'ajuster vos critères de recherche ou de créer quelque chose avec le bouton vert ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, }, emptyExpenseResults: { title: "Vous n'avez pas encore créé de dépenses.", diff --git a/src/languages/it.ts b/src/languages/it.ts index c55c92fb7404..1d1e4e6e7f63 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -873,17 +873,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `Questa chat è per tutto ciò che riguarda ${reportName}.`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `Questa chat è per le fatture tra ${invoicePayer} e ${invoiceReceiver}. Utilizzare il pulsante + per inviare una fattura.`, + `Questa chat è per le fatture tra ${invoicePayer} e ${invoiceReceiver}. Utilizzare il pulsante ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} per inviare una fattura.`, beginningOfChatHistory: 'Questa chat è con', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `È qui che ${submitterDisplayName} presenterà le spese a ${workspaceName}. Basta usare il pulsante +.`, + `È qui che ${submitterDisplayName} presenterà le spese a ${workspaceName}. Basta usare il pulsante ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, beginningOfChatHistorySelfDM: 'Questo è il tuo spazio personale. Usalo per appunti, compiti, bozze e promemoria.', beginningOfChatHistorySystemDM: 'Benvenuto! Iniziamo con la configurazione.', chatWithAccountManager: 'Chatta con il tuo account manager qui', sayHello: 'Ciao!', yourSpace: 'Il tuo spazio', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `Benvenuto in ${roomName}!`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => `Usa il pulsante + per ${additionalText} una spesa.`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Usa il pulsante ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} per ${additionalText} una spesa.`, askConcierge: 'Fai domande e ricevi supporto in tempo reale 24/7.', conciergeSupport: 'Supporto 24/7', create: 'creare', @@ -6058,7 +6058,7 @@ const translations = { searchResults: { emptyResults: { title: 'Niente da mostrare', - subtitle: 'Prova a modificare i criteri di ricerca o a creare qualcosa con il pulsante verde +.', + subtitle: `Prova a modificare i criteri di ricerca o a creare qualcosa con il pulsante verde ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, }, emptyExpenseResults: { title: 'Non hai ancora creato nessuna spesa.', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 8ccffd5cb594..9bdc5a6933a1 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -874,17 +874,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `このチャットルームは、${reportName}に関することなら何でもどうぞ。`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `このチャットは、${invoicePayer}${invoiceReceiver}間の請求書用です。請求書を送信するには、+ボタンを使用してください。`, + `このチャットは、${invoicePayer}${invoiceReceiver}間の請求書用です。請求書を送信するには、${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} ボタンを使用してください。`, beginningOfChatHistory: 'このチャットは', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `ここで${submitterDisplayName}${workspaceName}に経費を提出します。ボタンをクリックしてください。`, + `ここで${submitterDisplayName}${workspaceName}に経費を提出します。${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}ボタンをクリックしてください。`, beginningOfChatHistorySelfDM: 'これはあなたの個人スペースです。メモ、タスク、下書き、リマインダーに使用してください。', beginningOfChatHistorySystemDM: 'ようこそ!セットアップを始めましょう。', chatWithAccountManager: 'こちらでアカウントマネージャーとチャットしてください', sayHello: 'こんにちは!', yourSpace: 'あなたのスペース', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `${roomName}へようこそ!`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => `+ ボタンを使用して経費を${additionalText}します。`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} ボタンを使用して経費を${additionalText}します。`, askConcierge: '質問をして、24時間365日リアルタイムサポートを受けましょう。', conciergeSupport: '24時間年中無休サポート', create: '作成する', @@ -6015,7 +6015,7 @@ const translations = { searchResults: { emptyResults: { title: '表示するものがありません', - subtitle: '検索条件を調整するか、緑色の+ボタンで何かを作成してみてください。', + subtitle: `検索条件を調整するか、緑色の${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}ボタンで何かを作成してみてください。`, }, emptyExpenseResults: { title: 'まだ経費が作成されていません。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 1c993f6b8a1b..ce78d2b8837a 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -873,17 +873,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `Deze chatroom is voor alles wat met ${reportName} te maken heeft.`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `Deze chat is voor facturen tussen ${invoicePayer} en ${invoiceReceiver}. Gebruik de + knop om een factuur te sturen.`, + `Deze chat is voor facturen tussen ${invoicePayer} en ${invoiceReceiver}. Gebruik de ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} knop om een factuur te sturen.`, beginningOfChatHistory: 'Deze chat is met', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `Dit is waar ${submitterDisplayName} kosten zal indienen bij ${workspaceName}. Gebruik gewoon de + knop.`, + `Dit is waar ${submitterDisplayName} kosten zal indienen bij ${workspaceName}. Gebruik gewoon de ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} knop.`, beginningOfChatHistorySelfDM: 'Dit is je persoonlijke ruimte. Gebruik het voor notities, taken, concepten en herinneringen.', beginningOfChatHistorySystemDM: 'Welkom! Laten we je instellen.', chatWithAccountManager: 'Chat hier met uw accountmanager', sayHello: 'Zeg hallo!', yourSpace: 'Uw ruimte', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `Welkom bij ${roomName}!`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => `Gebruik de + knop om een uitgave te ${additionalText}.`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Gebruik de ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} knop om een uitgave te ${additionalText}.`, askConcierge: 'Stel vragen en krijg 24/7 realtime ondersteuning.', conciergeSupport: '24/7 ondersteuning', create: 'maken', @@ -6050,7 +6050,7 @@ const translations = { searchResults: { emptyResults: { title: 'Niets om te laten zien', - subtitle: 'Probeer je zoekcriteria aan te passen of iets te maken met de groene + knop.', + subtitle: `Probeer je zoekcriteria aan te passen of iets te maken met de groene ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} knop.`, }, emptyExpenseResults: { title: 'Je hebt nog geen uitgaven gemaakt.', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index e9596b46616d..ba71c97c77b9 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -873,17 +873,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `Ten czat jest przeznaczony do wszystkiego, co związane z ${reportName}.`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `Ten czat służy do wystawiania faktur między ${invoicePayer} i ${invoiceReceiver}. Użyj przycisku +, aby wysłać fakturę.`, + `Ten czat służy do wystawiania faktur między ${invoicePayer} i ${invoiceReceiver}. Użyj przycisku ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}, aby wysłać fakturę.`, beginningOfChatHistory: 'Ta rozmowa jest z', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `W tym miejscu ${submitterDisplayName} będzie przesyłać wydatki do ${workspaceName}. Wystarczy użyć przycisku +.`, + `W tym miejscu ${submitterDisplayName} będzie przesyłać wydatki do ${workspaceName}. Wystarczy użyć przycisku ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, beginningOfChatHistorySelfDM: 'To jest Twoja przestrzeń osobista. Używaj jej do notatek, zadań, szkiców i przypomnień.', beginningOfChatHistorySystemDM: 'Witamy! Zacznijmy konfigurację.', chatWithAccountManager: 'Czat z Twoim opiekunem konta tutaj', sayHello: 'Powiedz cześć!', yourSpace: 'Twoja przestrzeń', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `Witamy w ${roomName}!`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => `Użyj przycisku +, aby ${additionalText} wydatek.`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Użyj przycisku ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}, aby ${additionalText} wydatek.`, askConcierge: 'Zadawaj pytania i otrzymuj wsparcie w czasie rzeczywistym 24/7.', conciergeSupport: 'Całodobowe wsparcie', create: 'utwórz', @@ -6036,7 +6036,7 @@ const translations = { searchResults: { emptyResults: { title: 'Brak danych do wyświetlenia', - subtitle: 'Spróbuj dostosować kryteria wyszukiwania lub utwórz coś za pomocą zielonego przycisku +.', + subtitle: `Spróbuj dostosować kryteria wyszukiwania lub utwórz coś za pomocą zielonego przycisku ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, }, emptyExpenseResults: { title: 'Nie utworzyłeś jeszcze żadnych wydatków.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index da6c10e32482..30615b8c8dc7 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -874,17 +874,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `Esta sala de bate-papo é para qualquer coisa relacionada ao ${reportName}.`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `Este bate-papo é para faturas entre ${invoicePayer} e a ${invoiceReceiver}. Use o botão + para enviar uma fatura.`, + `Este bate-papo é para faturas entre ${invoicePayer} e a ${invoiceReceiver}. Use o botão ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} para enviar uma fatura.`, beginningOfChatHistory: 'Este chat é com', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `É aqui que ${submitterDisplayName} enviará as despesas para a ${workspaceName}. Basta usar o botão +.`, + `É aqui que ${submitterDisplayName} enviará as despesas para a ${workspaceName}. Basta usar o botão ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, beginningOfChatHistorySelfDM: 'Este é o seu espaço pessoal. Use-o para anotações, tarefas, rascunhos e lembretes.', beginningOfChatHistorySystemDM: 'Bem-vindo! Vamos configurá-lo.', chatWithAccountManager: 'Converse com o seu gerente de conta aqui', sayHello: 'Diga olá!', yourSpace: 'Seu espaço', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `Bem-vindo(a) ao ${roomName}!`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => `Use o botão + para ${additionalText} uma despesa.`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` Use o botão ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} para ${additionalText} uma despesa.`, askConcierge: 'Faça perguntas e receba suporte em tempo real 24/7.', conciergeSupport: 'Suporte 24/7', create: 'criar', @@ -6051,7 +6051,7 @@ const translations = { searchResults: { emptyResults: { title: 'Nada para mostrar', - subtitle: 'Tente ajustar seus critérios de busca ou criar algo com o botão verde +.', + subtitle: `Tente ajustar seus critérios de busca ou criar algo com o botão verde ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE}.`, }, emptyExpenseResults: { title: 'Você ainda não criou nenhuma despesa ainda', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 91598a0c15a5..625d33995638 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -872,17 +872,17 @@ const translations = { beginningOfChatHistoryUserRoom: ({reportName, reportDetailsLink}: BeginningOfChatHistoryUserRoomParams) => `本聊天室用于与 ${reportName} 有关的任何内容。`, beginningOfChatHistoryInvoiceRoom: ({invoicePayer, invoiceReceiver}: BeginningOfChatHistoryInvoiceRoomParams) => - `该聊天用于 ${invoicePayer}${invoiceReceiver} 之间的发票。使用 + 按钮发送发票。`, + `该聊天用于 ${invoicePayer}${invoiceReceiver} 之间的发票。使用 ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} 按钮发送发票。`, beginningOfChatHistory: '此聊天是与', beginningOfChatHistoryPolicyExpenseChat: ({workspaceName, submitterDisplayName}: BeginningOfChatHistoryPolicyExpenseChatParams) => - `这是${submitterDisplayName}${workspaceName} 提交费用的地方。使用 + 按钮即可。`, + `这是${submitterDisplayName}${workspaceName} 提交费用的地方。使用 ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} 按钮即可。`, beginningOfChatHistorySelfDM: '这是您的个人空间。用于记录笔记、任务、草稿和提醒。', beginningOfChatHistorySystemDM: '欢迎!让我们为您进行设置。', chatWithAccountManager: '在这里与您的客户经理聊天', sayHello: '说你好!', yourSpace: '您的空间', welcomeToRoom: ({roomName}: WelcomeToRoomParams) => `欢迎来到${roomName}!`, - usePlusButton: ({additionalText}: UsePlusButtonParams) => `使用 + 按钮${additionalText}一笔费用。`, + usePlusButton: ({additionalText}: UsePlusButtonParams) => ` 使用 ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} 按钮${additionalText}一笔费用。`, askConcierge: '随时提问并获得全天候实时支持。', conciergeSupport: '24/7 支持', create: '创建', @@ -5933,7 +5933,7 @@ const translations = { searchResults: { emptyResults: { title: '无内容显示', - subtitle: '尝试调整您的搜索条件或使用绿色的 + 按钮创建内容。', + subtitle: `尝试调整您的搜索条件或使用绿色的 ${CONST.CUSTOM_EMOJIS.GLOBAL_CREATE} 按钮创建内容。`, }, emptyExpenseResults: { title: '您还没有创建任何费用', diff --git a/src/pages/home/report/comment/TextCommentFragment.tsx b/src/pages/home/report/comment/TextCommentFragment.tsx index 8453e0d07afa..e86c13d8f037 100644 --- a/src/pages/home/report/comment/TextCommentFragment.tsx +++ b/src/pages/home/report/comment/TextCommentFragment.tsx @@ -10,7 +10,7 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import convertToLTR from '@libs/convertToLTR'; import {canUseTouchScreen} from '@libs/DeviceCapabilities'; -import {containsOnlyCustomEmoji as containsOnlyCustomEmojiUtil, containsOnlyEmojis as containsOnlyEmojisUtil, splitTextWithEmojis} from '@libs/EmojiUtils'; +import {containsCustomEmoji, containsOnlyCustomEmoji as containsOnlyCustomEmojiUtil, containsOnlyEmojis as containsOnlyEmojisUtil, splitTextWithEmojis} from '@libs/EmojiUtils'; import Parser from '@libs/Parser'; import Performance from '@libs/Performance'; import {getHtmlWithAttachmentID, getTextFromHtml} from '@libs/ReportActionsUtils'; @@ -72,7 +72,7 @@ function TextCommentFragment({fragment, styleAsDeleted, reportActionID, styleAsM const containsOnlyEmojis = containsOnlyEmojisUtil(text ?? ''); const containsOnlyCustomEmoji = useMemo(() => containsOnlyCustomEmojiUtil(text), [text]); const containsEmojis = CONST.REGEX.ALL_EMOJIS.test(text ?? ''); - if (!shouldRenderAsText(html, text ?? '') && !(containsOnlyEmojis && styleAsDeleted)) { + if (!shouldRenderAsText(html, text ?? '') && !(containsOnlyEmojis && styleAsDeleted) && (containsOnlyEmojis || !containsCustomEmoji(text))) { const editedTag = fragment?.isEdited ? `` : ''; const htmlWithDeletedTag = styleAsDeleted ? `${html}` : html; diff --git a/src/pages/home/report/comment/TextWithEmojiFragment/index.ios.tsx b/src/pages/home/report/comment/TextWithEmojiFragment/index.ios.tsx index b4942ab2274b..bd201fc8d6fc 100644 --- a/src/pages/home/report/comment/TextWithEmojiFragment/index.ios.tsx +++ b/src/pages/home/report/comment/TextWithEmojiFragment/index.ios.tsx @@ -3,27 +3,41 @@ import {View} from 'react-native'; import Text from '@components/Text'; import useThemeStyles from '@hooks/useThemeStyles'; import convertToLTR from '@libs/convertToLTR'; -import {containsCustomEmoji, splitTextWithEmojis} from '@libs/EmojiUtils'; +import {containsCustomEmoji, containsOnlyCustomEmoji, splitTextWithEmojis} from '@libs/EmojiUtils'; import type TextWithEmojiFragmentProps from './types'; -function TextWithEmojiFragment({message = '', style}: TextWithEmojiFragmentProps) { +function TextWithEmojiFragment({message = '', style, alignCustomEmoji = false}: TextWithEmojiFragmentProps) { const styles = useThemeStyles(); const processedTextArray = useMemo(() => splitTextWithEmojis(message), [message]); return ( - {processedTextArray.map(({text, isEmoji}, index) => - isEmoji ? ( - - {text} - - ) : ( - convertToLTR(text) - ), - )} + {processedTextArray.map(({text, isEmoji}, index) => { + if (isEmoji) { + if (!alignCustomEmoji) { + return ( + + {text} + + ); + } + if (containsOnlyCustomEmoji(text)) { + return ( + + {text} + + ); + } + } + return convertToLTR(text); + })} ); } diff --git a/src/pages/home/report/comment/TextWithEmojiFragment/types.ts b/src/pages/home/report/comment/TextWithEmojiFragment/types.ts index 7e9452e44497..b4d0c01f3c65 100644 --- a/src/pages/home/report/comment/TextWithEmojiFragment/types.ts +++ b/src/pages/home/report/comment/TextWithEmojiFragment/types.ts @@ -5,7 +5,7 @@ type TextWithEmojiFragmentProps = { message?: string; /** Any additional styles to apply */ - style: StyleProp; + style?: StyleProp; /** Whether the text is alternate text */ alignCustomEmoji?: boolean;