diff --git a/CHANGELOG.md b/CHANGELOG.md index eace8fb08..479013943 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to - 🔧(backend) allow configuring settings OIDC_OP_USER_ENDPOINT_FORMAT - ⚡️(helm) create a dedicated svc and deployment for yprovider converter #2368 - ✨(backend) allow to leave a document #2365 +- ✨(frontend) add the presenter mode - 📈(backend) create a utils to capture event with posthog ### Changed diff --git a/src/frontend/apps/impress/package.json b/src/frontend/apps/impress/package.json index aa29bfe4e..edbf66992 100644 --- a/src/frontend/apps/impress/package.json +++ b/src/frontend/apps/impress/package.json @@ -42,7 +42,7 @@ "@fontsource/material-icons": "5.2.7", "@gouvfr-lasuite/cunningham-react": "4.3.0", "@gouvfr-lasuite/integration": "1.0.3", - "@gouvfr-lasuite/ui-kit": "0.23.1", + "@gouvfr-lasuite/ui-kit": "0.23.2", "@hocuspocus/provider": "3.4.4", "@mantine/core": "9.2.1", "@mantine/hooks": "9.2.1", diff --git a/src/frontend/apps/impress/src/features/docs/doc-header/components/DocToolBox.tsx b/src/frontend/apps/impress/src/features/docs/doc-header/components/DocToolBox.tsx index 78380ca3d..7e7771e87 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-header/components/DocToolBox.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-header/components/DocToolBox.tsx @@ -1,9 +1,10 @@ import { Button, useModal } from '@gouvfr-lasuite/cunningham-react'; import { DropdownMenu, - DropdownMenuOption, + DropdownMenuItem, useTreeContext, } from '@gouvfr-lasuite/ui-kit'; +import { Present } from '@gouvfr-lasuite/ui-kit/icons'; import dynamic from 'next/dynamic'; import { useRouter } from 'next/router'; import { useState } from 'react'; @@ -70,6 +71,14 @@ const ModalExport = ) : null; +const PresenterOverlay = dynamic( + () => + import('@/docs/doc-presenter').then((mod) => ({ + default: mod.PresenterOverlay, + })), + { ssr: false }, +); + interface DocToolBoxProps { doc: Doc; } @@ -81,11 +90,11 @@ export const DocToolBox = ({ doc }: DocToolBoxProps) => { const { isTopRoot } = useDocUtils(doc); const { authenticated } = useAuth(); const copyCurrentEditorToClipboard = useCopyCurrentEditorToClipboard(); - const [openDropdown, setOpenDropdown] = useState(false); const [isModalRemoveOpen, setIsModalRemoveOpen] = useState(false); const [isModalExportOpen, setIsModalExportOpen] = useState(false); const shareModal = useModal(); + const [isPresenterOpen, setIsPresenterOpen] = useState(false); const selectHistoryModal = useModal(); const { restoreFocus } = useFocusStore(); @@ -103,7 +112,7 @@ export const DocToolBox = ({ doc }: DocToolBoxProps) => { listInvalidQueries: [KEY_LIST_DOC, KEY_DOC, KEY_LIST_FAVORITE_DOC], }); - const options: DropdownMenuOption[] = [ + const options: DropdownMenuItem[] = [ { label: doc.is_favorite ? t('Unpin') : t('Pin'), icon: doc.is_favorite ? ( @@ -120,7 +129,16 @@ export const DocToolBox = ({ doc }: DocToolBoxProps) => { }, isHidden: !doc.abilities.favorite, testId: `docs-actions-${doc.is_favorite ? 'unpin' : 'pin'}-${doc.id}`, - showSeparator: true, + }, + { type: 'separator' }, + { + label: t('Present'), + icon: