@@ -4,37 +4,41 @@ import { CodeBlock } from '../types';
44interface PreviewPaneProps {
55 code : CodeBlock [ ] ;
66 targetHtml : string ;
7+ showTargetFlash ?: boolean ;
78}
89
910/**
1011 * Preview pane showing user code and target design
1112 */
12- export function PreviewPane ( { code, targetHtml } : PreviewPaneProps ) {
13+ export function PreviewPane ( { code, targetHtml, showTargetFlash } : PreviewPaneProps ) {
1314 const [ showTarget , setShowTarget ] = useState ( false ) ;
15+ const displayTarget = showTarget || showTargetFlash ;
1416
1517 const userCode = code . map ( ( c ) => c . content ) . join ( '' ) ;
1618 const userHtml =
1719 code . length === 0
18- ? '<html><body style="margin:0;padding:0 ;"></body></html>'
19- : `<html><body style="margin:0;padding:0 ;">${ userCode } </body></html>` ;
20+ ? '<html><body style="margin:0;padding:1rem ;"></body></html>'
21+ : `<html><body style="margin:0;padding:1rem ;">${ userCode } </body></html>` ;
2022
2123 return (
22- < div className = "flex flex-col bg-slate-900/40 backdrop-blur rounded-lg p-6 border border-slate-800" >
23- < h3 className = "text-sm font-semibold text-slate-300 mb-3 uppercase tracking-wide" >
24- { showTarget ? '🎯 Target Design' : '👁 Your Rendered Code' }
24+ < div className = { `flex flex-col backdrop-blur rounded-lg p-6 border h-full transition-colors ${
25+ displayTarget ? 'bg-yellow-400/20 border-yellow-400/30' : 'bg-slate-900/40 border-slate-800'
26+ } `} >
27+ < h3 className = "text-sm font-semibold text-slate-300 mb-4 uppercase tracking-wide" >
28+ { displayTarget ? 'Target Design' : 'Your Output' }
2529 </ h3 >
2630
2731 < div
2832 onMouseEnter = { ( ) => setShowTarget ( true ) }
2933 onMouseLeave = { ( ) => setShowTarget ( false ) }
30- className = "flex-1 relative rounded-lg overflow-hidden border border-slate-700 bg-white"
34+ className = "flex-1 relative rounded-lg overflow-hidden border border-slate-700 bg-white p-4 "
3135 >
3236 < iframe
3337 key = "user"
3438 title = "User Output"
3539 srcDoc = { userHtml }
3640 className = { `absolute inset-0 w-full h-full transition-opacity ${
37- showTarget ? 'opacity-0 pointer-events-none' : 'opacity-100'
41+ displayTarget ? 'opacity-0 pointer-events-none' : 'opacity-100'
3842 } `}
3943 />
4044
@@ -43,7 +47,7 @@ export function PreviewPane({ code, targetHtml }: PreviewPaneProps) {
4347 title = "Target Output"
4448 srcDoc = { targetHtml }
4549 className = { `absolute inset-0 w-full h-full transition-opacity ${
46- showTarget ? 'opacity-100' : 'opacity-0 pointer-events-none'
50+ displayTarget ? 'opacity-100' : 'opacity-0 pointer-events-none'
4751 } `}
4852 />
4953 </ div >
0 commit comments