Because transition work can be restarted, code should remain pure during render and derive UI from current props and state.