We use `export default` begrudgingly here. Ideally we'd use just `export`, though this entire SDK expects things to be exported as a default. Instead of breaking everything, we'll sacrifice our export pattern for a smaller diff - a later commit can always do the default export -> regular export conversion.
This ensures we always include the current power level in the power selector,
even if it's greater than the level you're allowed to set yourself. This ensures
the selector can display the current value correctly when disabled.
Fixes https://github.com/vector-im/riot-web/issues/9340
This modifies displayed power levels such that:
- If users_default is !== 0:
- the power level 0 is displayed as "Restricted (0)"
- the power level users_default is displayed as "Default ({users_default})"
- Otherwise:
- the power level 0 is displayed as "Default (0)"
When changing users_default, to say, 10, when the textual powers are rendered
again, they will take users_default into account. So those previously at 10
and which would have previously have been rendered "Custom of 10" will now
read "Default (10)". Conversely, those that were "Default (0)" will now read
"Restricted (0)".
- initialise the 'publish' checkbox correctly so react doesn't grumble about it
turning from uncontrolled into controlled
- PowerSelector's 'controlled' property isn't really required, so mark it as
such.