A real-time privacy-first social media platform leveraging feature-rich direct messaging text channels. Built as part of the course project for COSC 310 at UBC.
Made chat history functional again when clicking on a friend in the Friend's tab component by accounting for the privacy toggle at the FriendsTab component mount in the Accord application shell
Changed the profile icon in the FooterProfile component to be the profile button from Clerk
Integrated user profiles within chats by loading actual user profiles instead of the default guest fallback
Removed the UserButton component from the application shell menu bar as this has been moved to the FooterProfile component
Key Changes
The FriendsTab component has been modified to reflect the ChatProps in the Chat component such that privateChat and onMessageExchange are being passed
Page Structure
The FriendsTab component is already integrated within the main application shell
Documentation
The URL used to display the user profile icon is done via the imageUrl parameter from Clerk
Additional Considerations
The privacy toggle feature is still a work-in-progress as right now users can refresh their page to disable it. The solution to that would be to store the state of the toggle in localstorage. However, it actually makes more sense to include the toggle within each chat, and have it specific to each chat as right now its position in the application shell makes it look like it is a global toggle (which it is). This does not make sense as you don't want to have private/public chats with everyone. You want to isolate the state of the toggle to each user.
Summary of Changes
FriendsTab
component mount in theAccord
application shellFooterProfile
component to be the profile button fromClerk
UserButton
component from the application shell menu bar as this has been moved to theFooterProfile
componentKey Changes
FriendsTab
component has been modified to reflect theChatProps
in theChat
component such thatprivateChat
andonMessageExchange
are being passedPage Structure
Documentation
URL
used to display the user profile icon is done via theimageUrl
parameter from ClerkAdditional Considerations
localstorage
. However, it actually makes more sense to include the toggle within each chat, and have it specific to each chat as right now its position in the application shell makes it look like it is a global toggle (which it is). This does not make sense as you don't want to have private/public chats with everyone. You want to isolate the state of the toggle to each user.