packages/storybook8/stories/Components/SitePermissions/snippets/SitePermissionsCheckModal.snippet.tsx (74 lines of code) (raw):

import { CameraAndMicrophoneSitePermissions, CameraSitePermissions, DEFAULT_COMPONENT_ICONS, MicrophoneSitePermissions } from '@azure/communication-react'; import { Modal, PrimaryButton, Stack, registerIcons } from '@fluentui/react'; import React, { useState } from 'react'; registerIcons({ icons: DEFAULT_COMPONENT_ICONS }); export const SitePermissionsCheckModal: () => JSX.Element = () => { const [microphoneCameraModalOpen, setMicrophoneCameraModalOpen] = useState<boolean>(false); const [microphoneModalOpen, setMicrophoneModalOpen] = useState<boolean>(false); const [cameraModalOpen, setCameraModalOpen] = useState<boolean>(false); return ( <Stack horizontal> <PrimaryButton style={{ margin: 'auto' }} onClick={() => { setMicrophoneCameraModalOpen(true); }} > Open Microphone and Camera permission modal </PrimaryButton> <PrimaryButton style={{ margin: 'auto' }} onClick={() => { setMicrophoneModalOpen(true); }} > Open Microphone permission modal </PrimaryButton> <PrimaryButton style={{ margin: 'auto' }} onClick={() => { setCameraModalOpen(true); }} > Open Camera permission modal </PrimaryButton> <Modal isOpen={microphoneCameraModalOpen} onDismiss={() => setMicrophoneCameraModalOpen(false)}> <CameraAndMicrophoneSitePermissions appName={'Storybook'} onTroubleshootingClick={() => { alert('clicked trouble shooting'); }} kind={'check'} /> </Modal> <Modal isOpen={microphoneModalOpen} onDismiss={() => setMicrophoneModalOpen(false)}> <MicrophoneSitePermissions appName={'Storybook'} onTroubleshootingClick={() => { alert('clicked trouble shooting'); }} kind={'check'} /> </Modal> <Modal isOpen={cameraModalOpen} onDismiss={() => setCameraModalOpen(false)}> <CameraSitePermissions appName={'Storybook'} onTroubleshootingClick={() => { alert('clicked trouble shooting'); }} onContinueAnywayClick={() => { setCameraModalOpen(false); }} kind={'check'} /> </Modal> </Stack> ); };