When a free user reaches their limit of 5 private projects, we prevent them from change existing projects from public to private. We do this by disabling the PRIVATE option in the share dialog for projects which have permissions that are public. (Anyone can edit, view, or comment).
The issue I've found is that PRIVATE is also disabled for projects which are already set to PRIVATE. So the option is both selected and disabled. Weird.
Moreover, if I change permissions to a public option, PRIVATE does not become enabled. Changing away from private should open up a free private project slot in realtime. So PRIVATE should become selectable immediately, but is not.
The solution is to show PRIVATE as enabled, since it's selected, and to update the free private project count in realtime, since that seems to lag.