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
parent 71dea5cbf3
commit 0c875b444b
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) {