From cc9557e20668ad5f3a2ba969acf5f601618907fb Mon Sep 17 00:00:00 2001
From: Pritipriya Singh <mail2pritipriya@gmail.com>
Date: Wed, 15 Nov 2023 16:21:49 +0530
Subject: [PATCH] fix: removed unn consolelogs

---
 .../components/supportChat/AddressInfo.tsx    |  5 +-
 .../src/lib/components/supportChat/Chat.tsx   |  1 +
 .../lib/components/supportChat/ChatInput.tsx  | 18 +++--
 .../src/lib/components/supportChat/Chats.tsx  | 42 ++++++++---
 .../src/lib/components/supportChat/Modal.tsx  | 11 +--
 packages/uiweb/src/lib/hooks/useSDKSocket.ts  | 71 ++++++++++---------
 packages/uiweb/src/lib/types/index.ts         | 13 ++++
 7 files changed, 101 insertions(+), 60 deletions(-)

diff --git a/packages/uiweb/src/lib/components/supportChat/AddressInfo.tsx b/packages/uiweb/src/lib/components/supportChat/AddressInfo.tsx
index c9e6c79a4..48db2ea0e 100644
--- a/packages/uiweb/src/lib/components/supportChat/AddressInfo.tsx
+++ b/packages/uiweb/src/lib/components/supportChat/AddressInfo.tsx
@@ -1,13 +1,12 @@
 import React, { useContext, useEffect, useState } from 'react';
 import styled from 'styled-components';
 import { SupportChatPropsContext } from '../../context';
