Add toggleable chat drawer in call

During a call, the chat button is enabled and lets the user open the
chat drawer.

GitLab: #177
Change-Id: I7a2ae09fca5af904c3280bc948a2d36135c1c63d
diff --git a/client/src/contexts/CallProvider.tsx b/client/src/contexts/CallProvider.tsx
index de2a6d7..5595000 100644
--- a/client/src/contexts/CallProvider.tsx
+++ b/client/src/contexts/CallProvider.tsx
@@ -21,7 +21,7 @@
 
 import { useUrlParams } from '../hooks/useUrlParams';
 import { CallRouteParams } from '../router';
-import { WithChildren } from '../utils/utils';
+import { SetState, WithChildren } from '../utils/utils';
 import { ConversationContext } from './ConversationProvider';
 import { WebRtcContext } from './WebRtcProvider';
 import { WebSocketContext } from './WebSocketProvider';
@@ -45,6 +45,8 @@
   setAudioStatus: (isOn: boolean) => void;
   isVideoOn: boolean;
   setVideoStatus: (isOn: boolean) => void;
+  isChatShown: boolean;
+  setIsChatShown: SetState<boolean>;
   callRole: CallRole;
   callStatus: CallStatus;
 
@@ -65,6 +67,8 @@
   setAudioStatus: () => {},
   isVideoOn: false,
   setVideoStatus: () => {},
+  isChatShown: false,
+  setIsChatShown: () => {},
   callRole: 'caller',
   callStatus: CallStatus.Default,
 
@@ -89,6 +93,7 @@
 
   const [isAudioOn, setIsAudioOn] = useState(false);
   const [isVideoOn, setIsVideoOn] = useState(false);
+  const [isChatShown, setIsChatShown] = useState(false);
   const [callStatus, setCallStatus] = useState(routeState?.callStatus);
 
   // TODO: This logic will have to change to support multiple people in a call. Could we move this logic to the server?
@@ -256,6 +261,8 @@
         setAudioStatus,
         isVideoOn,
         setVideoStatus,
+        isChatShown,
+        setIsChatShown,
         callRole,
         callStatus,
         acceptCall,