Archive prompts for the 28th commits
This commit is contained in:
parent
4ef4db8781
commit
b3bc4a251a
|
@ -0,0 +1,94 @@
|
|||
Our previous conversation revolved around transforming the
|
||||
Fakebook application from a Firebase-based social network to
|
||||
one using AINIRO Magic as the backend. We systematically
|
||||
addressed several critical components:
|
||||
|
||||
1.Authentication and Session Management
|
||||
• Implemented robust session restoration
|
||||
• Fixed user online/offline status tracking
|
||||
• Ensured smooth login and logout processes
|
||||
|
||||
2.User and Profile Handling
|
||||
• Created Redux slices for managing user data
|
||||
• Fixed issues with user profile rendering
|
||||
• Implemented photo and post synchronization
|
||||
• Corrected user indexing for multiple users with same name
|
||||
|
||||
3.Messaging Capabilities
|
||||
• Developed REST API integration for message retrieval
|
||||
• Created SignalR listeners for real-time message updates
|
||||
• Implemented functions for sending and marking messages as
|
||||
read
|
||||
• Mapped Magic backend message format to existing frontend
|
||||
expectations
|
||||
|
||||
4.Backend Architecture
|
||||
• Replaced Firebase with Magic REST endpoints
|
||||
• Used SignalR for live updates across different application
|
||||
features
|
||||
• Implemented generic fetch and authentication helpers
|
||||
• Created mapping functions to normalize data from the new
|
||||
backend
|
||||
|
||||
Throughout the process, we maintained a focus on minimal, surgical changes, ensuring that the existing application structure remained largely intact while upgrading the underlying technology. The goal was to create a seamless transition from the old backend to the new Magic-powered system, with improved performance and real-time capabilities.
|
||||
++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
Three things are not working:
|
||||
|
||||
1.Online status updates
|
||||
2.Message updates
|
||||
3.I can send new messages, that's fine. When I am receiving
|
||||
the new message, it saves the new one, but I am losing old
|
||||
ones. I also cannot close the messaging window, when I have
|
||||
a new message, because it does not update the read status.
|
||||
|
||||
Let's see first the main files again:
|
||||
// src/backend/backend.js
|
||||
2.usersSlice.js :
|
||||
// src/features/usersSlice/usersSlice.js
|
||||
3. currentUserSlice.js :
|
||||
// src/features/currentUserSlice/currentUsersSlice.js
|
||||
First the online status issue needs to be solved
|
||||
|
||||
OK, the online status problem is sorted. The listener had an
|
||||
undefined helper. I just needed to parse the string, which the
|
||||
listener gets, so add a JSON.parse(raw).
|
||||
|
||||
Let me give you the reducer and you give me back the full patched
|
||||
code please.
|
||||
// src/features/incomingMessagesSlice/incomingMessagesSlice.js
|
||||
|
||||
Let's do the same for the outgoing message slice.
|
||||
Old code:
|
||||
// src/features/outgoingMessagesSlice/outgoingMessagesSlice.js
|
||||
|
||||
OK we still have the issue with the update of the read status.
|
||||
|
||||
You misunderstand me. The name of the property is isRead in both
|
||||
system. The problem is that it does not get updated for some
|
||||
reason.
|
||||
|
||||
can you rewrite the mapping function on a way if a property is
|
||||
not in the object, it should not put it there?
|
||||
|
||||
This mapping transforms from the Magic data to the Firebase like.
|
||||
|
||||
OK, you made the timestamp iso in one of the previous snippets.
|
||||
Can we keep it?
|
||||
|
||||
You used the Magic timestamp format, just replaced the " " to
|
||||
"T" and added the "Z" to the end. Do it like that please.
|
||||
|
||||
Can we check if timestamp is a valid date and only convert it,
|
||||
in the other case we should use current UTC date
|
||||
|
||||
I do not want the timestamp if it's missing
|
||||
|
||||
can we write the map function with a loop which only modifies
|
||||
the existing fields?
|
||||
|
||||
I think we should get rid off the fakebook.message.put listener,
|
||||
because its only task is to update the isRead property, when it's
|
||||
updated in the server. We can do an optimistic update in Redux
|
||||
directly instead in this case. Do these for me please.
|
||||
|
Loading…
Reference in New Issue