Change conversation during call
- Add `CallManagerProvider` to manage calls when the user navigates away from the call interface.
- Delete `NotificationManager`. Move its logic to `CallManagerProvider`.
- Rework routing
- Rework `ConversationProvider` and `useConversationQuery` to remove
unecessary states
GitLab: #172
Change-Id: I4a786a3dd52159680e5712e598d9b831525fb63f
diff --git a/client/src/pages/CallInterface.tsx b/client/src/pages/CallInterface.tsx
index 3d5b366..4feecc2 100644
--- a/client/src/pages/CallInterface.tsx
+++ b/client/src/pages/CallInterface.tsx
@@ -51,6 +51,7 @@
import { WebRtcContext } from '../contexts/WebRtcProvider';
import { VideoElementWithSinkId } from '../utils/utils';
import { CallPending } from './CallPending';
+import CallPermissionDenied from './CallPermissionDenied';
export default () => {
const { callStatus, isChatShown, isFullscreen } = useContext(CallContext);
@@ -68,6 +69,9 @@
}
}, [isFullscreen]);
+ if (callStatus === CallStatus.PermissionsDenied) {
+ return <CallPermissionDenied />;
+ }
if (callStatus !== CallStatus.InCall) {
return <CallPending />;
}
@@ -213,7 +217,7 @@
const CallInterfaceInformation = () => {
const { callStartTime } = useContext(CallContext);
const { conversation } = useConversationContext();
- const [elapsedTime, setElapsedTime] = useState(0);
+ const [elapsedTime, setElapsedTime] = useState(callStartTime ? (Date.now() - callStartTime) / 1000 : 0);
const memberName = useMemo(() => conversation.getFirstMember().contact.registeredName, [conversation]);
useEffect(() => {