From f30398fbc72821acb5cbcf684e4de4287a21ac3b Mon Sep 17 00:00:00 2001 From: elvoisin <95469923+elvoisin@users.noreply.github.com> Date: Mon, 23 Jun 2025 16:27:52 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(front)=20fix=20button=20add=20mail?= =?UTF-8?q?=20domain=20(#932)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix button rules + fix bad wording --- CHANGELOG.md | 1 + .../desk/src/cunningham/cunningham-style.css | 6 ++- .../components/panel/MailBoxesListView.tsx | 1 + .../{[slug]/index.tsx => [slug].tsx} | 0 .../pages/mail-domains/[slug]/accesses.tsx | 51 ------------------- .../desk/src/pages/mail-domains/index.tsx | 31 ++--------- .../mail-domain-create-mailbox.spec.ts | 2 +- .../apps/e2e/__tests__/app-desk/menu.spec.ts | 14 ++--- 8 files changed, 16 insertions(+), 90 deletions(-) rename src/frontend/apps/desk/src/pages/mail-domains/{[slug]/index.tsx => [slug].tsx} (100%) delete mode 100644 src/frontend/apps/desk/src/pages/mail-domains/[slug]/accesses.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index dbedce9..1ce759d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to ### Added +- 🐛(front) fix button add mail domain - ✨(teams) add matrix webhook for teams #904 - ✨(resource-server) add SCIM /Me endpoint #895 - 🔧(git) set LF line endings for all text files #928 diff --git a/src/frontend/apps/desk/src/cunningham/cunningham-style.css b/src/frontend/apps/desk/src/cunningham/cunningham-style.css index 155a679..f561022 100644 --- a/src/frontend/apps/desk/src/cunningham/cunningham-style.css +++ b/src/frontend/apps/desk/src/cunningham/cunningham-style.css @@ -243,6 +243,10 @@ input:-webkit-autofill:focus { border-bottom: 1px var(--c--theme--colors--greyscale-100) solid; } +.c__datagrid__table__container > table tbody tr:hover { + background-color: var(--c--theme--colors--greyscale-050); +} + .c__datagrid__table__container > table tbody { background-color: var(--c--components--datagrid--body--background-color); color: var(--c--theme--colors--greyscale-900); @@ -259,7 +263,7 @@ input:-webkit-autofill:focus { .c__datagrid__table__container > table th:first-child, .c__datagrid__table__container > table td:first-child { - padding-left: 0; + padding-left: 15px; } .c__datagrid__table__container > table tr:last-child { 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 a007531..29bdcf8 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 @@ -97,6 +97,7 @@ export function MailBoxesListView({ { field: 'email', headerName: `${t('Address')} • ${filteredMailboxes.length}`, + renderCell: ({ row }) => {row.email}, }, { field: 'name', diff --git a/src/frontend/apps/desk/src/pages/mail-domains/[slug]/index.tsx b/src/frontend/apps/desk/src/pages/mail-domains/[slug].tsx similarity index 100% rename from src/frontend/apps/desk/src/pages/mail-domains/[slug]/index.tsx rename to src/frontend/apps/desk/src/pages/mail-domains/[slug].tsx diff --git a/src/frontend/apps/desk/src/pages/mail-domains/[slug]/accesses.tsx b/src/frontend/apps/desk/src/pages/mail-domains/[slug]/accesses.tsx deleted file mode 100644 index e6d4fd0..0000000 --- a/src/frontend/apps/desk/src/pages/mail-domains/[slug]/accesses.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { Loader } from '@openfun/cunningham-react'; -import { useRouter as useNavigate } from 'next/navigation'; -import { useRouter } from 'next/router'; -import { ReactElement } from 'react'; - -import { Box } from '@/components'; -import { TextErrors } from '@/components/TextErrors'; -import { - MailDomainsLayout, - useMailDomain, -} from '@/features/mail-domains/domains'; -import { NextPageWithLayout } from '@/types/next'; - -const MailDomainAccessesPage: NextPageWithLayout = () => { - const router = useRouter(); - - if (router?.query?.slug && typeof router.query.slug !== 'string') { - throw new Error('Invalid mail domain slug'); - } - - const { slug } = router.query; - - const navigate = useNavigate(); - - const { error, isError, isLoading } = useMailDomain({ slug: String(slug) }); - - if (error?.status === 404) { - navigate.replace(`/404`); - return null; - } - - if (isError && error) { - return ; - } - - if (isLoading) { - return ( - - - - ); - } - - return null; -}; - -MailDomainAccessesPage.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default MailDomainAccessesPage; diff --git a/src/frontend/apps/desk/src/pages/mail-domains/index.tsx b/src/frontend/apps/desk/src/pages/mail-domains/index.tsx index 3d9c6ac..c74a413 100644 --- a/src/frontend/apps/desk/src/pages/mail-domains/index.tsx +++ b/src/frontend/apps/desk/src/pages/mail-domains/index.tsx @@ -1,9 +1,8 @@ -import { Button, Input, Tooltip } from '@openfun/cunningham-react'; +import { Button, Input } from '@openfun/cunningham-react'; import React, { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import { Box, Text } from '@/components'; -import { useAuthStore } from '@/core/auth'; import { useCunninghamTheme } from '@/cunningham'; import { ModalAddMailDomain } from '@/features/mail-domains/domains/components/ModalAddMailDomain'; import { MailDomainsListView } from '@/features/mail-domains/domains/components/panel/MailDomainsListView'; @@ -12,8 +11,6 @@ import { NextPageWithLayout } from '@/types/next'; const Page: NextPageWithLayout = () => { const { t } = useTranslation(); - const { userData } = useAuthStore(); - const can_create = userData?.abilities?.mailboxes.can_create; const [isModalOpen, setIsModalOpen] = React.useState(false); const [searchValue, setSearchValue] = React.useState(''); const { colorsTokens } = useCunninghamTheme(); @@ -106,32 +103,12 @@ const Page: NextPageWithLayout = () => { - {can_create ? ( - - ) : ( - -
- -
-
- )} +
- {!can_create && ( -

- {t('Click on mailbox to view details')} -

- )} - {isModalOpen && } diff --git a/src/frontend/apps/e2e/__tests__/app-desk/mail-domain-create-mailbox.spec.ts b/src/frontend/apps/e2e/__tests__/app-desk/mail-domain-create-mailbox.spec.ts index c99ef17..f80d3bd 100644 --- a/src/frontend/apps/e2e/__tests__/app-desk/mail-domain-create-mailbox.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-desk/mail-domain-create-mailbox.spec.ts @@ -238,7 +238,7 @@ test.describe('Mail domain create mailbox', () => { await inputLastName.fill('Doe'); await inputLocalPart.fill('john.doe'); - await expect(page.locator('span').getByText('@domain.fr')).toBeVisible(); + await expect(page.getByText('@domain.fr', { exact: true })).toBeVisible(); await inputSecondaryEmailAddress.fill('john.doe@mail.com'); await page.getByRole('button', { name: 'Create' }).click(); diff --git a/src/frontend/apps/e2e/__tests__/app-desk/menu.spec.ts b/src/frontend/apps/e2e/__tests__/app-desk/menu.spec.ts index 0b8756a..0d2d9e1 100644 --- a/src/frontend/apps/e2e/__tests__/app-desk/menu.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-desk/menu.spec.ts @@ -76,17 +76,11 @@ test.describe('Menu', () => { const menu = page.locator('menu').first(); - let buttonMenu = menu.getByLabel(`Teams button`); + const buttonMenu = menu.getByLabel(`Teams button`); await buttonMenu.click(); await expect( page.getByText('Click on team to view details').first(), ).toBeVisible(); - - buttonMenu = menu.getByLabel(`Mail Domains`); - await buttonMenu.click(); - await expect( - page.getByText('Click on mailbox to view details').first(), - ).toBeVisible(); }); test(`it checks that the menu is not displaying when all abilities`, async ({ @@ -122,12 +116,12 @@ test.describe('Menu', () => { const menu = page.locator('menu').first(); - let buttonMenu = menu.getByLabel(`Teams button`); + const buttonMenu = menu.getByLabel(`Teams button`); await buttonMenu.click(); await expect(page.getByText('Create a new team').first()).toBeVisible(); - buttonMenu = menu.getByLabel(`Mail Domains`); - await buttonMenu.click(); + const buttonMenuMailDomain = menu.getByLabel(`Mail Domains`); + await buttonMenuMailDomain.click(); await expect(page.getByText('Add a mail domain').first()).toBeVisible(); }); });