mirror of
https://github.com/suitenumerique/meet.git
synced 2026-08-29 19:57:14 +00:00
🐛(frontend) generalize screen-share error modal beyond macOS
The screen-share error modal was tailored to macOS and did not work correctly on other operating systems. Make it OS-aware so it also handles Windows properly, showing the right guidance for each platform. Also open the OS settings link in a new tab, so the user is not disconnected from the ongoing meeting when following it.
This commit is contained in:
committed by
aleb_the_flash
parent
40e4f17c65
commit
b7abd0ae6e
@@ -22,6 +22,7 @@ and this project adheres to
|
|||||||
- 🐛(frontend) fix toolbar ResizeObserver loop and alignment drift
|
- 🐛(frontend) fix toolbar ResizeObserver loop and alignment drift
|
||||||
- 🐛(analytics) filter benign ResizeObserver loop error in Sentry/PostHog
|
- 🐛(analytics) filter benign ResizeObserver loop error in Sentry/PostHog
|
||||||
- 🐛(frontend) stop reporting screen-share denials as errors
|
- 🐛(frontend) stop reporting screen-share denials as errors
|
||||||
|
- 🐛(frontend) generalize screen-share error modal beyond macOS
|
||||||
|
|
||||||
## [1.26.0] - 2026-08-12
|
## [1.26.0] - 2026-08-12
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
import { A, Button, Dialog, P } from '@/primitives'
|
import { A, Button, Dialog, P } from '@/primitives'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
import { css } from '@/styled-system/css'
|
import { css } from '@/styled-system/css'
|
||||||
|
import { getOS, type OS } from '@/utils/os'
|
||||||
|
|
||||||
|
const SCREEN_CAPTURE_SETTINGS_LINKS: Partial<Record<OS, string>> = {
|
||||||
|
macos:
|
||||||
|
'x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture',
|
||||||
|
windows: 'ms-settings:privacy-graphicscaptureprogrammatic',
|
||||||
|
}
|
||||||
|
|
||||||
// todo - refactor it into a generic system
|
// todo - refactor it into a generic system
|
||||||
export const ScreenShareErrorModal = ({
|
export const ScreenShareErrorModal = ({
|
||||||
@@ -11,7 +18,8 @@ export const ScreenShareErrorModal = ({
|
|||||||
onClose: () => void
|
onClose: () => void
|
||||||
}) => {
|
}) => {
|
||||||
const { t } = useTranslation('rooms', { keyPrefix: 'error.screenShare' })
|
const { t } = useTranslation('rooms', { keyPrefix: 'error.screenShare' })
|
||||||
const isMac = navigator.userAgent.toLowerCase().indexOf('mac') !== -1
|
const os = getOS()
|
||||||
|
const settingsHref = SCREEN_CAPTURE_SETTINGS_LINKS[os]
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Dialog
|
<Dialog
|
||||||
@@ -26,15 +34,16 @@ export const ScreenShareErrorModal = ({
|
|||||||
<>
|
<>
|
||||||
<P>
|
<P>
|
||||||
{t('message')}{' '}
|
{t('message')}{' '}
|
||||||
{isMac && (
|
{settingsHref && (
|
||||||
<>
|
<>
|
||||||
{t('macInstructions')}{' '}
|
{t('settingsInstructions')}{' '}
|
||||||
<A
|
<A
|
||||||
href="x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"
|
href={settingsHref}
|
||||||
|
target="_blank"
|
||||||
color="primary"
|
color="primary"
|
||||||
aria-label={t('macSystemPreferences') + '-' + t('newTab')}
|
aria-label={t(`settingsLabel.${os}`) + '-' + t('newTab')}
|
||||||
>
|
>
|
||||||
{t('macSystemPreferences')}
|
{t(`settingsLabel.${os}`)}
|
||||||
</A>
|
</A>
|
||||||
.{' '}
|
.{' '}
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -214,8 +214,11 @@
|
|||||||
"title": "Bildschirmfreigabe nicht möglich",
|
"title": "Bildschirmfreigabe nicht möglich",
|
||||||
"ariaLabel": "Bildschirmfreigabe nicht möglich",
|
"ariaLabel": "Bildschirmfreigabe nicht möglich",
|
||||||
"message": "Deinem Browser fehlt möglicherweise die Berechtigung, den Bildschirm deines Geräts abzugreifen.",
|
"message": "Deinem Browser fehlt möglicherweise die Berechtigung, den Bildschirm deines Geräts abzugreifen.",
|
||||||
"macInstructions": "Gehe zu den",
|
"settingsInstructions": "Gehe zu den",
|
||||||
"macSystemPreferences": "Systemeinstellungen",
|
"settingsLabel": {
|
||||||
|
"macos": "Systemeinstellungen",
|
||||||
|
"windows": "Windows-Datenschutzeinstellungen"
|
||||||
|
},
|
||||||
"helpLinkText": "Weitere Informationen findest du unter",
|
"helpLinkText": "Weitere Informationen findest du unter",
|
||||||
"helpLinkLabel": "Bildschirmfreigabeproblem",
|
"helpLinkLabel": "Bildschirmfreigabeproblem",
|
||||||
"closeButton": "Schließen",
|
"closeButton": "Schließen",
|
||||||
|
|||||||
@@ -214,8 +214,11 @@
|
|||||||
"title": "Unable to share your screen",
|
"title": "Unable to share your screen",
|
||||||
"ariaLabel": "Unable to share your screen",
|
"ariaLabel": "Unable to share your screen",
|
||||||
"message": "Your browser may not be allowed to record the screen on your computer.",
|
"message": "Your browser may not be allowed to record the screen on your computer.",
|
||||||
"macInstructions": "Go to your",
|
"settingsInstructions": "Go to your",
|
||||||
"macSystemPreferences": "System Preferences",
|
"settingsLabel": {
|
||||||
|
"macos": "System Preferences",
|
||||||
|
"windows": "Windows privacy settings"
|
||||||
|
},
|
||||||
"helpLinkText": "To learn more, see",
|
"helpLinkText": "To learn more, see",
|
||||||
"helpLinkLabel": "Presentation issue",
|
"helpLinkLabel": "Presentation issue",
|
||||||
"closeButton": "Dismiss",
|
"closeButton": "Dismiss",
|
||||||
|
|||||||
@@ -214,8 +214,11 @@
|
|||||||
"title": "Impossible de partager votre écran",
|
"title": "Impossible de partager votre écran",
|
||||||
"ariaLabel": "Impossible de partager votre écran",
|
"ariaLabel": "Impossible de partager votre écran",
|
||||||
"message": "Il se peut que votre navigateur ne soit pas autorisé à enregistrer l'écran sur votre ordinateur.",
|
"message": "Il se peut que votre navigateur ne soit pas autorisé à enregistrer l'écran sur votre ordinateur.",
|
||||||
"macInstructions": "Accèdez à vos",
|
"settingsInstructions": "Accédez à vos",
|
||||||
"macSystemPreferences": "Préférences système",
|
"settingsLabel": {
|
||||||
|
"macos": "Préférences système",
|
||||||
|
"windows": "paramètres de confidentialité Windows"
|
||||||
|
},
|
||||||
"helpLinkText": "Pour en savoir plus, consulter",
|
"helpLinkText": "Pour en savoir plus, consulter",
|
||||||
"helpLinkLabel": "Problème de présentation",
|
"helpLinkLabel": "Problème de présentation",
|
||||||
"closeButton": "Ignorer",
|
"closeButton": "Ignorer",
|
||||||
|
|||||||
@@ -214,8 +214,11 @@
|
|||||||
"title": "Kan uw scherm niet delen",
|
"title": "Kan uw scherm niet delen",
|
||||||
"ariaLabel": "Kan uw scherm niet delen",
|
"ariaLabel": "Kan uw scherm niet delen",
|
||||||
"message": "Het is mogelijk dat uw browser geen toestemming heeft om het scherm op uw computer op te nemen.",
|
"message": "Het is mogelijk dat uw browser geen toestemming heeft om het scherm op uw computer op te nemen.",
|
||||||
"macInstructions": "Ga naar uw",
|
"settingsInstructions": "Ga naar uw",
|
||||||
"macSystemPreferences": "Systeemvoorkeuren",
|
"settingsLabel": {
|
||||||
|
"macos": "Systeemvoorkeuren",
|
||||||
|
"windows": "Windows-privacyinstellingen"
|
||||||
|
},
|
||||||
"helpLinkText": "Meer informatie, zie",
|
"helpLinkText": "Meer informatie, zie",
|
||||||
"helpLinkLabel": "Presentatieprobleem",
|
"helpLinkLabel": "Presentatieprobleem",
|
||||||
"closeButton": "Negeren",
|
"closeButton": "Negeren",
|
||||||
|
|||||||
Reference in New Issue
Block a user