Skip to content

Commit

Permalink
Merge pull request #139 from sandboxnu/SCRUM-126
Browse files Browse the repository at this point in the history
SCRUM-126 Scroll to bottom of messages when opening messages/request screen
  • Loading branch information
sinhaaaryan authored Dec 16, 2024
2 parents f7945b6 + 10ddb37 commit 1c0b9b9
Showing 1 changed file with 29 additions and 11 deletions.
40 changes: 29 additions & 11 deletions src/components/Messages/MessageContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -116,22 +116,41 @@ const MessageContent = ({ selectedUser }: MessageContentProps) => {

const currentUserId = user?.id;

const scrollToBottom = useCallback(() => {
if (messagesEndRef.current) {
const container = messagesEndRef.current.closest('.overflow-y-auto');
if (container) {
container.scrollTop = container.scrollHeight;
}
}
}, []);

useEffect(() => {
scrollToBottom();
}, [allMessages, scrollToBottom]);

return (
<div className="flex h-full flex-1 flex-col overflow-y-auto overflow-x-hidden bg-white p-4">
{messagesByDate.map(({ date, messages }) => (
{messagesByDate.map(({ date, messages }, dateIndex) => (
<div key={date}>
<div className="text-md my-2 text-center text-gray-500">
{date ? format(date, "EEEE, MMMM d, yyyy") : ""}
</div>
{messages.map((message) => {
{messages.map((message, messageIndex) => {
const isFromCurrentUser = message.userId === currentUserId;
const messageTime = message.dateCreated
? format(new Date(message.dateCreated), "h:mm aa")
: "";

// Add ref to the last message of the last date group
const isLastMessage =
dateIndex === messagesByDate.length - 1 &&
messageIndex === messages.length - 1;

return (
<div
key={message.id}
ref={isLastMessage ? messagesEndRef : null}
className={`mb-4 flex flex-col ${
isFromCurrentUser ? "items-end pr-10" : "items-start pl-10"
}`}
Expand All @@ -141,14 +160,14 @@ const MessageContent = ({ selectedUser }: MessageContentProps) => {
</span>
<div
className={`max-w-[50%] rounded-lg px-4 py-2 text-base
sm:max-w-[50%] sm:text-sm
md:max-w-[50%] md:text-base
lg:max-w-[50%] lg:text-xl
${
isFromCurrentUser
? "bg-northeastern-red text-white"
: "bg-gray-200 text-black"
}`}
sm:max-w-[50%] sm:text-sm
md:max-w-[50%] md:text-base
lg:max-w-[50%] lg:text-xl
${
isFromCurrentUser
? "bg-northeastern-red text-white"
: "bg-gray-200 text-black"
}`}
>
{message.content}
</div>
Expand All @@ -157,7 +176,6 @@ const MessageContent = ({ selectedUser }: MessageContentProps) => {
})}
</div>
))}
<div ref={messagesEndRef} />
</div>
);
};
Expand Down

0 comments on commit 1c0b9b9

Please sign in to comment.