Removing community and user routes in favor of shortnames. Fixes #317 (#343)

This commit is contained in:
Dessalines 2021-07-21 11:01:32 -04:00 committed by GitHub
parent 79ce0e864a
commit cffdfab8eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 55 deletions

View file

@ -27,11 +27,10 @@ export class CommunityLink extends Component<CommunityLinkProps, any> {
title = community.title;
link = `/c/${community.name}`;
} else {
name_ = `${community.name}@${hostname(community.actor_id)}`;
title = `${community.title}@${hostname(community.actor_id)}`;
link = !this.props.realLink
? `/community/${community.id}`
: community.actor_id;
let domain = hostname(community.actor_id);
name_ = `${community.name}@${domain}`;
title = `${community.title}@${domain}`;
link = !this.props.realLink ? `/c/${name_}` : community.actor_id;
}
let apubName = `!${name_}`;

View file

@ -61,7 +61,6 @@ import { CommunityLink } from "./community-link";
interface State {
communityRes: GetCommunityResponse;
siteRes: GetSiteResponse;
communityId: number;
communityName: string;
communityLoading: boolean;
postsLoading: boolean;
@ -91,7 +90,6 @@ export class Community extends Component<any, State> {
private subscription: Subscription;
private emptyState: State = {
communityRes: undefined,
communityId: Number(this.props.match.params.id),
communityName: this.props.match.params.name,
communityLoading: true,
postsLoading: true,
@ -136,7 +134,6 @@ export class Community extends Component<any, State> {
fetchCommunity() {
let form: GetCommunity = {
id: this.state.communityId ? this.state.communityId : null,
name: this.state.communityName ? this.state.communityName : null,
auth: authField(false),
};
@ -198,7 +195,7 @@ export class Community extends Component<any, State> {
saved_only: false,
};
setOptionalAuth(getPostsForm, req.auth);
this.setIdOrName(getPostsForm, id, name_);
this.setName(getPostsForm, name_);
promises.push(req.client.getPosts(getPostsForm));
} else {
let getCommentsForm: GetComments = {
@ -209,20 +206,15 @@ export class Community extends Component<any, State> {
saved_only: false,
};
setOptionalAuth(getCommentsForm, req.auth);
this.setIdOrName(getCommentsForm, id, name_);
promises.push(req.client.getComments(getCommentsForm));
}
return promises;
}
static setIdOrName(obj: any, id: number, name_: string) {
if (id) {
obj.community_id = id;
} else {
static setName(obj: any, name_: string) {
obj.community_name = name_;
}
}
componentDidUpdate(_: any, lastState: State) {
if (
@ -404,9 +396,7 @@ export class Community extends Component<any, State> {
const sortStr = paramUpdates.sort || this.state.sort;
const page = paramUpdates.page || this.state.page;
let typeView = this.state.communityName
? `/c/${this.state.communityName}`
: `/community/${this.state.communityId}`;
let typeView = `/c/${this.state.communityName}`;
this.props.history.push(
`${typeView}/data_type/${dataTypeStr}/sort/${sortStr}/page/${page}`
@ -420,7 +410,6 @@ export class Community extends Component<any, State> {
limit: fetchLimit,
sort: this.state.sort,
type_: ListingType.Community,
community_id: this.state.communityId,
community_name: this.state.communityName,
saved_only: false,
auth: authField(false),
@ -432,7 +421,6 @@ export class Community extends Component<any, State> {
limit: fetchLimit,
sort: this.state.sort,
type_: ListingType.Community,
community_id: this.state.communityId,
community_name: this.state.communityName,
saved_only: false,
auth: authField(false),

View file

@ -28,8 +28,11 @@ export class PersonListing extends Component<PersonListingProps, any> {
apubName = `@${person.name}`;
link = `/u/${person.name}`;
} else {
apubName = `@${person.name}@${hostname(person.actor_id)}`;
link = !this.props.realLink ? `/user/${person.id}` : person.actor_id;
let domain = hostname(person.actor_id);
apubName = `@${person.name}@${domain}`;
link = !this.props.realLink
? `/u/${person.name}@${domain}`
: person.actor_id;
}
let displayName = this.props.useApubName

View file

@ -31,7 +31,6 @@ import {
editPostFindRes,
elementUrl,
fetchLimit,
getIdFromProps,
getLanguage,
getUsernameFromProps,
languages,
@ -67,7 +66,6 @@ import { PersonListing } from "./person-listing";
interface PersonState {
personRes: GetPersonDetailsResponse;
personId: number;
userName: string;
view: PersonDetailsView;
sort: SortType;
@ -102,7 +100,6 @@ export class Person extends Component<any, PersonState> {
private subscription: Subscription;
private emptyState: PersonState = {
personRes: undefined,
personId: getIdFromProps(this.props),
userName: getUsernameFromProps(this.props),
loading: true,
view: Person.getViewFromProps(this.props.match.view),
@ -164,7 +161,6 @@ export class Person extends Component<any, PersonState> {
fetchUserData() {
let form: GetPersonDetails = {
person_id: this.state.personId,
username: this.state.userName,
sort: this.state.sort,
saved_only: this.state.view === PersonDetailsView.Saved,
@ -969,9 +965,7 @@ export class Person extends Component<any, PersonState> {
const viewStr = paramUpdates.view || PersonDetailsView[this.state.view];
const sortStr = paramUpdates.sort || this.state.sort;
let typeView = this.state.userName
? `/u/${this.state.userName}`
: `/user/${this.state.personId}`;
let typeView = `/u/${this.state.userName}`;
this.props.history.push(
`${typeView}/view/${viewStr}/sort/${sortStr}/page/${page}`

View file

@ -161,11 +161,6 @@ export class CreatePost extends Component<any, CreatePostState> {
get prevCommunityId(): number {
if (this.props.match.params.id) {
return this.props.match.params.id;
} else if (this.props.location.state) {
let lastLocation = this.props.location.state.prevPath;
if (lastLocation.includes("/community/")) {
return Number(lastLocation.split("/community/")[1]);
}
}
return null;
}

View file

@ -71,16 +71,6 @@ export const routes: IRoutePropsWithFetch[] = [
component: Post,
fetchInitialData: req => Post.fetchInitialData(req),
},
{
path: `/community/:id/data_type/:data_type/sort/:sort/page/:page`,
component: Community,
fetchInitialData: req => Community.fetchInitialData(req),
},
{
path: `/community/:id`,
component: Community,
fetchInitialData: req => Community.fetchInitialData(req),
},
{
path: `/c/:name/data_type/:data_type/sort/:sort/page/:page`,
component: Community,
@ -96,16 +86,6 @@ export const routes: IRoutePropsWithFetch[] = [
component: Person,
fetchInitialData: req => Person.fetchInitialData(req),
},
{
path: `/user/:id/view/:view/sort/:sort/page/:page`,
component: Person,
fetchInitialData: req => Person.fetchInitialData(req),
},
{
path: `/user/:id`,
component: Person,
fetchInitialData: req => Person.fetchInitialData(req),
},
{
path: `/u/:username`,
component: Person,