import { t } from '../../../i18n'; import styled from '@emotion/styled'; import { ChevronLeft20Regular } from '@fluentui/react-icons'; import { useBuilder } from '@tempi/core-editor'; import { buildComponentDict, BuilderComponent, PageBuilderResponse, } from '@tempi/core-renderer'; import { Button, Divider, Space, Typography } from 'antd'; import { Device } from 'modules/builder'; import React from 'react'; interface PagePreviewProps { rightHeader?: React.ReactElement[]; content?: PageBuilderResponse; onBack: () => void; components: { [key: string]: React.FC; }; } export const DemoPreview: React.FC = ({ content, rightHeader, onBack, components, }) => { const demoComponents = buildComponentDict(components); const { device } = useBuilder(); const renderBuilderComponent = () => { if (!content) return null; if (device === 'mobile') { return ( ); } if (device === 'tablet') { return ( ); } return ( ); }; return ( <>
{t('Chế độ xem trước')}
} > {rightHeader.map((item, index: number) => React.cloneElement(item, { key: index }), )}
{renderBuilderComponent()} ); }; const Header = styled.div` height: 50px; position: sticky; background: var(--background-color); top: 0; z-index: 2000; user-select: none; border-bottom: 1px solid var(--border-color); font-weight: 500; `; const StyleRightHeader = styled(Space)` height: 100%; .ant-space-item { height: 100%; display: flex; align-items: center; } `;