map `invalid` view state directly to `invalid` property