48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
"use client"
|
|
|
|
import {Greet} from "@/wailsjs/go/main/App";
|
|
import { main } from "@/wailsjs/go/models";
|
|
import React, {useState} from "react";
|
|
|
|
export default function Home() {
|
|
const [person, setPerson] = useState(new main.Person());
|
|
const [result, setResult] = useState('Please enter your name below 👇');
|
|
|
|
const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>, field: string) => {
|
|
setPerson(prevPerson => ({
|
|
...prevPerson,
|
|
[field]: field === 'age' ? parseInt(e.target.value) : e.target.value,
|
|
convertValues: prevPerson.convertValues // 기존 convertValues 속성 유지
|
|
}));
|
|
};
|
|
|
|
return <>
|
|
name : <input type="text" autoComplete="off" value={person.name} onChange={e => handleInputChange(e, 'name')}/>
|
|
<br/>
|
|
<br/>
|
|
age : <input type="number" autoComplete="off" value={person.age} onChange={e => handleInputChange(e, 'age')}/>
|
|
<br/>
|
|
<br/>
|
|
{result}
|
|
<br/>
|
|
<br/>
|
|
<button
|
|
onClick={() => {
|
|
try {
|
|
Greet(person)
|
|
.then(result => {
|
|
setResult(result)
|
|
|
|
})
|
|
.catch(err => {
|
|
console.error(err)
|
|
})
|
|
} catch (err) {
|
|
console.error(err)
|
|
}
|
|
}}>
|
|
Greet
|
|
</button>
|
|
</>
|
|
}
|