import { RequestPermissionParams, RequestPermissionResponse, } from '@shopify/shop-minis-platform/actions' import {useHandleAction} from '../../internal/useHandleAction' import {useShopActions} from '../../internal/useShopActions' export interface UseRequestPermissionsReturns { /** * Request native permissions from the user */ requestPermission: ( params: RequestPermissionParams ) => Promise } export const useRequestPermissions = (): UseRequestPermissionsReturns => { const {requestPermission} = useShopActions() return { requestPermission: useHandleAction(requestPermission), } } /** * The `useRequestPermissions` hook provides a function to request native device permissions from the user. It handles both app-level and system-level permission requests, showing appropriate dialogs and managing permission state. Supported permissions include camera, microphone, and device motion access. * * `errorMessage` is normally a string describing the failure. The value `'request_blocked'` is a reserved sentinel — it means the request couldn't be served because another consent or permission sheet is already showing, or the Mini's scope state hasn't finished loading yet. Don't surface this string to users. * * > Note: Before using this hook, add the required permissions to your Mini's manifest file: `"permissions": ["CAMERA"]`. * @publicDocs */ export type UseRequestPermissionsGeneratedType = () => UseRequestPermissionsReturns