diff --git a/guard_app/src/screen/MessagesScreen.tsx b/guard_app/src/screen/MessagesScreen.tsx index 5cf9db7a..6cc3880c 100644 --- a/guard_app/src/screen/MessagesScreen.tsx +++ b/guard_app/src/screen/MessagesScreen.tsx @@ -39,6 +39,7 @@ type Message = { context: 'shift' | 'general'; shiftTitle?: string; status?: 'sending' | 'sent' | 'delivered' | 'read'; + isMe: boolean; }; type ConversationItem = { @@ -105,6 +106,7 @@ export default function MessagesScreen() { return { id: dto._id ?? `${dto.timestamp}-${senderId ?? 'unknown'}`, from: role, + isMe: Boolean(isCurrentUser), senderName: dto.sender?.name ?? dto.sender?.email ?? 'Unknown', text: dto.content, timestamp: dto.timestamp, @@ -259,6 +261,7 @@ export default function MessagesScreen() { const newMsg: Message = { id: newId, from: currentUser?.role === 'employer' ? 'employer' : 'guard', + isMe: true, senderName: currentUser?.name ?? 'You', text: input.trim(), timestamp: new Date().toISOString(), @@ -296,25 +299,18 @@ export default function MessagesScreen() { Alert.alert('Error', 'Failed to send message'); } }; - const renderMessage = ({ item }: { item: Message }) => ( - - + + {item.senderName} • {item.from === 'guard' ? 'Guard' : 'Employer'} - - {item.text} - + {item.text} - + {formatTime(item.timestamp)} - {item.from === 'guard' && item.status && ( - • {item.status} - )} + {item.isMe && item.status && • {item.status}} @@ -645,7 +641,18 @@ const getStyles = (colors: AppColors) => }, newConversationBtnText: { color: colors.white, fontWeight: '700', fontSize: 13 }, - messageRow: { marginBottom: 10 }, + messageRow: { + marginBottom: 10, + flexDirection: 'row', + }, + + rowRight: { + justifyContent: 'flex-end', + }, + + rowLeft: { + justifyContent: 'flex-start', + }, bubble: { maxWidth: '75%', padding: 12,