Hiyve Components - v1.0.0
    Preparing search index...

    Function usePermissions

    • Request and track camera and microphone permissions.

      Provides the current permission state and an async action to trigger the native permission request dialog. Call requestPermissions before joining a room to ensure media access is available.

      Returns {
          denied: boolean;
          granted: boolean;
          requesting: boolean;
          requestPermissions: () => Promise<boolean>;
      }

      Object containing permission state (granted, denied, requesting) and requestPermissions async action that returns true if granted

      • denied: boolean

        Whether the user denied permissions or an error occurred

      • granted: boolean

        Whether camera and microphone permissions have been granted

      • requesting: boolean

        Whether a permission request is currently in progress

      • requestPermissions: () => Promise<boolean>

      This hook is React Native-specific and has no web equivalent. On Android, it explicitly requests CAMERA and RECORD_AUDIO permissions via the PermissionsAndroid API. On iOS, permissions are requested automatically by react-native-webrtc when the camera or microphone is first accessed, so requestPermissions resolves immediately.

      import { usePermissions, useConnection } from '@hiyve/rn-react';

      function JoinScreen() {
      const { granted, denied, requesting, requestPermissions } = usePermissions();
      const { joinRoom } = useConnection();

      const handleJoin = async () => {
      const ok = await requestPermissions();
      if (ok) {
      joinRoom({ roomName: 'my-room' });
      }
      };

      return (
      <View>
      {denied && <Text>Permissions denied. Please enable in Settings.</Text>}
      <Button title="Join Meeting" onPress={handleJoin} disabled={requesting} />
      </View>
      );
      }