diff --git a/CHANGELOG.md b/CHANGELOG.md index 69d524c..d1d7fe3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ and this project adheres to ## [Unreleased] +- 🐛(fix) add enabled update your mailbox + ## [1.19.0] - 2025-09-03 - ✨(front) add modal update mailboxes #954 diff --git a/src/frontend/apps/desk/src/features/mail-domains/mailboxes/components/panel/MailBoxesListView.tsx b/src/frontend/apps/desk/src/features/mail-domains/mailboxes/components/panel/MailBoxesListView.tsx index 4ff8d31..54326d4 100644 --- a/src/frontend/apps/desk/src/features/mail-domains/mailboxes/components/panel/MailBoxesListView.tsx +++ b/src/frontend/apps/desk/src/features/mail-domains/mailboxes/components/panel/MailBoxesListView.tsx @@ -4,6 +4,7 @@ import { useEffect, useMemo, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Box, Tag, Text, TextErrors } from '@/components'; +import { useAuthStore } from '@/core/auth'; import { MailDomain } from '@/features/mail-domains/domains'; import { MailDomainMailbox, @@ -40,6 +41,7 @@ export function MailBoxesListView({ querySearch, }: MailBoxesListViewProps) { const { t } = useTranslation(); + const { userData } = useAuthStore(); const [sortModel] = useState([]); @@ -68,30 +70,33 @@ export function MailBoxesListView({ return []; } return data.pages.flatMap((page) => - page.results.map((mailbox: MailDomainMailbox) => ({ - id: mailbox.id, - email: `${mailbox.local_part}@${mailDomain.name}`, - first_name: mailbox.first_name, - last_name: mailbox.last_name, - name: `${mailbox.first_name} ${mailbox.last_name}`, - local_part: mailbox.local_part, - secondary_email: mailbox.secondary_email, - status: mailbox.status, - mailbox, - })), + page.results.map((mailbox: MailDomainMailbox) => { + const email = `${mailbox.local_part}@${mailDomain.name}`; + const isCurrentUser = userData?.email === email; + + return { + id: mailbox.id, + email, + name: `${mailbox.first_name} ${mailbox.last_name}`, + first_name: mailbox.first_name, + last_name: mailbox.last_name, + local_part: mailbox.local_part, + secondary_email: mailbox.secondary_email, + status: mailbox.status, + mailbox, + isCurrentUser, + }; + }), ); - }, [data, mailDomain]); + }, [data, mailDomain, userData?.email]); const filteredMailboxes = useMemo(() => { - if (typeof querySearch !== 'string' || !querySearch) { + if (!querySearch) { return mailboxes; } - // eslint-disable-next-line @typescript-eslint/no-unsafe-call const lowerCaseSearch = querySearch.toLowerCase(); - return mailboxes.filter( - (mailbox) => - typeof mailbox.email === 'string' && - mailbox.email.toLowerCase().includes(lowerCaseSearch), + return mailboxes.filter((mailbox) => + mailbox.email.toLowerCase().includes(lowerCaseSearch), ); }, [querySearch, mailboxes]); @@ -133,7 +138,14 @@ export function MailBoxesListView({ { field: 'email', headerName: `${t('Address')} • ${filteredMailboxes.length}`, - renderCell: ({ row }) => {row.email}, + renderCell: ({ row }) => ( + + {row.email} + + ), }, { field: 'name', @@ -145,7 +157,7 @@ export function MailBoxesListView({ $theme="greyscale" $css="text-transform: capitalize;" > - {`${row.first_name} ${row.last_name}`} + {row.name} ), }, diff --git a/src/frontend/apps/desk/src/features/mail-domains/mailboxes/components/panel/PanelActions.tsx b/src/frontend/apps/desk/src/features/mail-domains/mailboxes/components/panel/PanelActions.tsx index 9be0495..2d5491e 100644 --- a/src/frontend/apps/desk/src/features/mail-domains/mailboxes/components/panel/PanelActions.tsx +++ b/src/frontend/apps/desk/src/features/mail-domains/mailboxes/components/panel/PanelActions.tsx @@ -69,7 +69,7 @@ export const PanelActions = ({ mailDomain, mailbox }: PanelActionsProps) => { if ( mailbox.status === 'pending' || mailbox.status === 'failed' || - mailDomain.abilities.post === false + (mailDomain.abilities.post === false && !mailbox.isCurrentUser) ) { return null; } diff --git a/src/frontend/apps/desk/src/features/mail-domains/mailboxes/types.ts b/src/frontend/apps/desk/src/features/mail-domains/mailboxes/types.ts index 19afcaf..c231eb2 100644 --- a/src/frontend/apps/desk/src/features/mail-domains/mailboxes/types.ts +++ b/src/frontend/apps/desk/src/features/mail-domains/mailboxes/types.ts @@ -18,9 +18,12 @@ export type MailDomainMailboxStatus = export interface ViewMailbox { id: string; email: string; + name: string; first_name: string; last_name: string; local_part: string; secondary_email: string; status: MailDomainMailboxStatus; + mailbox: MailDomainMailbox; + isCurrentUser?: boolean; }