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();
});
});