aboutsummaryrefslogtreecommitdiff
path: root/src/components/messages/MessagesHeader.tsx
diff options
context:
space:
mode:
authorIvan Chen <ivan@tagg.id>2021-04-09 19:49:27 -0400
committerGitHub <noreply@github.com>2021-04-09 19:49:27 -0400
commit9d5ad9bea36c0b2abffd04b25126d18158017137 (patch)
tree7d7c58cbdb67e3e0945a6ed2ccaa658f0048e887 /src/components/messages/MessagesHeader.tsx
parenta6580f418e87775a5e683e56735952df4f7fa5a9 (diff)
parentad9db5ffd0b2fb6334fd8237e0600a76d25c7053 (diff)
Merge pull request #356 from shravyaramesh/tma767-message-button
[TMA767] Message button
Diffstat (limited to 'src/components/messages/MessagesHeader.tsx')
-rw-r--r--src/components/messages/MessagesHeader.tsx29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/components/messages/MessagesHeader.tsx b/src/components/messages/MessagesHeader.tsx
index 660da97d..1bd9b55a 100644
--- a/src/components/messages/MessagesHeader.tsx
+++ b/src/components/messages/MessagesHeader.tsx
@@ -1,10 +1,10 @@
-import React, {Fragment, useContext} from 'react';
+import React, {Fragment, useContext, useEffect, useState} from 'react';
import {StyleSheet, View} from 'react-native';
import {Text} from 'react-native-animatable';
import {TouchableOpacity} from 'react-native-gesture-handler';
-import {normalize} from '../../utils';
-import ComposeIcon from '../../assets/icons/compose.svg';
import {ChatContext} from '../../App';
+import ComposeIcon from '../../assets/icons/compose.svg';
+import {normalize} from '../../utils';
type MessagesHeaderProps = {
createChannel: () => void;
@@ -12,11 +12,30 @@ type MessagesHeaderProps = {
const MessagesHeader: React.FC<MessagesHeaderProps> = ({createChannel}) => {
const {chatClient} = useContext(ChatContext);
- const unread = chatClient.user?.total_unread_count as number;
+ const [unread, setUnread] = useState(0);
+
+ useEffect(() => {
+ const newCount = chatClient.user?.total_unread_count as number;
+ if (newCount) {
+ setUnread(newCount);
+ }
+ const listener = chatClient?.on((e) => {
+ if (e.total_unread_count) {
+ setUnread(e.total_unread_count);
+ }
+ });
+
+ return () => {
+ if (listener) {
+ listener.unsubscribe();
+ }
+ };
+ }, [chatClient]);
+
return (
<View style={styles.header}>
<Text style={styles.headerText}>Messages</Text>
- {unread && unread !== 0 ? (
+ {unread !== 0 ? (
<Text style={styles.unreadText}>
{unread > 99 ? '99+' : unread} unread
</Text>