diff --git a/App.tsx b/App.tsx index 5be14ce..306d0ce 100644 --- a/App.tsx +++ b/App.tsx @@ -44,13 +44,16 @@ import * as queries from './src/graphql/queries'; import { Amplify, Auth } from 'aws-amplify'; // import awsconfig from './aws-exports'; import awsconfig from './src/aws-exports' -import Message from './app/Screens/Messege/Message'; - +import ChatScreen from './app/Screens/Messege/Message'; +import SocketIOClient from 'socket.io-client'; Amplify.configure(awsconfig); const todo = { name: "My first todo", description: "Hello world!" }; const Stack = createNativeStackNavigator(); + + + function App(): JSX.Element { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); @@ -106,8 +109,8 @@ function App(): JSX.Element { /> diff --git a/app/Components/Tags/Tags.jsx b/app/Components/Tags/Tags.jsx index 3195277..b9cd6dc 100644 --- a/app/Components/Tags/Tags.jsx +++ b/app/Components/Tags/Tags.jsx @@ -21,21 +21,21 @@ const Tags = ({navigation}) => { const [gender,setGender] = useState('') - // const deleteEntry = async () =>{ - // try { - // const todoDetails = { - // id: '7a4f3b79-fcc0-4dcb-9f48-e01260b8ff82', - // }; + const deleteEntry = async () =>{ + try { + const todoDetails = { + id: 'b432b294-bc14-43f1-a3ab-68316a125602', + }; - // const deletedTodo = await API.graphql({ - // query: deleteUsersData, - // variables: { input: todoDetails } - // }); - // console.log(deletedTodo) - // } catch (error) { - // console.log(error) - // } - // } + const deletedTodo = await API.graphql({ + query: deleteUsersData, + variables: { input: todoDetails } + }); + console.log(deletedTodo,"deleted data") + } catch (error) { + console.log(error,"err") + } + } const postUserData = async () => { @@ -150,8 +150,8 @@ function changeScreen(screenName) { />: { - // handlePress(); - deleteEntry() + handlePress(); + // deleteEntry() }} style={{ marginTop: 30, diff --git a/app/Screens/Messege/Message.js b/app/Screens/Messege/Message.js index 389911d..2dde66a 100644 --- a/app/Screens/Messege/Message.js +++ b/app/Screens/Messege/Message.js @@ -1,88 +1,59 @@ -import React, { useEffect, useState } from 'react'; -import { View, Text, FlatList, TextInput, TouchableOpacity } from 'react-native'; -import { API, graphqlOperation, Auth } from 'aws-amplify'; -// import { listMessages } from './src/graphql/queries'; -// import { onCreateMessage } from './src/graphql/subscriptions'; -// import { createMessage } from './src/graphql/mutations'; -import { listMessages } from '../../../src/graphql/queries'; -import { onCreateMessage } from '../../../src/graphql/subscriptions'; -import { createMessage } from '../../../src/graphql/mutations'; +import React,{useState,useEffect} from 'react'; +import { StyleSheet, Text, View } from 'react-native'; +import { createStackNavigator } from '@react-navigation/native'; +import SocketIOClient from 'socket.io-client'; +import { TextInput,Button } from 'react-native'; +const socket = SocketIOClient('http://localhost:3000'); + +socket.on('connect', () => { + console.log('Connected to server'); +}); + +socket.on('disconnect', () => { + console.log('Disconnected from server'); +}); + +socket.on('chat message', (msg) => { + console.log('New message:', msg); +}); + +const sendMessage = (msg) => { + socket.emit('chat message', msg); +}; -const Message = () => { +const ChatScreen = () => { const [messages, setMessages] = useState([]); - const [newMessage, setNewMessage] = useState(''); + const [message, setMessage] = useState(''); useEffect(() => { - fetchMessages(); // Fetch existing messages - subscribeToNewMessages(); // Subscribe to real-time message updates - }, []); - - const fetchMessages = async () => { - try { - const messageData = await API.graphql(graphqlOperation(listMessages)); - setMessages(messageData.data.listMessages.items); - } catch (error) { - console.error('Error fetching messages:', error); - } - }; - - const subscribeToNewMessages = async () => { - const subscription = API.graphql(graphqlOperation(onCreateMessage)).subscribe({ - next: (eventData) => { - const newMessage = eventData.value.data.onCreateMessage; - setMessages((prevMessages) => [...prevMessages, newMessage]); - }, - error: (error) => { - console.error('Error subscribing to new messages:', error); - }, + socket.on('chat message', (msg) => { + setMessages([...messages, msg]); }); + }, [messages]); - return () => subscription.unsubscribe(); // Cleanup the subscription when component unmounts - }; - - const handleSendMessage = async () => { - if (!newMessage) return; - - const message = { - content: newMessage, - createdAt: new Date().toISOString(), - updatedAt: new Date().toISOString(), - }; - - try { - await API.graphql(graphqlOperation(createMessage, { input: message })); - setNewMessage(''); - } catch (error) { - console.error('Error sending message:', error); - } + const handleSendMessage = () => { + sendMessage(message); + setMessage(''); }; - const renderMessageItem = ({ item }) => ( - - {item.content} - - ); - return ( - item.id} - /> + Chat Screen - setNewMessage(text)} - /> - - Send - + {messages.map((msg, index) => ( + {msg} + ))} + +