fix(meteor): Close video recorder if permission denied (#30054)

pull/30080/head
gabriellsh 2 years ago committed by GitHub
parent df64d55fad
commit 72a34a02f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      .changeset/witty-feet-warn.md
  2. 9
      apps/meteor/client/views/composer/VideoMessageRecorder/VideoMessageRecorder.tsx

@ -0,0 +1,5 @@
---
"@rocket.chat/meteor": patch
---
fixed the video recorder window not closing after permission is denied.

@ -1,6 +1,7 @@
import type { IMessage, IRoom } from '@rocket.chat/core-typings';
import { css } from '@rocket.chat/css-in-js';
import { Box, ButtonGroup, Button, Icon, PositionAnimated } from '@rocket.chat/fuselage';
import { useMutableCallback } from '@rocket.chat/fuselage-hooks';
import { useTranslation, useToastMessageDispatch } from '@rocket.chat/ui-contexts';
import type { AllHTMLAttributes, RefObject } from 'react';
import React, { useRef, useEffect, useState } from 'react';
@ -94,24 +95,24 @@ const VideoMessageRecorder = ({ rid, tmid, chatContext, reference }: VideoMessag
stopVideoRecording(rid, tmid);
};
const handleCancel = () => {
const handleCancel = useMutableCallback(() => {
VideoRecorder.stop();
chat?.composer?.setRecordingVideo(false);
setTime(undefined);
stopVideoRecording(rid, tmid);
};
});
useEffect(() => {
if (!VideoRecorder.getSupportedMimeTypes()) {
return dispatchToastMessage({ type: 'error', message: t('Browser_does_not_support_recording_video') });
}
VideoRecorder.start(videoRef.current ?? undefined);
VideoRecorder.start(videoRef.current ?? undefined, (success) => (!success ? handleCancel() : undefined));
return () => {
VideoRecorder.stop();
};
}, [dispatchToastMessage, t]);
}, [dispatchToastMessage, handleCancel, t]);
return (
<PositionAnimated visible='visible' anchor={reference} placement='top-end'>

Loading…
Cancel
Save