{t('home:features.dom_understanding.title')}
{t('home:features.dom_understanding.desc')}
/* eslint-disable react-dom/no-dangerously-set-innerhtml */ import { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { Link, useSearchParams } from 'wouter' import { PageAgent } from '@/PageAgent.js' import Footer from './components/Footer' import Header from './components/Header' const injection = encodeURI( "javascript:(function(){var s=document.createElement('script');s.src=`https://hwcxiuzfylggtcktqgij.supabase.co/storage/v1/object/public/demo-public/v0.0.4/page-agent.js?t=${Math.random()}`;s.setAttribute('crossorigin', true);s.type=`text/javascript`;s.onload=()=>console.log('PageAgent script loaded!');document.body.appendChild(s);})();" ) const injectionA = ` ✨PageAgent ` export default function HomePage() { const { t, i18n } = useTranslation(['home', 'common']) const [task, setTask] = useState(() => t('home:hero.default_task')) // Update task when language changes const defaultTask = t('home:hero.default_task') useEffect(() => { setTask(defaultTask) }, [defaultTask]) const [params, setParams] = useSearchParams() const isOther = params.has('try_other') const [activeTab, setActiveTab] = useState<'try' | 'other'>(isOther ? 'other' : 'try') const handleExecute = async () => { if (!task.trim()) return let pageAgent: PageAgent if (window.pageAgent && !window.pageAgent.disposed) { pageAgent = window.pageAgent } else { pageAgent = new PageAgent({ // 把 react 根元素排除掉,挂了很多冒泡时间导致假阳 interactiveBlacklist: [document.getElementById('root')!], language: i18n.language as any, // testing server // @note: rate limit. prompt limit. // model: DEMO_MODEL, // baseURL: DEMO_BASE_URL, // apiKey: DEMO_API_KEY, }) window.pageAgent = pageAgent } const result = await pageAgent.execute(task) console.log(result) } return (
{t('home:hero.subtitle_emoji')}
{t('home:hero.subtitle_main')}
{t('home:hero.subtitle_detail')}
{t('home:try_other.step1_title')} {' '} {t('home:try_other.step1_content')}
{t('home:try_other.step2_title')} {' '} {t('home:try_other.step2_content')}
{t('home:try_other.step3_title')} {' '} {t('home:try_other.step3_content')}
{t('home:features.dom_understanding.desc')}
{t('home:features.secure_integration.desc')}
{t('home:features.zero_backend.desc')}
{t('home:features.accessible.desc')}
{t('home:use_cases.section_subtitle')}
{t('home:use_cases.case1.desc')}
{t('home:use_cases.case2.desc')}
{t('home:use_cases.case3.desc')}
{t('home:use_cases.case4.desc')}