diff --git a/src/components/Dashboard/common/TemplateEditor.jsx b/src/components/Dashboard/common/TemplateEditor.jsx
index c02b8e69..29681fb5 100644
--- a/src/components/Dashboard/common/TemplateEditor.jsx
+++ b/src/components/Dashboard/common/TemplateEditor.jsx
@@ -110,6 +110,7 @@ const TemplateEditor = ({
const [previewError, setPreviewError] = useState(false)
const [errorLines, setErrorLines] = useState([])
const [formatLoading, setFormatLoading] = useState(false)
+
//const isMobile = useMediaQuery({ maxWidth: 768 })
const handlePreviewMessage = useCallback((message, isError) => {
@@ -256,7 +257,8 @@ const TemplateEditor = ({
width: '100%',
height: '100%',
flex: '1 1 auto',
- minHeight: 0
+ minHeight: 0,
+ minWidth: 0
}}
useFormItem={false}
name={'content'}
diff --git a/src/components/Dashboard/common/TemplatePreview.jsx b/src/components/Dashboard/common/TemplatePreview.jsx
index 6f0aff15..c0778633 100644
--- a/src/components/Dashboard/common/TemplatePreview.jsx
+++ b/src/components/Dashboard/common/TemplatePreview.jsx
@@ -7,7 +7,7 @@ import {
useCallback
} from 'react'
import PropTypes from 'prop-types'
-import { Flex, Button, Input, Select, Card } from 'antd'
+import { Flex, Button, Input, Select, Card, Popover } from 'antd'
import PlusIcon from '../../Icons/PlusIcon.jsx'
import MinusIcon from '../../Icons/MinusIcon.jsx'
import InfoCircleIcon from '../../Icons/InfoCircleIcon.jsx'
@@ -18,7 +18,7 @@ import PDFViewer from './PDFViewer.jsx'
import ScrollBox from './ScrollBox.jsx'
import { ApiServerContext } from '../context/ApiServerContext.jsx'
import ProgressDisplay from './ProgressDisplay.jsx'
-
+import { CaretDownFilled } from '@ant-design/icons'
const noop = () => {}
const TemplatePreview = ({
@@ -56,6 +56,27 @@ const TemplatePreview = ({
height: 'auto'
})
+ const toolbarRef = useRef(null)
+ const [usePopoverSettings, setUsePopoverSettings] = useState(false)
+
+ useLayoutEffect(() => {
+ const toolbar = toolbarRef.current
+ if (!toolbar) return undefined
+
+ const updateLayout = () => {
+ const { width, height } = toolbar.getBoundingClientRect()
+ console.log('Preview card size', { width, height })
+ setUsePopoverSettings(width < 620)
+ }
+
+ updateLayout()
+
+ const observer = new ResizeObserver(updateLayout)
+ observer.observe(toolbar)
+
+ return () => observer.disconnect()
+ }, [])
+
const applyIframeContentSize = useCallback(() => {
const iframe = iframeRef.current
const doc = iframe?.contentDocument
@@ -474,9 +495,70 @@ const TemplatePreview = ({
const showProgressOverlay = previewType != 'HTML' && downloadProgress != null
+ const toolbarContent = (
+ <>
+
+ ) : (
+
+ )
+ }
+ disabled={loading || reloadLoading}
+ onClick={() => {
+ setPanMode((prev) => !prev)
+ }}
+ />
+ }
+ onClick={() => {
+ setPreviewScale((prev) => prev + 0.05)
+ }}
+ disabled={loading || reloadLoading}
+ />
+
+ }
+ onClick={() => {
+ setPreviewScale((prev) => Math.max(0.1, prev - 0.05))
+ }}
+ disabled={loading || reloadLoading}
+ />
+ {showPreviewSwitch == true ? (
+