diff --git a/src/component/video/use-video-details.tsx b/src/component/video/use-video-details.tsx index df09bf7..34f892a 100644 --- a/src/component/video/use-video-details.tsx +++ b/src/component/video/use-video-details.tsx @@ -72,7 +72,7 @@ export const useVideoDetails = ({ const { hasPermission, requestPermission } = useCameraPermission(); const [sessionName, setSessionName] = useState( - initialState.sessionName || "", + initialState.sessionName, ); const closeAllDropdowns = useCallback(() => { @@ -101,15 +101,24 @@ export const useVideoDetails = ({ closeAllDropdowns, ); - const [TerminateUploadStream, { loading, error }] = + const [terminateUploadStream, { loading, error }] = gql.useTerminateUploadStreamMutation(); const handleSubmit = async () => { - if (mode === "start-video" && !hasPermission) { - requestPermission(); - return showAlert("camera"); + // Check permissions + if (!hasPermission) { + console.log("running"); + try { + const permissionResult = await requestPermission(); + if (permissionResult.status !== "granted") { + return showAlert("camera"); + } + } catch (err) { + return showAlert("permissionError"); + } } + // Navigate if starting flow, terminateUploadStream if completing flow if (mode === "start-video") { const params: VideoFlowInputParams = { sessionName, @@ -119,7 +128,7 @@ export const useVideoDetails = ({ navigation.push("Camera", params); } else { try { - await TerminateUploadStream({ + await terminateUploadStream({ variables: { videoId, videoName: sessionName, diff --git a/src/lib/alert-messages/constants.ts b/src/lib/alert-messages/constants.ts index 45cb33a..4f1895f 100644 --- a/src/lib/alert-messages/constants.ts +++ b/src/lib/alert-messages/constants.ts @@ -24,6 +24,11 @@ export const CAMERA_PERMISSION_DENIED: PermissionMessage = { }, }; +export const PERMISSION_ERROR: ApiError = { + title: "There was an issue accessing permissions. ", + message: "Please check you settings and try again", +}; + export const TERMINATE_UPLOAD_ERROR: ApiError = { title: "There was an issue.", message: "Please try again", diff --git a/src/lib/alert-messages/index.ts b/src/lib/alert-messages/index.ts index 6f4b839..b71bebe 100644 --- a/src/lib/alert-messages/index.ts +++ b/src/lib/alert-messages/index.ts @@ -1,8 +1,13 @@ import { Alert, Platform } from "react-native"; -import { CAMERA_PERMISSION_DENIED, TERMINATE_UPLOAD_ERROR } from "./constants"; +import { + CAMERA_PERMISSION_DENIED, + PERMISSION_ERROR, + TERMINATE_UPLOAD_ERROR, +} from "./constants"; const ALERT_TYPE = { camera: CAMERA_PERMISSION_DENIED, + permissionError: PERMISSION_ERROR, terminateUpload: TERMINATE_UPLOAD_ERROR, };