diff --git a/services/web/frontend/js/features/editor-left-menu/components/editor-left-menu.tsx b/services/web/frontend/js/features/editor-left-menu/components/editor-left-menu.tsx index bd250f2f7c..85b86a8011 100644 --- a/services/web/frontend/js/features/editor-left-menu/components/editor-left-menu.tsx +++ b/services/web/frontend/js/features/editor-left-menu/components/editor-left-menu.tsx @@ -2,26 +2,40 @@ import DownloadMenu from './download-menu' import ActionsMenu from './actions-menu' import HelpMenu from './help-menu' import { useLayoutContext } from '../../../shared/context/layout-context' -import classNames from 'classnames' import SyncMenu from './sync-menu' import SettingsMenu from './settings-menu' import LeftMenuMask from './left-menu-mask' +import AccessibleModal from '../../../shared/components/accessible-modal' +import { Modal } from 'react-bootstrap' +import classNames from 'classnames' export default function EditorLeftMenu() { - const { leftMenuShown } = useLayoutContext() + const { leftMenuShown, setLeftMenuShown } = useLayoutContext() + + const closeModal = () => { + setLeftMenuShown(false) + } return ( <> - + + + + + + + + {leftMenuShown && } ) diff --git a/services/web/frontend/stylesheets/app/editor/left-menu.less b/services/web/frontend/stylesheets/app/editor/left-menu.less index 0ba91c0e33..a49c75c41b 100644 --- a/services/web/frontend/stylesheets/app/editor/left-menu.less +++ b/services/web/frontend/stylesheets/app/editor/left-menu.less @@ -11,8 +11,8 @@ -webkit-transition: left ease-in-out @left-menu-animation-duration; transition: left ease-in-out @left-menu-animation-duration; font-size: 14px; - left: -280px; + &.shown { left: 0; } @@ -190,3 +190,32 @@ z-index: 99; transition: opacity 0.5s; } + +// Make the Bootstrap Modal behavior as a left sidebar +#left-menu-modal { + opacity: 1; + .modal-dialog { + height: 100%; + margin: 0; + width: @left-menu-width; + } + + .modal-content { + position: initial; + } + &.modal.fade .modal-dialog { + left: -280px; + transition: left ease-in-out @left-menu-animation-duration; + -webkit-transition: left ease-in-out @left-menu-animation-duration; + transform: translate(0, 0); + } + &.modal.in .modal-dialog { + left: 0; + transform: translate(0, 0); + } +} +// Don't disable backdrop that allows closing the Modal when clicking outside of it, +// But match its background color with the original mask background color. +.left-menu-modal-backdrop { + background-color: transparent; +}