Show a modal for macOS media permissions

This commit is contained in:
Fedor Indutny 2025-02-27 11:09:06 -08:00 committed by GitHub
commit 0c875b444b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 461 additions and 14 deletions

View file

@ -20,6 +20,7 @@ import { ButtonVariant } from './Button';
import { ConfirmationDialog } from './ConfirmationDialog';
import { SignalConnectionsModal } from './SignalConnectionsModal';
import { WhatsNewModal } from './WhatsNewModal';
import { MediaPermissionsModal } from './MediaPermissionsModal';
import type { StartCallData } from './ConfirmLeaveCallModal';
import type { AttachmentNotAvailableModalType } from './AttachmentNotAvailableModal';
@ -74,6 +75,15 @@ export type PropsType = {
// ForwardMessageModal
forwardMessagesProps: ForwardMessagesPropsType | undefined;
renderForwardMessagesModal: () => JSX.Element;
// MediaPermissionsModal
mediaPermissionsModalProps:
| {
mediaType: 'camera' | 'microphone';
requestor: 'call' | 'voiceNote';
}
| undefined;
closeMediaPermissionsModal: () => void;
openSystemMediaPermissions: (mediaType: 'camera' | 'microphone') => void;
// MessageRequestActionsConfirmation
messageRequestActionsConfirmationProps: MessageRequestActionsConfirmationPropsType | null;
renderMessageRequestActionsConfirmation: () => JSX.Element;
@ -156,6 +166,10 @@ export function GlobalModalContainer({
// ForwardMessageModal
forwardMessagesProps,
renderForwardMessagesModal,
// MediaPermissionsModal
mediaPermissionsModalProps,
closeMediaPermissionsModal,
openSystemMediaPermissions,
// MessageRequestActionsConfirmation
messageRequestActionsConfirmationProps,
renderMessageRequestActionsConfirmation,
@ -218,6 +232,18 @@ export function GlobalModalContainer({
return renderForwardMessagesModal();
}
// Media Permissions Modal
if (mediaPermissionsModalProps) {
return (
<MediaPermissionsModal
i18n={i18n}
{...mediaPermissionsModalProps}
openSystemMediaPermissions={openSystemMediaPermissions}
onClose={closeMediaPermissionsModal}
/>
);
}
// The Rest
if (confirmLeaveCallModalState) {