diff --git a/packages/core/content-manager/admin/src/preview/components/PreviewContent.tsx b/packages/core/content-manager/admin/src/preview/components/PreviewContent.tsx index 5cbf4640f2..b608a15a5f 100644 --- a/packages/core/content-manager/admin/src/preview/components/PreviewContent.tsx +++ b/packages/core/content-manager/admin/src/preview/components/PreviewContent.tsx @@ -1,41 +1,85 @@ import * as React from 'react'; -import { Box, Flex } from '@strapi/design-system'; +import { Box, Flex, IconButton } from '@strapi/design-system'; +import { ArrowLeft } from '@strapi/icons'; import { useIntl } from 'react-intl'; +import { styled } from 'styled-components'; import { FormLayout } from '../../pages/EditView/components/FormLayout'; import { usePreviewContext } from '../pages/Preview'; +// TODO use ArrowLineLeft once it's available in the DS +const AnimatedArrow = styled(ArrowLeft)<{ isSideEditorOpen: boolean }>` + will-change: transform; + rotate: ${(props) => (props.isSideEditorOpen ? '0deg' : '180deg')}; + transition: rotate 0.2s ease-in-out; +`; + const UnstablePreviewContent = () => { const previewUrl = usePreviewContext('PreviewContent', (state) => state.url); const layout = usePreviewContext('PreviewContent', (state) => state.layout); const { formatMessage } = useIntl(); + const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true); + return ( - + - + + + setIsSideEditorOpen((prev) => !prev)} + position="absolute" + top={2} + left={2} + > + + + ); }; diff --git a/packages/core/content-manager/admin/src/translations/en.json b/packages/core/content-manager/admin/src/translations/en.json index db3b106724..c7e79a8b40 100644 --- a/packages/core/content-manager/admin/src/translations/en.json +++ b/packages/core/content-manager/admin/src/translations/en.json @@ -244,6 +244,8 @@ "preview.copy.label": "Copy preview link", "preview.copy.success": "Copied preview link", "preview.tabs.label": "Preview status", + "preview.content.close-editor": "Close editor", + "preview.content.open-editor": "Open editor", "relation.add": "Add relation", "relation.disconnect": "Remove", "relation.error-adding-relation": "An error occurred while trying to add the relation.",