residues nextCursor removed
This commit is contained in:
@@ -13,6 +13,7 @@ type MessagesProps = {
|
||||
};
|
||||
export async function getContactsList(): Promise<ContactsProps[]> {
|
||||
try {
|
||||
console.log('getcontactslisklsdfjklfsdjklsdfjklsdfjklsdfjklsdfjkl');
|
||||
const response = await axiosClient.get(`/api/chat/contacts`);
|
||||
console.log(response.data);
|
||||
return response.data;
|
||||
@@ -51,9 +52,9 @@ export async function getMessages(
|
||||
contact: string | null,
|
||||
cursor: number | null = 0,
|
||||
limit: number = 50,
|
||||
): Promise<{ messages: MessagesProps[]; nextCursor: number | null }> {
|
||||
): Promise<{ messages: MessagesProps[] }> {
|
||||
if (contact === null || cursor === null) {
|
||||
return { messages: [], nextCursor: null };
|
||||
return { messages: [] };
|
||||
}
|
||||
try {
|
||||
const response = await axiosClient.get(
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { socket } from '../../socket/socket.tsx';
|
||||
import { useEffect } from 'react';
|
||||
import { deleteContact, getContactsList } from '../../api/contactsApi.tsx';
|
||||
|
||||
@@ -53,21 +52,20 @@ function ContactsList({
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (!socket) {
|
||||
console.error('Socket not initialized');
|
||||
return;
|
||||
}
|
||||
// if (!socket) {
|
||||
// //console.error('Socket not initialized');
|
||||
// }
|
||||
|
||||
fetchContacts().catch((e) =>
|
||||
console.error('Failed to fetch contacts: ', e),
|
||||
);
|
||||
|
||||
return () => {
|
||||
if (!socket) {
|
||||
console.error('Socket not initialized');
|
||||
return;
|
||||
}
|
||||
};
|
||||
// return () => {
|
||||
// if (!socket) {
|
||||
// console.error('Socket not initialized');
|
||||
// return;
|
||||
// }
|
||||
// };
|
||||
}, []);
|
||||
|
||||
function removeContact(usernamecontact: string) {
|
||||
|
||||
@@ -29,7 +29,7 @@ type ContactObjProps = {
|
||||
function Chat() {
|
||||
const [contactsList, setContactsList] = useState<ContactsProps[]>([]);
|
||||
const [currentContact, setCurrentContact] = useState<string | null>(null);
|
||||
const [cursor, setCursor] = useState<number | null>(0);
|
||||
const [cursor, setCursor] = useState<number>(0);
|
||||
const [messages, setMessages] = useState<ChatMessages[]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -73,8 +73,8 @@ function Chat() {
|
||||
};
|
||||
|
||||
const fetchPreviousMessages = async (contact: string | null) => {
|
||||
const messages = await getMessages(contact, cursor, 50);
|
||||
console.log('Fetching messages for: ', contact, 'with cursor: ', cursor);
|
||||
const messages = await getMessages(contact, cursor, 50);
|
||||
messages.messages.forEach((msg) => {
|
||||
setMessages((prevMessages) => {
|
||||
if (!prevMessages.some((m) => m.message_id === msg.message_id)) {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"dev:client": "cd client && npm run dev",
|
||||
"dev:server": "cd server && nodemon server",
|
||||
"install:all": "concurrently \"npm install\" \"cd client && npm install\" \"cd server && npm install\"",
|
||||
"build": "concurrently \"cd client && npm run build\" \"cd server && node server.js\""
|
||||
"build": "npm run build"
|
||||
},
|
||||
|
||||
"devDependencies": {
|
||||
|
||||
@@ -127,7 +127,7 @@ async function getMessages(username, recipient, limit = 50, cursor = 0) {
|
||||
ORDER BY message_id DESC
|
||||
LIMIT $4;
|
||||
`;
|
||||
params = [username, recipient, cursor, limit + 1];
|
||||
params = [username, recipient, cursor, limit];
|
||||
} else {
|
||||
query = `
|
||||
SELECT * FROM messages
|
||||
@@ -135,7 +135,7 @@ async function getMessages(username, recipient, limit = 50, cursor = 0) {
|
||||
ORDER BY message_id DESC
|
||||
LIMIT $3;
|
||||
`;
|
||||
params = [username, recipient, limit + 1];
|
||||
params = [username, recipient, limit];
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -145,10 +145,7 @@ async function getMessages(username, recipient, limit = 50, cursor = 0) {
|
||||
messages = messages.reverse();
|
||||
}
|
||||
|
||||
const nextCursor =
|
||||
messages.length > limit ? messages[limit - 2].message_id : null;
|
||||
|
||||
return { messages: messages, nextCursor: nextCursor };
|
||||
return messages;
|
||||
} catch (e) {
|
||||
console.error("Failed to get messages ", e);
|
||||
}
|
||||
@@ -197,6 +194,7 @@ async function changePassword(username, newPassword) {
|
||||
}
|
||||
|
||||
async function insertContact(username, usernameContact, read) {
|
||||
const timestamp = getTime();
|
||||
console.log(
|
||||
`insertContact username: ${username}, usernameContact: ${usernameContact}, read: ${read}`,
|
||||
);
|
||||
@@ -208,7 +206,7 @@ async function insertContact(username, usernameContact, read) {
|
||||
DO NOTHING;
|
||||
`;
|
||||
try {
|
||||
await client.query(query, [username, usernameContact, read]);
|
||||
await client.query(query, [username, usernameContact, timestamp, read]);
|
||||
} catch (e) {
|
||||
console.error("Failed to insert contact ", e);
|
||||
}
|
||||
|
||||
@@ -189,14 +189,19 @@ app.get("/api/chat/messages/:contact", authorizeUser, async (req, res) => {
|
||||
const limit = parseInt(req.query.limit);
|
||||
const cursor = parseInt(req.query.cursor);
|
||||
|
||||
const { messages, nextCursor } = await getMessages(
|
||||
const messages = await getMessages(
|
||||
req.user.username,
|
||||
req.params.contact,
|
||||
limit,
|
||||
cursor,
|
||||
);
|
||||
if (messages && messages.length < limit) {
|
||||
return res.status(404).json({ message: "No more messages" });
|
||||
}
|
||||
|
||||
console.log("MESSAGESLENGTH: ", messages.length, limit);
|
||||
console.log("Sent messages for: ", req.user.username, "messages: ", messages);
|
||||
return res.status(200).json({ messages, nextCursor });
|
||||
return res.status(200).json({ messages });
|
||||
});
|
||||
|
||||
initializeSocket(io);
|
||||
|
||||
Reference in New Issue
Block a user