Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion components/AppNotifications.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export default function AppNotifications(props: AppNotificationsProps) {
}, [props.notifications, showMoreClicked]);

const hasNewNotifications = useMemo(() => {
if (lastSeenNotification === -1) return true; // if no notification was seen
if (lastSeenNotification === -1) return props.notifications.length > 0;
return props.notifications.some(notification => notification.id > lastSeenNotification);
}, [lastSeenNotification, props.notifications]);

Expand Down
6 changes: 3 additions & 3 deletions components/inbox-mail/CreateNewMailModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -275,9 +275,9 @@ function UserSelector(props: UserSelectorProps) {
setFilteredUsers(
props.users.filter(
(u) =>
u.firstName.toLowerCase().includes(lower) ||
u.lastName.toLowerCase().includes(lower) ||
u.mail.toLowerCase().includes(lower)
(u.firstName && u.firstName.toLowerCase().includes(lower)) ||
(u.lastName && u.lastName.toLowerCase().includes(lower)) ||
(u.mail && u.mail.toLowerCase().includes(lower))
).filter((u) => !props.selectedUsers.some((selected) => selected.id === u.id))
);
}
Expand Down
4 changes: 2 additions & 2 deletions components/inbox-mail/InboxMailAdminPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ function InboxMailAdminPanel(props: InboxMailAdminPanelProps) {
{props.selectedThread.progressState !== InboxMailThreadSupportProgressState.PENDING && props.selectedThread.metaData?.supportOwnerName && (
<div className="bg-orange-400 text-white rounded-full px-2 py-0.5 text-xs flex items-center gap-x-2 ml-2">
<IconProgressCheck className="w-5 h-5" />
{props.selectedThread.metaData.supportOwnerName.first}{" "}
{props.selectedThread.metaData.supportOwnerName.last}
{props.selectedThread.metaData.supportOwnerName?.first}{" "}
{props.selectedThread.metaData.supportOwnerName?.last}
</div>
)}
</div>
Expand Down
2 changes: 1 addition & 1 deletion components/inbox-mail/InboxMailItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export default function ThreadMailItem(props: ThreadMailItemProps) {
</div>

<span className="text-sm text-gray-500">
{t("inboxMail.to")}: {props.mail.recipientNames.map((name) => `${name.first} ${name.last}`).join(", ")}
{t("inboxMail.to")}: {props.mail.recipientNames.map((name) => `${name?.first} ${name?.last}`).join(", ")}
</span>
</div>
</div>
Expand Down
36 changes: 20 additions & 16 deletions components/inbox-mail/helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ import { getNewInboxMailsInfo } from "./service-mail";

export const MAIL_LIMIT_PER_PAGE = 8;

const setInitials = (first: string, last: string) => first[0]?.toUpperCase() + last[0]?.toUpperCase();
const setInitials = (first?: string, last?: string) => {
const firstInitial = first && first.length > 0 ? first[0].toUpperCase() : "";
const lastInitial = last && last.length > 0 ? last[0].toUpperCase() : "";
return firstInitial + lastInitial;
};

export function prepareThreadDisplayData(
thread: InboxMailThread,
Expand Down Expand Up @@ -44,52 +48,52 @@ export function prepareThreadDisplayData(
}
else if (!thread.isAdminSupportThread) {
if (thread.latestMail.senderId === currentUser.id) {
displayName = thread.latestMail.recipientNames.map(r => `${r.first} ${r.last}`).join(", ");
displayName = thread.latestMail.recipientNames.map(r => `${r?.first} ${r?.last}`).join(", ");
const r = thread.latestMail.recipientNames[0];
displayInitials = setInitials(r.first, r.last);
displayInitials = setInitials(r?.first, r?.last);
setColor(recipientIds[0]);
} else {
const s = thread.latestMail.senderName;
const first = s.first ?? "";
const last = s.last ?? "";
const first = s?.first ?? "";
const last = s?.last ?? "";
displayName = `${first} ${last}`.trim();
displayInitials = setInitials(first, last);
setColor(thread.latestMail.senderId);
}
} else if (thread.isAdminSupportThread && thread.metaData?.autoGenerated) {
if (thread.latestMail.senderId) {
displayName = thread.latestMail.recipientNames.map(r => `${r.first} ${r.last}`).join(", ");
displayName = thread.latestMail.recipientNames.map(r => `${r?.first} ${r?.last}`).join(", ");
}
else {
displayName = `${thread.latestMail.senderName.first} ${thread.latestMail.senderName.last}`;
displayName = `${thread.latestMail.senderName?.first} ${thread.latestMail.senderName?.last}`;
DisplayIcon = IconBug
background = "#FFE5E5";
text = "#A30000";
}
} else if (thread.isAdminSupportThread && isAdmin && thread.latestMail.senderId === currentUser.id) {
displayName = `${thread.latestMail.senderName.first} ${thread.latestMail.senderName.last}`;
displayInitials = setInitials(thread.latestMail.senderName.first, thread.latestMail.senderName.last);
displayName = `${thread.latestMail.senderName?.first} ${thread.latestMail.senderName?.last}`;
displayInitials = setInitials(thread.latestMail.senderName?.first, thread.latestMail.senderName?.last);
setColor(thread.latestMail.senderId);

} else if (thread.isAdminSupportThread && isAdmin) {
if (thread.latestMail.senderId === currentUser.id && thread.latestMail.recipientNames.length === 0) {
displayName = `${thread.latestMail.senderName.first} ${thread.latestMail.senderName.last}`;
displayName = `${thread.latestMail.senderName?.first} ${thread.latestMail.senderName?.last}`;
} else if (thread.latestMail.senderId === currentUser.id) {
displayName = thread.latestMail.recipientNames.map(r => `${r.first} ${r.last}`).join(", ");
displayName = thread.latestMail.recipientNames.map(r => `${r?.first} ${r?.last}`).join(", ");
const r = thread.latestMail.recipientNames[0];
displayInitials = setInitials(r.first, r.last);
displayInitials = setInitials(r?.first, r?.last);
setColor(recipientIds[0]);
} else {
const s = thread.latestMail.senderName;
displayName = `${s.first} ${s.last}`;
displayInitials = setInitials(s.first ?? "", s.last ?? "");
displayName = `${s?.first} ${s?.last}`;
displayInitials = setInitials(s?.first ?? "", s?.last ?? "");
setColor(thread.latestMail.senderId ?? thread.createdBy);
}
} else {
if (thread.latestMail.senderId === currentUser.id) {
displayName = thread.latestMail.recipientNames.map(r => `${r.first} ${r.last}`).join(", ");
displayName = thread.latestMail.recipientNames.map(r => `${r?.first} ${r?.last}`).join(", ");
} else {
displayName = `${thread.latestMail.senderName.first} ${thread.latestMail.senderName.last}`;
displayName = `${thread.latestMail.senderName?.first} ${thread.latestMail.senderName?.last}`;
}
}

Expand Down