diff --git a/docs/articles/new-expensify/expenses-&-payments/Create-an-expense.md b/docs/articles/new-expensify/expenses-&-payments/Create-an-expense.md index 38f1e0fdd466..778a01721688 100644 --- a/docs/articles/new-expensify/expenses-&-payments/Create-an-expense.md +++ b/docs/articles/new-expensify/expenses-&-payments/Create-an-expense.md @@ -146,6 +146,24 @@ Yes, you can edit an expense until it is paid. When an expense is submitted, the In Expensify, expense reports group expenses in a batch to be paid or reconciled. When a draft report is open, all new expenses are added to it. Once a report is submitted, you can track the status from the **Search** section. Click the **View** button for a specific expense or expense report. The status is displayed at the top of the expense or report. + +**How can I enable camera permission for a website on mobile browsers?** + +**Google Chrome:** +1. Open Chrome. +2. To the right of the address bar, tap More icon > **Settings**. +3. Tap **Site settings** > **Camera**. +4. Tap to turn the microphone or camera on or off. + - If you find the site you want to use under **Blocked**, tap the site > **Allow**. +5. Refresh the site. + +**Safari:** +1. Open Safari. +2. To the left of the address bar, tap More icon > **Site settings** > **Camera**. +3. Tap **Allow** to grant permission. +4. Tap **Done**. +5. Refresh the site. + {% include faq-end.md %} diff --git a/src/CONST.ts b/src/CONST.ts index ef5eaf4e403b..75f4c6aeca3a 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -910,6 +910,8 @@ const CONST = { NEWHELP_URL: 'https://help.expensify.com', INTERNAL_DEV_EXPENSIFY_URL: 'https://www.expensify.com.dev', STAGING_EXPENSIFY_URL: 'https://staging.expensify.com', + DENIED_CAMERA_ACCESS_INSTRUCTIONS_URL: + 'https://help.expensify.com/articles/new-expensify/expenses-&-payments/Create-an-expense#:~:text=How%20can%20I%20enable%20camera%20permission%20on%20mobile%20browser%3F', BANK_ACCOUNT_PERSONAL_DOCUMENTATION_INFO_URL: 'https://community.expensify.com/discussion/6983/faq-why-do-i-need-to-provide-personal-documentation-when-setting-up-updating-my-bank-account', PERSONAL_DATA_PROTECTION_INFO_URL: 'https://community.expensify.com/discussion/5677/deep-dive-security-how-expensify-protects-your-information', diff --git a/src/languages/en.ts b/src/languages/en.ts index 591f7eb0ed42..aa061d7db61e 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -789,6 +789,8 @@ const translations = { chooseReceipt: 'Choose a receipt to upload or forward a receipt to ', takePhoto: 'Take a photo', cameraAccess: 'Camera access is required to take pictures of receipts.', + deniedCameraAccess: "Camera access still hasn't been granted, please follow ", + deniedCameraAccessInstructions: 'these instructions', cameraErrorTitle: 'Camera error', cameraErrorMessage: 'An error occurred while taking a photo. Please try again.', locationAccessTitle: 'Allow location access', diff --git a/src/languages/es.ts b/src/languages/es.ts index 91557c9defbf..b5e0135b24db 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -784,6 +784,8 @@ const translations = { chooseReceipt: 'Elige un recibo para subir o reenvía un recibo a ', takePhoto: 'Haz una foto', cameraAccess: 'Se requiere acceso a la cámara para hacer fotos de los recibos.', + deniedCameraAccess: 'No se ha concedido el acceso a la cámara, siga ', + deniedCameraAccessInstructions: 'estas instrucciones', cameraErrorTitle: 'Error en la cámara', locationAccessTitle: 'Permitir acceso a la ubicación', locationAccessMessage: 'El acceso a la ubicación nos ayuda a mantener tu zona horaria y moneda precisas dondequiera que vayas.', diff --git a/src/pages/iou/request/step/IOURequestStepScan/index.tsx b/src/pages/iou/request/step/IOURequestStepScan/index.tsx index 375936b05c1a..bdd1838dd59a 100644 --- a/src/pages/iou/request/step/IOURequestStepScan/index.tsx +++ b/src/pages/iou/request/step/IOURequestStepScan/index.tsx @@ -21,6 +21,7 @@ import LocationPermissionModal from '@components/LocationPermissionModal'; import PDFThumbnail from '@components/PDFThumbnail'; import PressableWithFeedback from '@components/Pressable/PressableWithFeedback'; import Text from '@components/Text'; +import TextLink from '@components/TextLink'; import withCurrentUserPersonalDetails from '@components/withCurrentUserPersonalDetails'; import useLocalize from '@hooks/useLocalize'; import usePolicy from '@hooks/usePolicy'; @@ -636,7 +637,14 @@ function IOURequestStepScan({ additionalStyles={[styles.pb5]} /> {translate('receipt.takePhoto')} - {translate('receipt.cameraAccess')} + {cameraPermissionState === 'denied' ? ( + + {translate('receipt.deniedCameraAccess')} + {translate('receipt.deniedCameraAccessInstructions')}. + + ) : ( + {translate('receipt.cameraAccess')} + )}