Make AliasSettings space-aware, remove stale unused props

pull/21833/head
Michael Telatynski 2021-06-08 16:32:43 +01:00
parent 78debcc93b
commit fdecba2fe5
2 changed files with 26 additions and 11 deletions

View File

@ -80,7 +80,7 @@ interface IProps {
canSetCanonicalAlias: boolean; canSetCanonicalAlias: boolean;
canSetAliases: boolean; canSetAliases: boolean;
canonicalAliasEvent?: MatrixEvent; canonicalAliasEvent?: MatrixEvent;
aliasEvents?: MatrixEvent[]; hidePublishSetting?: boolean;
} }
interface IState { interface IState {
@ -99,7 +99,6 @@ export default class AliasSettings extends React.Component<IProps, IState> {
static defaultProps = { static defaultProps = {
canSetAliases: false, canSetAliases: false,
canSetCanonicalAlias: false, canSetCanonicalAlias: false,
aliasEvents: [],
}; };
constructor(props) { constructor(props) {
@ -317,7 +316,9 @@ export default class AliasSettings extends React.Component<IProps, IState> {
} }
render() { render() {
const localDomain = MatrixClientPeg.get().getDomain(); const cli = MatrixClientPeg.get();
const localDomain = cli.getDomain();
const isSpaceRoom = cli.getRoom(this.props.roomId)?.isSpaceRoom();
let found = false; let found = false;
const canonicalValue = this.state.canonicalAlias || ""; const canonicalValue = this.state.canonicalAlias || "";
@ -363,7 +364,9 @@ export default class AliasSettings extends React.Component<IProps, IState> {
canEdit={this.props.canSetAliases} canEdit={this.props.canSetAliases}
onItemAdded={this.onLocalAliasAdded} onItemAdded={this.onLocalAliasAdded}
onItemRemoved={this.onLocalAliasDeleted} onItemRemoved={this.onLocalAliasDeleted}
noItemsLabel={_t('This room has no local addresses')} noItemsLabel={isSpaceRoom
? _t("This space has no local addresses")
: _t("This room has no local addresses")}
placeholder={_t('Local address')} placeholder={_t('Local address')}
domain={localDomain} domain={localDomain}
/>); />);
@ -372,10 +375,20 @@ export default class AliasSettings extends React.Component<IProps, IState> {
return ( return (
<div className='mx_AliasSettings'> <div className='mx_AliasSettings'>
<span className='mx_SettingsTab_subheading'>{_t("Published Addresses")}</span> <span className='mx_SettingsTab_subheading'>{_t("Published Addresses")}</span>
<p>{_t("Published addresses can be used by anyone on any server to join your room. " + <p>
"To publish an address, it needs to be set as a local address first.")}</p> { isSpaceRoom
{canonicalAliasSection} ? _t("Published addresses can be used by anyone on any server to join your space.")
<RoomPublishSetting roomId={this.props.roomId} canSetCanonicalAlias={this.props.canSetCanonicalAlias} /> : _t("Published addresses can be used by anyone on any server to join your room.")}
&nbsp;
{ _t("To publish an address, it needs to be set as a local address first.") }
</p>
{ canonicalAliasSection }
{ this.props.hidePublishSetting
? null
: <RoomPublishSetting
roomId={this.props.roomId}
canSetCanonicalAlias={this.props.canSetCanonicalAlias}
/> }
<datalist id="mx_AliasSettings_altRecommendations"> <datalist id="mx_AliasSettings_altRecommendations">
{this.getLocalNonAltAliases().map(alias => { {this.getLocalNonAltAliases().map(alias => {
return <option value={alias} key={alias} />; return <option value={alias} key={alias} />;
@ -399,7 +412,10 @@ export default class AliasSettings extends React.Component<IProps, IState> {
{ _t("Local Addresses") } { _t("Local Addresses") }
</span> </span>
<p> <p>
{ _t("Set addresses for this room so users can find this room " + { isSpaceRoom
? _t("Set addresses for this space so users can find this space " +
"through your homeserver (%(localDomain)s)", { localDomain })
: _t("Set addresses for this room so users can find this room " +
"through your homeserver (%(localDomain)s)", { localDomain }) } "through your homeserver (%(localDomain)s)", { localDomain }) }
</p> </p>
<details onToggle={this.onLocalAliasesToggled}> <details onToggle={this.onLocalAliasesToggled}>

View File

@ -60,7 +60,6 @@ export default class GeneralRoomSettingsTab extends React.Component {
const canSetAliases = true; // Previously, we arbitrarily only allowed admins to do this const canSetAliases = true; // Previously, we arbitrarily only allowed admins to do this
const canSetCanonical = room.currentState.mayClientSendStateEvent("m.room.canonical_alias", client); const canSetCanonical = room.currentState.mayClientSendStateEvent("m.room.canonical_alias", client);
const canonicalAliasEv = room.currentState.getStateEvents("m.room.canonical_alias", ''); const canonicalAliasEv = room.currentState.getStateEvents("m.room.canonical_alias", '');
const aliasEvents = room.currentState.getStateEvents("m.room.aliases");
const canChangeGroups = room.currentState.mayClientSendStateEvent("m.room.related_groups", client); const canChangeGroups = room.currentState.mayClientSendStateEvent("m.room.related_groups", client);
const groupsEvent = room.currentState.getStateEvents("m.room.related_groups", ""); const groupsEvent = room.currentState.getStateEvents("m.room.related_groups", "");
@ -100,7 +99,7 @@ export default class GeneralRoomSettingsTab extends React.Component {
<div className='mx_SettingsTab_section mx_SettingsTab_subsectionText'> <div className='mx_SettingsTab_section mx_SettingsTab_subsectionText'>
<AliasSettings roomId={this.props.roomId} <AliasSettings roomId={this.props.roomId}
canSetCanonicalAlias={canSetCanonical} canSetAliases={canSetAliases} canSetCanonicalAlias={canSetCanonical} canSetAliases={canSetAliases}
canonicalAliasEvent={canonicalAliasEv} aliasEvents={aliasEvents} /> canonicalAliasEvent={canonicalAliasEv} />
</div> </div>
<div className="mx_SettingsTab_heading">{_t("Other")}</div> <div className="mx_SettingsTab_heading">{_t("Other")}</div>
{ flairSection } { flairSection }