Delete groups (legacy communities system) (#8027)

* Remove deprecated feature_communities_v2_prototypes

* Update _components

* i18n

* delint

* Cut out a bit more dead code

* Carve into legacy components

* Carve into mostly the room list code

* Carve into instances of "groupId"

* Carve out more of what comes up with "groups"

* Carve out some settings

* ignore related groups state

* Remove instances of spacesEnabled

* Fix some obvious issues

* Remove now-unused css

* Fix variable naming for legacy components

* Update i18n

* Misc cleanup from manual review

* Update snapshot for changed flag

* Appease linters

* rethemedex

* Remove now-unused AddressPickerDialog

* Make ConfirmUserActionDialog's member a required prop

* Remove useless override from RightPanelStore

* Remove extraneous CSS

* Update i18n

* Demo: "Communities are now Spaces" landing page

* Restore linkify for group IDs

* Demo: Dialog on click for communities->spaces notice

* i18n for demos

* i18n post-merge

* Update copy

* Appease the linter

* Post-merge cleanup

* Re-add spaces_learn_more_url to the new SdkConfig place

* Round 1 of post-merge fixes

* i18n

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
Travis Ralston 2022-03-22 17:07:37 -06:00 committed by GitHub
parent 03c80707c9
commit fce36ec826
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
171 changed files with 317 additions and 12160 deletions

View file

@ -80,8 +80,8 @@ export default class ElementPermalinkConstructor extends PermalinkConstructor {
}
/**
* Parses an app route (`(user|room|group)/identifer`) to a Matrix entity
* (room, user, group).
* Parses an app route (`(user|room)/identifer`) to a Matrix entity
* (room, user).
* @param {string} route The app route
* @returns {PermalinkParts}
*/
@ -102,14 +102,13 @@ export default class ElementPermalinkConstructor extends PermalinkConstructor {
if (entityType === 'user') {
// Probably a user, no further parsing needed.
return PermalinkParts.forUser(entity);
} else if (entityType === 'group') {
// Probably a group, no further parsing needed.
return PermalinkParts.forGroup(entity);
} else if (entityType === 'room') {
// Rejoin the rest because v3 events can have slashes (annoyingly)
const eventId = parts.length > 2 ? parts.slice(2).join('/') : "";
const via = query.split(/&?via=/).filter(p => !!p);
return PermalinkParts.forEvent(entity, eventId, via);
} else if (entityType === 'group') {
return PermalinkParts.forGroup(entity);
} else {
throw new Error("Unknown entity type in permalink");
}

View file

@ -69,9 +69,6 @@ export default class MatrixToPermalinkConstructor extends PermalinkConstructor {
if (entity[0] === '@') {
// Probably a user, no further parsing needed.
return PermalinkParts.forUser(entity);
} else if (entity[0] === '+') {
// Probably a group, no further parsing needed.
return PermalinkParts.forGroup(entity);
} else if (entity[0] === '#' || entity[0] === '!') {
if (parts.length === 1) { // room without event permalink
const [roomId, query=""] = entity.split("?");
@ -85,6 +82,8 @@ export default class MatrixToPermalinkConstructor extends PermalinkConstructor {
const via = query.split(/&?via=/g).filter(p => !!p);
return PermalinkParts.forEvent(entity, eventId, via);
} else if (entity[0] === '+') {
return PermalinkParts.forGroup(entity);
} else {
throw new Error("Unknown entity type in permalink");
}

View file

@ -54,14 +54,14 @@ export class PermalinkParts {
roomIdOrAlias: string;
eventId: string;
userId: string;
groupId: string;
viaServers: string[];
groupId: string;
constructor(roomIdOrAlias: string, eventId: string, userId: string, groupId: string, viaServers: string[]) {
this.roomIdOrAlias = roomIdOrAlias;
this.eventId = eventId;
this.groupId = groupId;
this.userId = userId;
this.groupId = groupId;
this.viaServers = viaServers;
}
@ -82,7 +82,7 @@ export class PermalinkParts {
}
get primaryEntityId(): string {
return this.roomIdOrAlias || this.userId || this.groupId;
return this.roomIdOrAlias || this.userId;
}
get sigil(): string {

View file

@ -321,7 +321,7 @@ export function tryTransformEntityToPermalink(entity: string): string {
if (permalinkParts) {
if (permalinkParts.roomIdOrAlias) {
const eventIdPart = permalinkParts.eventId ? `/${permalinkParts.eventId}` : '';
let pl = matrixtoBaseUrl+`/#/${permalinkParts.roomIdOrAlias}${eventIdPart}`;
let pl = matrixtoBaseUrl + `/#/${permalinkParts.roomIdOrAlias}${eventIdPart}`;
if (permalinkParts.viaServers.length > 0) {
pl += new MatrixToPermalinkConstructor().encodeServerCandidates(permalinkParts.viaServers);
}
@ -373,10 +373,10 @@ export function tryTransformPermalinkToLocalHref(permalink: string): string {
if (permalinkParts.viaServers.length > 0) {
permalink += new MatrixToPermalinkConstructor().encodeServerCandidates(permalinkParts.viaServers);
}
} else if (permalinkParts.groupId) {
permalink = `#/group/${permalinkParts.groupId}`;
} else if (permalinkParts.userId) {
permalink = `#/user/${permalinkParts.userId}`;
} else if (permalinkParts.groupId) {
permalink = `#/group/${permalinkParts.groupId}`;
} // else not a valid permalink for our purposes - do not handle
}
} catch (e) {
@ -403,8 +403,8 @@ export function getPrimaryPermalinkEntity(permalink: string): string {
if (!permalinkParts) return null; // not processable
if (permalinkParts.userId) return permalinkParts.userId;
if (permalinkParts.groupId) return permalinkParts.groupId;
if (permalinkParts.roomIdOrAlias) return permalinkParts.roomIdOrAlias;
if (permalinkParts.groupId) return permalinkParts.groupId;
} catch (e) {
// no entity - not a permalink
}