input ui updates state