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)
}