-import * as PushAPI from '@pushprotocol/restapi';
 import { Constants } from '../../config';
 import { copyToClipboard, pCAIP10ToWallet } from '../../helpers';
 import { CopySvg } from '../../icons/CopySvg';
 
 export const AddressInfo: React.FC = () => {
-  const { supportAddress, env, theme } = useContext<any>(SupportChatPropsContext);
+  const { supportAddress, env, theme, userAlice } = useContext<any>(SupportChatPropsContext);
   const [ensName, setEnsName] = useState<string>('');
   const [user, setUser] = useState<any>({});
   const [isCopied, setIsCopied] = useState<boolean>(false);
@@ -15,7 +14,7 @@ export const AddressInfo: React.FC = () => {
 
   useEffect(() => {
     const getUser = async () => {
-      const user = await PushAPI.user.get({ account: walletAddress, env });
+      const user = await userAlice.info();
       setUser(user);
     };
     getUser();
diff --git a/packages/uiweb/src/lib/components/supportChat/Chat.tsx b/packages/uiweb/src/lib/components/supportChat/Chat.tsx
index aa1e00386..01107593f 100644
--- a/packages/uiweb/src/lib/components/supportChat/Chat.tsx
+++ b/packages/uiweb/src/lib/components/supportChat/Chat.tsx
@@ -66,6 +66,7 @@ export type ButtonStyleProps = {
     userAlice
   });
 
+  console.log("chanecing", socketData)
   const chatPropsData = {
     account : accountadd,
     signer,
diff --git a/packages/uiweb/src/lib/components/supportChat/ChatInput.tsx b/packages/uiweb/src/lib/components/supportChat/ChatInput.tsx
index 35fd9fac1..049cbaf7e 100644
--- a/packages/uiweb/src/lib/components/supportChat/ChatInput.tsx
+++ b/packages/uiweb/src/lib/components/supportChat/ChatInput.tsx
@@ -4,7 +4,6 @@ import { SendIconSvg } from '../../icons/SendIconSvg';
 import SmileyIcon from '../../icons/smiley.svg';
 import AttachmentIcon from '../../icons/attachment.svg';
 import styled from 'styled-components';
-import * as PushAPI from '@pushprotocol/restapi';
 import { SupportChatMainStateContext, SupportChatPropsContext } from '../../context';
 import { Spinner } from './spinner/Spinner';
 // import Picker from 'emoji-picker-react';
@@ -14,7 +13,7 @@ export const ChatInput: React.FC = () => {
   const fileInputRef = useRef<HTMLInputElement>(null);
   const [filesUploading, setFileUploading] = useState<boolean>(false);
   const [loading, setLoading] = useState<boolean>(false);
-  const { account, env, supportAddress, apiKey, theme } =
+  const { account, env, supportAddress, apiKey, theme, userAlice } =
     useContext<any>(SupportChatPropsContext);
 
   const {
@@ -40,15 +39,14 @@ export const ChatInput: React.FC = () => {
     e.preventDefault();
     setLoading(true);
     if (message.trim() !== '' && connectedUser) {
-      const sendResponse = await PushAPI.chat.send({
-        messageContent: message,
-        messageType: 'Text',
-        receiverAddress: supportAddress,
-        account: account,
-        pgpPrivateKey: connectedUser?.privateKey,
-        apiKey,
-        env,
+      
+      const sendResponse = await userAlice.chat.send(supportAddress ,{
+        
+        type: 'Text',
+        content: message,
+      
       });
+      console.log(sendResponse);
 
       if (typeof sendResponse !== 'string') {
         sendResponse.messageContent = message;
diff --git a/packages/uiweb/src/lib/components/supportChat/Chats.tsx b/packages/uiweb/src/lib/components/supportChat/Chats.tsx
index a6f7604d4..1b2cb441e 100644
--- a/packages/uiweb/src/lib/components/supportChat/Chats.tsx
+++ b/packages/uiweb/src/lib/components/supportChat/Chats.tsx
@@ -1,3 +1,4 @@
+
 import React, { useContext, useState } from 'react';
 import styled from 'styled-components';
 import { SupportChatMainStateContext, SupportChatPropsContext } from '../../context';
@@ -30,29 +31,48 @@ export const Chats: React.FC<ChatsPropType> = ({
   const { connectedUser } = useContext<any>(SupportChatMainStateContext);
   const [showImageModal, setShowImageModal] = useState<boolean>(false);
   const [imageUrl, setImageUrl] = useState<string>('');
-  const time: Date = new Date(msg.timestamp!);
+
+let date;
+let timestamp;
+
+if (typeof msg.timestamp === "string") {
+  timestamp = parseInt(msg.timestamp);
+}else{
+  timestamp = msg.timestamp
+}
+  const time = new Date(timestamp!);
+
+  if (!isNaN(time.getTime())){
+  
   const time1 = time.toLocaleTimeString('en-US');
-  const date = time1.slice(0, -6) + time1.slice(-2);
+
+  date = time1.slice(0, -6) + time1.slice(-2);
+  }
+
+
   return (
     <Container>
       <>
-        {msg.messageType === 'Text' ? (
+        {msg.messageType === 'Text' || msg.message?.type ? (
           <>
-            {msg.fromCAIP10 === caip10 ? (
+            {(msg.fromCAIP10 === caip10 || msg.from === caip10 ) ? (
               <MessageWrapper align="row-reverse">
                 <SenderMessage theme={theme}>
-                  <TextMessage>{msg.messageContent}</TextMessage>
+                  {console.log("woiiii" , msg.messageContent)}
+                  <TextMessage>{msg.messageContent || msg.message?.content}</TextMessage>
                   {msg.timestamp !== undefined && <TimeStamp>{date}</TimeStamp>}
                 </SenderMessage>
               </MessageWrapper>
             ) : (
               <MessageWrapper align="row">
-                <ReceivedMessage theme={theme}>
-                  {msg?.icon && msg.icon}
-                  <TextMessage>{msg.messageContent}</TextMessage>
-                  {msg.timestamp !== undefined && <TimeStamp>{date}</TimeStamp>}
-                </ReceivedMessage>
-              </MessageWrapper>
+              <ReceivedMessage theme={theme}>
+                {msg?.icon && msg.icon}
+                {console.log("insideee",msg.message?.content)}
+                <TextMessage>{ msg.message?.content || msg.messageContent}</TextMessage>
+                {msg.timestamp !== undefined && <TimeStamp>{date}</TimeStamp>}
+              </ReceivedMessage>
+            </MessageWrapper> 
+
             )}
           </>
         ) : // : msg.messageType === 'Image' ? (
diff --git a/packages/uiweb/src/lib/components/supportChat/Modal.tsx b/packages/uiweb/src/lib/components/supportChat/Modal.tsx
index 19ed9a3cd..4bfccad36 100644
--- a/packages/uiweb/src/lib/components/supportChat/Modal.tsx
+++ b/packages/uiweb/src/lib/components/supportChat/Modal.tsx
@@ -120,15 +120,18 @@ export const Modal: React.FC = () => {
   };
 
   const getUpdatedChats = async (message:IMessageIPFS) =>{
-    if (message && (supportAddress === pCAIP10ToWallet(message?.fromCAIP10))) {
+ 
+    if (message && (supportAddress === pCAIP10ToWallet(message?.from))) {
       // const chat = await decryptChat({ message, connectedUser, env });
-      socketData.messagesSinceLastConnection.decrypted = true;
+      // socketData.messagesSinceLastConnection.decrypted = true;
+
       setChatsSorted([...chats, message]);
     }
   }
-
+  
   useEffect(() => {
-    if(socketData.messagesSinceLastConnection && !socketData.messagesSinceLastConnection.decrypted){
+
+    if(socketData.messagesSinceLastConnection){
       getUpdatedChats(socketData.messagesSinceLastConnection);
     }
   }, [socketData.messagesSinceLastConnection]);
diff --git a/packages/uiweb/src/lib/hooks/useSDKSocket.ts b/packages/uiweb/src/lib/hooks/useSDKSocket.ts
index 2cef5d2c3..0659091c8 100644
--- a/packages/uiweb/src/lib/hooks/useSDKSocket.ts
+++ b/packages/uiweb/src/lib/hooks/useSDKSocket.ts
@@ -4,7 +4,7 @@ import {
   EVENTS
 } from '@pushprotocol/socket';
 import {  ENV } from '../config';
-import { PushAPI } from '@pushprotocol/restapi';
+import { CONSTANTS, PushAPI } from '@pushprotocol/restapi';
 
 
 export type SDKSocketHookOptions = {
@@ -12,58 +12,65 @@ export type SDKSocketHookOptions = {
   env?: ENV,
   socketType?: 'chat' | 'notification',
   apiKey: string,
-  userAlice: PushAPI
+  userAlice: PushAPI | null
 };
 
-export const useSDKSocket = ({ account, env = ENV.PROD, socketType = 'chat',apiKey, userAlice }: SDKSocketHookOptions) => {
+export const useSDKSocket =({ account, env = ENV.PROD, socketType = 'chat',apiKey, userAlice }: SDKSocketHookOptions) => {
   
-  const [epnsSDKSocket, setEpnsSDKSocket] = useState<any>(null);
+  // const [epnsSDKSocket, setEpnsSDKSocket] = useState<any>(null);
   const [messagesSinceLastConnection, setMessagesSinceLastConnection] = useState<any>('');
-  const [isSDKSocketConnected, setIsSDKSocketConnected] = useState(epnsSDKSocket?.connected);
-
-  const addSocketEvents = () => {
-    console.warn('\n--> addSocketEvents');
-    epnsSDKSocket?.on(EVENTS.CONNECT, () => {
+  const [isSDKSocketConnected, setIsSDKSocketConnected] = useState<boolean>(false);
+  const [stream, setStream] = useState<any>(null);
+  
+  const addSocketEvents = async () => {
+    console.warn('\n--> addChatSocketEvents');
+    stream.on(CONSTANTS.STREAM.CONNECT, (a) => {
       console.log('CONNECTED: ');
       setIsSDKSocketConnected(true);
     });
+    await stream.connect();
 
-    epnsSDKSocket?.on(EVENTS.DISCONNECT, (err:any) => {
+    stream.on(CONSTANTS.STREAM.DISCONNECT, (err:any) => {
       console.log('DIS-CONNECTED: ',err);
       setIsSDKSocketConnected(false);
     });
+
+
+
     console.log('\t-->will attach eachMessage event now');
-    epnsSDKSocket?.on(EVENTS.CHAT_RECEIVED_MESSAGE, (chat: any) => {
+    stream.on(CONSTANTS.STREAM.CHAT, (message: any) => {
+      console.log('Encrypted Message Received');
       /**
        * We receive a 1 message.
        */
-      console.log("\n\n\n\neachMessage event: ", chat);
+      console.log("\n\n\n\neachMessage event: ", message);
 
       // do stuff with data
       setMessagesSinceLastConnection((chats: any) => {
-        return {...chat,decrypted:false};
+        return {...message,decrypted:false};
       });
+      // stream.disconnect();
     });
   };
 
+  console.log(messagesSinceLastConnection)
+
   const removeSocketEvents = () => {
-    console.warn('\n--> removeSocketEvents');
-    epnsSDKSocket?.off(EVENTS.CONNECT);
-    epnsSDKSocket?.off(EVENTS.DISCONNECT);
+    stream.disconnect();
   };
 
   useEffect(() => {
-    if (epnsSDKSocket) {
+    if (stream) {
       addSocketEvents();
     }
   
     return () => {
-      if (epnsSDKSocket) {
+      if (stream) {
         removeSocketEvents();
       }
     }
   // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, [epnsSDKSocket]);
+  }, [stream]);
 
 
   /**
@@ -73,21 +80,21 @@ export const useSDKSocket = ({ account, env = ENV.PROD, socketType = 'chat',apiK
    */
   useEffect(() => {
     if (account) {
-      if (epnsSDKSocket) {
+      if (stream) {
         // console.log('=================>>> disconnection in the hook');
-        epnsSDKSocket?.disconnect();
+        stream?.disconnect();
       }
       const main = async () => {
-        const connectionObject = createSocketConnection({
-          user: account,
-          env,
-          apiKey,
-          socketType,
-          socketOptions: { autoConnect: true , reconnectionAttempts: 3}
-        });
-        console.warn('new connection object: ', connectionObject);
-
-        setEpnsSDKSocket(connectionObject);
+        const stream = await userAlice.initStream(
+          [
+            CONSTANTS.STREAM.CHAT,
+          ],
+          {}
+        );
+      
+        console.warn('new connection object: ', stream);
+        setStream(stream);
+        // setEpnsSDKSocket(connectionObject);
       };
       main().catch((err) => console.error(err));
     }
@@ -96,7 +103,7 @@ export const useSDKSocket = ({ account, env = ENV.PROD, socketType = 'chat',apiK
   }, [account, env]);
 
   return {
-      epnsSDKSocket,
+      stream,
       isSDKSocketConnected,
       messagesSinceLastConnection
   }
diff --git a/packages/uiweb/src/lib/types/index.ts b/packages/uiweb/src/lib/types/index.ts
index da1c10f56..87e44121d 100644
--- a/packages/uiweb/src/lib/types/index.ts
+++ b/packages/uiweb/src/lib/types/index.ts
@@ -5,6 +5,14 @@ import { Bytes, TypedDataDomain, TypedDataField, providers } from 'ethers';
 
 export interface IMessageIPFS {
   cid? : string;
+  chatId? :string;
+  event? :string;
+  from?:string;
+  message?: IMessage;
+  meta?: any;
+  origin?:string;
+  reference? :string;
+  to?: string[];
   fromCAIP10: string;
   toCAIP10: string;
   fromDID: string;
@@ -20,6 +28,11 @@ export interface IMessageIPFS {
   icon?: ReactElement<string | any>;
 }
 
+interface IMessage {
+  content: string | undefined;
+  type: string | undefined;
+}
+
 export interface AccountEnvOptionsType {
   env?: ENV;
   account: string;