import React from 'react'; import {AbsoluteFill,Audio,staticFile} from 'remotion'; import {Background,Scene,Zone} from '../components/Stage'; import {Headline,words} from '../components/Headline'; import {Card,Callout,CheckItem,Frames} from '../components/UI'; import {S,C,FONT} from '../lib/tokens'; import {FormatCtx, Format, Platform} from '../lib/format-context'; import {geometry} from '../lib/format.mjs'; import {DebugCtx} from '../lib/debug'; import {sec} from '../lib/anim'; export type LaunchProps={handle:string; product:string; problem:string; feature1:string; feature2:string; cta:string; demoDir?:string; demoCount?:number; demoCredit?:string; duration?:number; audio?:string; mcDebug?:boolean;format?:Format;platform?:Platform}; export const Launch:React.FC=({handle,product,problem,feature1,feature2,cta,demoDir,demoCount=0,demoCredit,duration=45,audio,mcDebug=false,format='16:9',platform='wide'})=>{ const g=geometry(format,platform);const cardW=Math.min(g.safe.width-24,format==='9:16'?860:650);const cardH=Math.min(g.safe.height*.46,format==='9:16'?600:390); const realDemo=!!demoDir&&demoCount>0&&!!demoCredit; const cut=(s:number)=>sec(s*duration/45); return {!mcDebug?:}
A problem worth solving
{realDemo?:
REPLACE WITH REAL DEMO FRAMES
Add demoDir, demoCount and demoCredit
}
{realDemo?`Demo source: ${demoCredit}`:'DEMO NOT VERIFIED - DO NOT PUBLISH'}
{handle}
{audio&&!mcDebug&&
; };