diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-trashbin.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-trashbin.spec.ts
index 6f1a56da..3b723404 100644
--- a/src/frontend/apps/e2e/__tests__/app-impress/doc-trashbin.spec.ts
+++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-trashbin.spec.ts
@@ -29,10 +29,12 @@ test.describe('Doc Trashbin', () => {
const row1 = await getGridRow(page, title1);
await clickInGridMenu(page, row1, 'Delete');
await page.getByRole('button', { name: 'Delete document' }).click();
+ await expect(row1.getByText(title1)).toBeHidden();
const row2 = await getGridRow(page, title2);
await clickInGridMenu(page, row2, 'Delete');
await page.getByRole('button', { name: 'Delete document' }).click();
+ await expect(row2.getByText(title2)).toBeHidden();
await page.getByRole('link', { name: 'Trashbin' }).click();
@@ -51,5 +53,25 @@ test.describe('Doc Trashbin', () => {
name: 'Open the sharing settings for the document',
}),
).toBeDisabled();
+
+ await clickInGridMenu(page, row2, 'Restore');
+
+ await expect(row2.getByText(title2)).toBeHidden();
+ await page.getByRole('link', { name: 'All docs' }).click();
+ const row2Restored = await getGridRow(page, title2);
+ await expect(row2Restored.getByText(title2)).toBeVisible();
+ await row2Restored.getByRole('link', { name: /Open document/ }).click();
+
+ await verifyDocName(page, title2);
+ await page.getByRole('button', { name: 'Back to homepage' }).click();
+ await expect(row2.getByText(title2)).toBeVisible();
+ await expect(
+ row2.getByRole('button', {
+ name: 'Open the sharing settings for the document',
+ }),
+ ).toBeEnabled();
+
+ await page.getByRole('link', { name: 'Trashbin' }).click();
+ await expect(row2.getByText(title2)).toBeHidden();
});
});
diff --git a/src/frontend/apps/impress/src/components/TextErrors.tsx b/src/frontend/apps/impress/src/components/TextErrors.tsx
index baf22a2d..9bfa6453 100644
--- a/src/frontend/apps/impress/src/components/TextErrors.tsx
+++ b/src/frontend/apps/impress/src/components/TextErrors.tsx
@@ -25,8 +25,6 @@ export const TextErrors = ({
canClose = false,
...textProps
}: TextErrorsProps) => {
- const { t } = useTranslation();
-
return (
-
- {causes &&
- causes.map((cause, i) => (
-
- {cause}
-
- ))}
+
+
+ );
+};
- {!causes && (
+export const TextOnlyErrors = ({
+ causes,
+ defaultMessage,
+ ...textProps
+}: TextErrorsProps) => {
+ const { t } = useTranslation();
+
+ return (
+
+ {causes &&
+ causes.map((cause, i) => (
- {defaultMessage || t('Something bad happens, please retry.')}
+ {cause}
- )}
-
-
+ ))}
+
+ {!causes && (
+
+ {defaultMessage || t('Something bad happens, please retry.')}
+
+ )}
+
);
};
diff --git a/src/frontend/apps/impress/src/components/dropdown-menu/DropdownMenu.tsx b/src/frontend/apps/impress/src/components/dropdown-menu/DropdownMenu.tsx
index 4df80cc7..f0af724d 100644
--- a/src/frontend/apps/impress/src/components/dropdown-menu/DropdownMenu.tsx
+++ b/src/frontend/apps/impress/src/components/dropdown-menu/DropdownMenu.tsx
@@ -2,6 +2,7 @@ import { HorizontalSeparator } from '@gouvfr-lasuite/ui-kit';
import {
Fragment,
PropsWithChildren,
+ ReactNode,
useCallback,
useEffect,
useRef,
@@ -15,7 +16,7 @@ import { useCunninghamTheme } from '@/cunningham';
import { useDropdownKeyboardNav } from './hook/useDropdownKeyboardNav';
export type DropdownMenuOption = {
- icon?: string;
+ icon?: ReactNode;
label: string;
testId?: string;
value?: string;
@@ -220,7 +221,7 @@ export const DropdownMenu = ({
$align="center"
$gap={spacingsTokens['base']}
>
- {option.icon && (
+ {option.icon && typeof option.icon === 'string' && (
)}
+ {option.icon &&
+ typeof option.icon !== 'string' &&
+ option.icon}
{option.label}
diff --git a/src/frontend/apps/impress/src/components/index.ts b/src/frontend/apps/impress/src/components/index.ts
index 62c75673..e79e0890 100644
--- a/src/frontend/apps/impress/src/components/index.ts
+++ b/src/frontend/apps/impress/src/components/index.ts
@@ -1,4 +1,3 @@
-export * from './modal/AlertModal';
export * from './Box';
export * from './BoxButton';
export * from './Card';
@@ -9,7 +8,7 @@ export * from './Icon';
export * from './InfiniteScroll';
export * from './Link';
export * from './Loading';
-export * from './modal/SideModal';
+export * from './modal';
export * from './separators';
export * from './Text';
export * from './TextErrors';
diff --git a/src/frontend/apps/impress/src/components/modal/ButtonCloseModal.tsx b/src/frontend/apps/impress/src/components/modal/ButtonCloseModal.tsx
index 571af6bd..983040b4 100644
--- a/src/frontend/apps/impress/src/components/modal/ButtonCloseModal.tsx
+++ b/src/frontend/apps/impress/src/components/modal/ButtonCloseModal.tsx
@@ -3,7 +3,7 @@ import React from 'react';
import { Box } from '@/components';
-const ButtonCloseModal = (props: ButtonProps) => {
+export const ButtonCloseModal = (props: ButtonProps) => {
return (