Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ function BaseHTMLEngineProvider({textSelectable = false, children, enableExperim
'mention-report': HTMLElementModel.fromCustomModel({tagName: 'mention-report', contentModel: HTMLContentModel.textual}),
'mention-here': HTMLElementModel.fromCustomModel({tagName: 'mention-here', contentModel: HTMLContentModel.textual}),
'mention-short': HTMLElementModel.fromCustomModel({tagName: 'mention-short', contentModel: HTMLContentModel.textual}),
'concierge-link': HTMLElementModel.fromCustomModel({tagName: 'concierge-link', contentModel: HTMLContentModel.textual}),
'next-step': HTMLElementModel.fromCustomModel({
tagName: 'next-step',
mixedUAStyles: {...styles.textLabelSupporting, ...styles.lh16},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import React from 'react';
import type {StyleProp, TextStyle} from 'react-native';
import type {CustomRendererProps, TPhrasing, TText} from 'react-native-render-html';
import {TNodeChildrenRenderer} from 'react-native-render-html';
import * as HTMLEngineUtils from '@components/HTMLEngineProvider/htmlEngineUtils';
import Text from '@components/Text';
import useThemeStyles from '@hooks/useThemeStyles';
import {navigateToConciergeChat as navigateToConciergeChatAction} from '@userActions/Report';

type ConciergeLinkRendererProps = CustomRendererProps<TText | TPhrasing>;

/**
* Simple wrapper to create a stable reference without passing event args to navigation function.
*/
function navigateToConciergeChat() {
navigateToConciergeChatAction();
}

function ConciergeLinkRenderer({tnode}: ConciergeLinkRendererProps) {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@roryabraham This new tag + custom renderer was added as this is being used in multiple translations (and this is not a simple navigate call that we could have done using normal a tag). We will add new properties to this later if required.

const styles = useThemeStyles();

// Define link style based on context
let linkStyle: StyleProp<TextStyle> = styles.link;

// Special handling for links in RBR to maintain consistent font size
if (HTMLEngineUtils.isChildOfRBR(tnode)) {
linkStyle = [
styles.link,
{
fontSize: HTMLEngineUtils.getFontSizeOfRBRChild(tnode),
},
];
}

return (
<Text
style={linkStyle}
onPress={navigateToConciergeChat}
suppressHighlighting
>
<TNodeChildrenRenderer tnode={tnode} />
</Text>
);
}

ConciergeLinkRenderer.displayName = 'ConciergeLinkRenderer';

export default ConciergeLinkRenderer;
2 changes: 2 additions & 0 deletions src/components/HTMLEngineProvider/HTMLRenderers/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type {CustomTagRendererRecord} from 'react-native-render-html';
import AnchorRenderer from './AnchorRenderer';
import CodeRenderer from './CodeRenderer';
import ConciergeLinkRenderer from './ConciergeLinkRenderer';
import DeletedActionRenderer from './DeletedActionRenderer';
import EditedRenderer from './EditedRenderer';
import EmojiRenderer from './EmojiRenderer';
Expand Down Expand Up @@ -38,6 +39,7 @@ const HTMLEngineProviderComponentList: CustomTagRendererRecord = {
emoji: EmojiRenderer,
'next-step-email': NextStepEmailRenderer,
'deleted-action': DeletedActionRenderer,
'concierge-link': ConciergeLinkRenderer,
/* eslint-enable @typescript-eslint/naming-convention */
};

Expand Down
4 changes: 2 additions & 2 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1521,8 +1521,8 @@ const translations = {
clearCacheAndRestart: 'Cache leeren und neu starten',
viewConsole: 'Debug-Konsole anzeigen',
debugConsole: 'Debug-Konsole',
description: 'Verwenden Sie die untenstehenden Tools, um das Expensify-Erlebnis zu unterstützen. Wenn Sie auf Probleme stoßen, bitte',
submitBug: 'einen Fehler melden',
description:
'<muted-text>Verwenden Sie die folgenden Tools, um Probleme mit Expensify zu beheben. Wenn Sie auf Probleme stoßen, <concierge-link>melden Sie bitte einen Fehler</concierge-link>.</muted-text>',
confirmResetDescription: 'Alle nicht gesendeten Entwurfsnachrichten gehen verloren, aber der Rest Ihrer Daten ist sicher.',
resetAndRefresh: 'Zurücksetzen und aktualisieren',
clientSideLogging: 'Client-seitiges Logging',
Expand Down
4 changes: 2 additions & 2 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1501,8 +1501,8 @@ const translations = {
clearCacheAndRestart: 'Clear cache and restart',
viewConsole: 'View debug console',
debugConsole: 'Debug console',
description: 'Use the tools below to help troubleshoot the Expensify experience. If you encounter any issues, please',
submitBug: 'submit a bug',
description:
'<muted-text>Use the tools below to help troubleshoot the Expensify experience. If you encounter any issues, please <concierge-link>submit a bug</concierge-link>.</muted-text>',
confirmResetDescription: 'All unsent draft messages will be lost, but the rest of your data is safe.',
resetAndRefresh: 'Reset and refresh',
clientSideLogging: 'Client side logging',
Expand Down
4 changes: 2 additions & 2 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1498,8 +1498,8 @@ const translations = {
clearCacheAndRestart: 'Borrar caché y reiniciar',
viewConsole: 'Ver la consola de depuración',
debugConsole: 'Consola de depuración',
description: 'Utilice las herramientas que aparecen a continuación para solucionar los problemas de Expensify. Si tiene algún problema, por favor',
submitBug: 'envíe un informe de error',
description:
'<muted-text>Utilice las herramientas que aparecen a continuación para solucionar los problemas de Expensify. Si tiene algún problema, por favor <concierge-link>envíe un informe de error</concierge-link>.</muted-text>',
confirmResetDescription: 'Todos los borradores no enviados se perderán, pero el resto de tus datos estarán a salvo.',
resetAndRefresh: 'Restablecer y actualizar',
clientSideLogging: 'Registro a nivel cliente',
Expand Down
4 changes: 2 additions & 2 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1522,8 +1522,8 @@ const translations = {
clearCacheAndRestart: 'Effacer le cache et redémarrer',
viewConsole: 'Afficher la console de débogage',
debugConsole: 'Console de débogage',
description: "Utilisez les outils ci-dessous pour vous aider à résoudre les problèmes liés à l'expérience Expensify. Si vous rencontrez des problèmes, veuillez",
submitBug: 'soumettre un bug',
description:
"<muted-text>Utilisez les outils ci-dessous pour vous aider à résoudre les problèmes liés à l'utilisation d'Expensify. Si vous rencontrez des problèmes, veuillez <concierge-link>soumettre un bug</concierge-link>.</muted-text>",
confirmResetDescription: 'Tous les brouillons de messages non envoyés seront perdus, mais le reste de vos données est en sécurité.',
resetAndRefresh: 'Réinitialiser et actualiser',
clientSideLogging: 'Journalisation côté client',
Expand Down
4 changes: 2 additions & 2 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1515,8 +1515,8 @@ const translations = {
clearCacheAndRestart: 'Cancella cache e riavvia',
viewConsole: 'Visualizza console di debug',
debugConsole: 'Console di debug',
description: "Usa gli strumenti qui sotto per aiutarti a risolvere i problemi con l'esperienza Expensify. Se incontri problemi, per favore",
submitBug: 'segnala un bug',
description:
'<muted-text>Utilizzate gli strumenti qui sotto per risolvere i problemi di Expensify. Se riscontrate problemi, <concierge-link>inviate un bug</concierge-link>.</muted-text>',
confirmResetDescription: 'Tutti i messaggi di bozza non inviati andranno persi, ma il resto dei tuoi dati è al sicuro.',
resetAndRefresh: 'Reimposta e aggiorna',
clientSideLogging: 'Registrazione lato client',
Expand Down
4 changes: 2 additions & 2 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1515,8 +1515,8 @@ const translations = {
clearCacheAndRestart: 'キャッシュをクリアして再起動',
viewConsole: 'デバッグコンソールを表示',
debugConsole: 'デバッグコンソール',
description: 'Expensifyの体験をトラブルシューティングするために、以下のツールを使用してください。問題が発生した場合は、どうぞ',
submitBug: 'バグを提出する',
description:
'<muted-text>Expensifyのトラブルシューティングには以下のツールをご利用ください。問題が発生した場合は、<concierge-link>バグをご報告</concierge-link>ください。</muted-text>',
confirmResetDescription: '送信されていないすべての下書きメッセージは失われますが、その他のデータは安全です。',
resetAndRefresh: 'リセットして更新',
clientSideLogging: 'クライアントサイドのログ記録',
Expand Down
4 changes: 2 additions & 2 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1517,8 +1517,8 @@ const translations = {
clearCacheAndRestart: 'Cache wissen en opnieuw starten',
viewConsole: 'Bekijk debugconsole',
debugConsole: 'Debugconsole',
description: 'Gebruik de onderstaande tools om de Expensify-ervaring te helpen oplossen. Als u problemen ondervindt, neem dan alstublieft',
submitBug: 'een bug indienen',
description:
'<muted-text>Gebruik de onderstaande hulpmiddelen om problemen met Expensify op te lossen. Als je problemen tegenkomt, <concierge-link>dien dan een bug in</concierge-link>.</muted-text>',
confirmResetDescription: 'Alle niet-verzonden conceptberichten gaan verloren, maar de rest van uw gegevens is veilig.',
resetAndRefresh: 'Reset en vernieuwen',
clientSideLogging: 'Client-side logging',
Expand Down
4 changes: 2 additions & 2 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1513,8 +1513,8 @@ const translations = {
clearCacheAndRestart: 'Wyczyść pamięć podręczną i uruchom ponownie',
viewConsole: 'Wyświetl konsolę debugowania',
debugConsole: 'Konsola debugowania',
description: 'Użyj poniższych narzędzi, aby pomóc w rozwiązywaniu problemów z działaniem Expensify. Jeśli napotkasz jakiekolwiek problemy, proszę',
submitBug: 'zgłoś błąd',
description:
'<muted-text>Skorzystaj z poniższych narzędzi, aby pomóc w rozwiązywaniu problemów z Expensify. Jeśli napotkasz jakiekolwiek problemy, <concierge-link>zgłoś błąd</concierge-link>.</muted-text>',
confirmResetDescription: 'Wszystkie niesłane wiadomości robocze zostaną utracone, ale reszta Twoich danych jest bezpieczna.',
resetAndRefresh: 'Zresetuj i odśwież',
clientSideLogging: 'Logowanie po stronie klienta',
Expand Down
4 changes: 2 additions & 2 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1513,8 +1513,8 @@ const translations = {
clearCacheAndRestart: 'Limpar cache e reiniciar',
viewConsole: 'Ver console de depuração',
debugConsole: 'Console de depuração',
description: 'Use as ferramentas abaixo para ajudar a solucionar problemas na experiência do Expensify. Se você encontrar algum problema, por favor',
submitBug: 'enviar um bug',
description:
'<muted-text>Use as ferramentas abaixo para ajudar a solucionar problemas na experiência da Expensify. Se você encontrar algum problema, <concierge-link>envie um bug</concierge-link>.</muted-text>',
confirmResetDescription: 'Todas as mensagens de rascunho não enviadas serão perdidas, mas o restante dos seus dados está seguro.',
resetAndRefresh: 'Redefinir e atualizar',
clientSideLogging: 'Registro no lado do cliente',
Expand Down
3 changes: 1 addition & 2 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1500,8 +1500,7 @@ const translations = {
clearCacheAndRestart: '清除缓存并重启',
viewConsole: '查看调试控制台',
debugConsole: '调试控制台',
description: '使用以下工具帮助解决Expensify体验中的问题。如果您遇到任何问题,请',
submitBug: '提交错误报告',
description: '<muted-text>使用以下工具帮助排除 Expensify 体验中的故障。如果遇到任何问题,<concierge-link>请提交错误</concierge-link>。</muted-text>',
confirmResetDescription: '所有未发送的草稿消息将会丢失,但您的其他数据是安全的。',
resetAndRefresh: '重置并刷新',
clientSideLogging: '客户端日志记录',
Expand Down
17 changes: 4 additions & 13 deletions src/pages/settings/Troubleshoot/TroubleshootPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,13 @@ import LottieAnimations from '@components/LottieAnimations';
import MenuItemList from '@components/MenuItemList';
import {useOptionsList} from '@components/OptionListContextProvider';
import RecordTroubleshootDataToolMenu from '@components/RecordTroubleshootDataToolMenu';
import RenderHTML from '@components/RenderHTML';
import ScreenWrapper from '@components/ScreenWrapper';
import ScrollView from '@components/ScrollView';
import Section from '@components/Section';
import Switch from '@components/Switch';
import TestToolMenu from '@components/TestToolMenu';
import TestToolRow from '@components/TestToolRow';
import Text from '@components/Text';
import TextLink from '@components/TextLink';
import useEnvironment from '@hooks/useEnvironment';
import useLocalize from '@hooks/useLocalize';
import useOnyx from '@hooks/useOnyx';
Expand All @@ -29,7 +28,6 @@ import {setShouldMaskOnyxState} from '@libs/actions/MaskOnyx';
import ExportOnyxState from '@libs/ExportOnyxState';
import Navigation from '@libs/Navigation/Navigation';
import {clearOnyxAndResetApp} from '@userActions/App';
import {navigateToConciergeChat} from '@userActions/Report';
import type {TranslationPaths} from '@src/languages/types';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
Expand Down Expand Up @@ -122,16 +120,9 @@ function TroubleshootPage() {
illustrationStyle={illustrationStyle}
titleStyles={styles.accountSettingsSectionTitle}
renderSubtitle={() => (
<Text style={[styles.flexRow, styles.alignItemsCenter, styles.w100, styles.mt2]}>
<Text style={[styles.textNormal, styles.colorMuted]}>{translate('initialSettingsPage.troubleshoot.description')}</Text>{' '}
<TextLink
style={styles.link}
onPress={() => navigateToConciergeChat()}
>
{translate('initialSettingsPage.troubleshoot.submitBug')}
</TextLink>
.
</Text>
<View style={[styles.renderHTML, styles.flexRow, styles.alignItemsCenter, styles.w100, styles.mt2]}>
<RenderHTML html={translate('initialSettingsPage.troubleshoot.description')} />
</View>
)}
>
<View style={[styles.flex1, styles.mt5]}>
Expand Down
Loading