interface UserModalParams {
userId: string
mode: 'view' | 'edit'
}
interface UserModalResult {
saved: boolean
user?: User
}
const UserModal = modal<UserModalParams, UserModalResult>()
.content((props) => {
const { userId, mode, request } = props
const saveUser = () => {
request.resolve({
saved: true,
user: { id: userId, name: 'John' }
})
}
return (
<div>
<h2>{mode === 'edit' ? 'Edit' : 'View'} User</h2>
<p>ID: {userId}</p>
{mode === 'edit' && (
<button onClick={saveUser}>Save</button>
)}
</div>
)
})
const result = await UserModal.request({
userId: '123',
mode: 'edit'
})
if (result.saved) {
console.log('User saved:', result.user)
}