diff --git a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridActions.tsx b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridActions.tsx index 2758cd3b..ef90c61d 100644 --- a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridActions.tsx +++ b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridActions.tsx @@ -12,19 +12,18 @@ import { useDeleteFavoriteDoc, useDuplicateDoc, } from '@/docs/doc-management'; +import { DocShareModal } from '@/docs/doc-share'; interface DocsGridActionsProps { doc: Doc; - openShareModal?: () => void; } -export const DocsGridActions = ({ - doc, - openShareModal, -}: DocsGridActionsProps) => { +export const DocsGridActions = ({ doc }: DocsGridActionsProps) => { const { t } = useTranslation(); const deleteModal = useModal(); + const shareModal = useModal(); + const { mutate: duplicateDoc } = useDuplicateDoc(); const removeFavoriteDoc = useDeleteFavoriteDoc({ @@ -52,7 +51,7 @@ export const DocsGridActions = ({ label: t('Share'), icon: 'group', callback: () => { - openShareModal?.(); + shareModal.open(); }, testId: `docs-grid-actions-share-${doc.id}`, @@ -114,6 +113,9 @@ export const DocsGridActions = ({ {deleteModal.isOpen && ( )} + {shareModal.isOpen && ( + + )} ); }; diff --git a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx index b0105836..f6790679 100644 --- a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx +++ b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItem.tsx @@ -1,4 +1,4 @@ -import { Tooltip, useModal } from '@gouvfr-lasuite/cunningham-react'; +import { Tooltip } from '@gouvfr-lasuite/cunningham-react'; import { useSearchParams } from 'next/navigation'; import { KeyboardEvent } from 'react'; import { useTranslation } from 'react-i18next'; @@ -8,7 +8,6 @@ import { Box, Icon, StyledLink, Text } from '@/components'; import { useConfig } from '@/core'; import { useCunninghamTheme } from '@/cunningham'; import { Doc, LinkReach, SimpleDocItem } from '@/docs/doc-management'; -import { DocShareModal } from '@/docs/doc-share'; import { useDate } from '@/hooks'; import { useResponsiveStore } from '@/stores'; @@ -32,15 +31,10 @@ export const DocsGridItem = ({ doc, dragMode = false }: DocsGridItemProps) => { const { isDesktop } = useResponsiveStore(); const { flexLeft, flexRight } = useResponsiveDocGrid(); const { spacingsTokens } = useCunninghamTheme(); - const shareModal = useModal(); const isPublic = doc.link_reach === LinkReach.PUBLIC; const isAuthenticated = doc.link_reach === LinkReach.AUTHENTICATED; const isShared = isPublic || isAuthenticated; - const handleShareClick = () => { - shareModal.open(); - }; - const handleKeyDown = (e: KeyboardEvent) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); @@ -173,23 +167,16 @@ export const DocsGridItem = ({ doc, dragMode = false }: DocsGridItemProps) => { {isDesktop && ( - + )} {isInTrashbin ? ( ) : ( - + )} - {shareModal.isOpen && ( - - )} ); }; diff --git a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItemSharedButton.tsx b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItemSharedButton.tsx index 0fd0c75a..9270d205 100644 --- a/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItemSharedButton.tsx +++ b/src/frontend/apps/impress/src/features/docs/docs-grid/components/DocsGridItemSharedButton.tsx @@ -1,65 +1,67 @@ -import { Button, Tooltip } from '@gouvfr-lasuite/cunningham-react'; +import { Button, Tooltip, useModal } from '@gouvfr-lasuite/cunningham-react'; import { useTranslation } from 'react-i18next'; import { Box, Icon, Text } from '@/components'; import { Doc } from '@/docs/doc-management'; +import { DocShareModal } from '@/docs/doc-share'; type Props = { doc: Doc; - handleClick: () => void; disabled: boolean; }; -export const DocsGridItemSharedButton = ({ - doc, - handleClick, - disabled, -}: Props) => { +export const DocsGridItemSharedButton = ({ doc, disabled }: Props) => { const { t } = useTranslation(); const sharedCount = doc.nb_accesses_direct; const isShared = sharedCount - 1 > 0; + const shareModal = useModal(); if (!isShared) { return  ; } return ( - - {t('Shared with {{count}} users', { count: sharedCount })} - - } - placement="top" - className="--docs--doc-tooltip-grid-item-shared-button" - > - - + + + {shareModal.isOpen && ( + + )} + ); }; diff --git a/src/frontend/apps/impress/src/features/left-panel/components/LeftPanelFavoriteItem.tsx b/src/frontend/apps/impress/src/features/left-panel/components/LeftPanelFavoriteItem.tsx index 21f0c974..b2d3cc7d 100644 --- a/src/frontend/apps/impress/src/features/left-panel/components/LeftPanelFavoriteItem.tsx +++ b/src/frontend/apps/impress/src/features/left-panel/components/LeftPanelFavoriteItem.tsx @@ -1,4 +1,3 @@ -import { useModal } from '@gouvfr-lasuite/cunningham-react'; import { t } from 'i18next'; import { DateTime } from 'luxon'; import { css } from 'styled-components'; @@ -6,7 +5,6 @@ import { css } from 'styled-components'; import { Box, StyledLink } from '@/components'; import { useCunninghamTheme } from '@/cunningham'; import { Doc, SimpleDocItem } from '@/docs/doc-management'; -import { DocShareModal } from '@/docs/doc-share'; import { DocsGridActions } from '@/docs/docs-grid'; import { useResponsiveStore } from '@/stores'; @@ -15,7 +13,6 @@ type LeftPanelFavoriteItemProps = { }; export const LeftPanelFavoriteItem = ({ doc }: LeftPanelFavoriteItemProps) => { - const shareModal = useModal(); const { colorsTokens, spacingsTokens } = useCunninghamTheme(); const { isDesktop } = useResponsiveStore(); @@ -61,11 +58,8 @@ export const LeftPanelFavoriteItem = ({ doc }: LeftPanelFavoriteItemProps) => { - + - {shareModal.isOpen && ( - - )} ); };