From df6595694c678657fec30d881fb1edcd39b62f17 Mon Sep 17 00:00:00 2001
From: Shravya Ramesh <shravs1208@gmail.com>
Date: Fri, 15 Jan 2021 03:33:59 -0800
Subject: friend request

---
 src/components/common/AcceptDeclineButtons.tsx | 88 ++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)
 create mode 100644 src/components/common/AcceptDeclineButtons.tsx

(limited to 'src/components/common/AcceptDeclineButtons.tsx')

diff --git a/src/components/common/AcceptDeclineButtons.tsx b/src/components/common/AcceptDeclineButtons.tsx
new file mode 100644
index 00000000..2ebae029
--- /dev/null
+++ b/src/components/common/AcceptDeclineButtons.tsx
@@ -0,0 +1,88 @@
+import React from 'react';
+import {StyleSheet, View} from 'react-native';
+import {Button} from 'react-native-elements';
+import {useDispatch, useStore} from 'react-redux';
+import {
+  declineFriendRequest,
+  loadUserNotifications,
+  updateUserXFriends,
+} from '../../store/actions';
+import {TAGG_TEXT_LIGHT_BLUE} from '../../constants';
+import {acceptFriendRequest} from '../../store/actions';
+import {RootState} from '../../store/rootReducer';
+import {ProfilePreviewType} from '../../types';
+import {SCREEN_WIDTH} from '../../utils';
+
+interface AcceptDeclineButtonsProps {
+  requester: ProfilePreviewType;
+}
+const AcceptDeclineButtons: React.FC<AcceptDeclineButtonsProps> = (props) => {
+  const {requester} = props;
+  const state: RootState = useStore().getState();
+  const dispatch = useDispatch();
+
+  const handleAcceptRequest = async () => {
+    dispatch(acceptFriendRequest(requester));
+    dispatch(updateUserXFriends(requester.id, state));
+    dispatch(loadUserNotifications());
+  };
+
+  const handleDeclineFriendRequest = async () => {
+    dispatch(declineFriendRequest(requester.id));
+  };
+  return (
+    <>
+      <Button
+        title="Accept"
+        buttonStyle={styles.acceptButton}
+        titleStyle={styles.acceptButtonTitle}
+        onPress={() => handleAcceptRequest()}
+      />
+      <Button
+        title="Reject"
+        buttonStyle={styles.rejectButton}
+        titleStyle={styles.rejectButtonTitle}
+        onPress={() => handleDeclineFriendRequest()}
+      />
+    </>
+  );
+};
+
+const styles = StyleSheet.create({
+  acceptButton: {
+    justifyContent: 'center',
+    alignItems: 'center',
+    width: SCREEN_WIDTH * 0.2,
+    height: SCREEN_WIDTH * 0.07,
+    borderRadius: 5,
+    padding: 0,
+    marginRight: '2%',
+    backgroundColor: TAGG_TEXT_LIGHT_BLUE,
+  },
+  rejectButton: {
+    justifyContent: 'center',
+    alignItems: 'center',
+    width: SCREEN_WIDTH * 0.2,
+    height: SCREEN_WIDTH * 0.07,
+    borderColor: TAGG_TEXT_LIGHT_BLUE,
+    borderWidth: 1,
+    borderRadius: 5,
+    marginRight: '2%',
+    padding: 0,
+    backgroundColor: 'white',
+  },
+  rejectButtonTitle: {
+    color: TAGG_TEXT_LIGHT_BLUE,
+    padding: 0,
+    fontSize: 14,
+    fontWeight: '800',
+  },
+  acceptButtonTitle: {
+    color: 'white',
+    padding: 0,
+    fontSize: 14,
+    fontWeight: '800',
+  },
+});
+
+export default AcceptDeclineButtons;
-- 
cgit v1.2.3-70-g09d2

