import Canva from './components/canvas'; import type { Route } from "./+types/home"; import { useState, useEffect, useRef } from 'react'; import { Link, Navigate, useLocation } from 'react-router'; export function meta({}: Route.MetaArgs) { return [ { title: "detail" } ]; } export default function Defail(){ const DivStyle = { padding: '10px' } const BtnStyle = { padding: '10px', fontSize: '16px', borderRadius: '5px', border: '1px solid #ccc', } const [name, setName] = useState('') const [price, setPrice] = useState('') const [sale, setSale] = useState('') const canvasRef = useRef(null) const location = useLocation() const metadata = location.state?.metadata if(!metadata){ return } useEffect(()=>{ if(metadata){ setName(metadata.name) setPrice(metadata.price) setSale(metadata.sale) } }, [metadata]) async function handleClick(){ const canvas = canvasRef.current if(!canvas){ console.error("Canvas 元素尚未準備好。") return } const blob: Blob | null = await new Promise(resolve=>{ if (canvas instanceof HTMLCanvasElement && typeof canvas.toBlob === 'function') { canvas.toBlob((blobResult)=>{ resolve(blobResult) }, 'image/png') } else { resolve(null); } }) if(!blob){ return } const formdata = new FormData() formdata.append('file', blob, '哈哈哈哈屁眼派對.png') formdata.append('name', name) formdata.append('price', price) formdata.append('sale', sale) const req = await fetch("http://localhost:12002/api/bitmap", { method: 'POST', body: formdata, }) } return ( <> Home

Tag詳細資訊

{setName(e.target.value)}} />
{setPrice(e.target.value)}}/>
{setSale(e.target.value)}}/>
{/* Canva 組件必須使用 forwardRef 才能接收 ref */}
) }