diff --git a/ts/components/GroupCallToastManager.tsx b/ts/components/GroupCallToastManager.tsx
new file mode 100644
index 000000000000..a82267ff071b
--- /dev/null
+++ b/ts/components/GroupCallToastManager.tsx
@@ -0,0 +1,37 @@
+// Copyright 2020 Signal Messenger, LLC
+// SPDX-License-Identifier: AGPL-3.0-only
+
+import React, { useState, useEffect } from 'react';
+import classNames from 'classnames';
+import { GroupCallConnectionState } from '../types/Calling';
+import { LocalizerType } from '../types/Util';
+
+interface PropsType {
+ connectionState: GroupCallConnectionState;
+ i18n: LocalizerType;
+}
+
+// In the future, this component should show toasts when users join or leave. See
+// DESKTOP-902.
+export const GroupCallToastManager: React.FC
= ({
+ connectionState,
+ i18n,
+}) => {
+ const [isVisible, setIsVisible] = useState(false);
+
+ useEffect(() => {
+ setIsVisible(connectionState === GroupCallConnectionState.Reconnecting);
+ }, [connectionState, setIsVisible]);
+
+ const message = i18n('callReconnecting');
+
+ return (
+
+ {message}
+
+ );
+};
diff --git a/ts/util/lint/exceptions.json b/ts/util/lint/exceptions.json
index acbfdfc24e65..d6fa2242eb29 100644
--- a/ts/util/lint/exceptions.json
+++ b/ts/util/lint/exceptions.json
@@ -14382,7 +14382,7 @@
"rule": "React-useRef",
"path": "ts/components/CallScreen.js",
"line": " const localVideoRef = react_1.useRef(null);",
- "lineNumber": 40,
+ "lineNumber": 41,
"reasonCategory": "usageTrusted",
"updated": "2020-10-26T21:35:52.858Z",
"reasonDetail": "Used to get the local video element for rendering."