From cffdfab8eb7157d09895074b559fd4aa6cbf6e99 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Wed, 21 Jul 2021 11:01:32 -0400 Subject: [PATCH] Removing community and user routes in favor of shortnames. Fixes #317 (#343) --- .../components/community/community-link.tsx | 9 ++++----- src/shared/components/community/community.tsx | 20 ++++--------------- .../components/person/person-listing.tsx | 7 +++++-- src/shared/components/person/person.tsx | 8 +------- src/shared/components/post/create-post.tsx | 5 ----- src/shared/routes.ts | 20 ------------------- 6 files changed, 14 insertions(+), 55 deletions(-) diff --git a/src/shared/components/community/community-link.tsx b/src/shared/components/community/community-link.tsx index fe68a27e9..96db808fb 100644 --- a/src/shared/components/community/community-link.tsx +++ b/src/shared/components/community/community-link.tsx @@ -27,11 +27,10 @@ export class CommunityLink extends Component { 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_}`; diff --git a/src/shared/components/community/community.tsx b/src/shared/components/community/community.tsx index 247391d66..09bc837a0 100644 --- a/src/shared/components/community/community.tsx +++ b/src/shared/components/community/community.tsx @@ -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 { 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 { 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 { 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,19 +206,14 @@ export class Community extends Component { 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 { - obj.community_name = name_; - } + static setName(obj: any, name_: string) { + obj.community_name = name_; } componentDidUpdate(_: any, lastState: State) { @@ -404,9 +396,7 @@ export class Community extends Component { 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 { 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 { 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), diff --git a/src/shared/components/person/person-listing.tsx b/src/shared/components/person/person-listing.tsx index cfd416118..60e509cc9 100644 --- a/src/shared/components/person/person-listing.tsx +++ b/src/shared/components/person/person-listing.tsx @@ -28,8 +28,11 @@ export class PersonListing extends Component { 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 diff --git a/src/shared/components/person/person.tsx b/src/shared/components/person/person.tsx index a314a3071..320c04619 100644 --- a/src/shared/components/person/person.tsx +++ b/src/shared/components/person/person.tsx @@ -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 { 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 { 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 { 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}` diff --git a/src/shared/components/post/create-post.tsx b/src/shared/components/post/create-post.tsx index edd768dee..d2945b588 100644 --- a/src/shared/components/post/create-post.tsx +++ b/src/shared/components/post/create-post.tsx @@ -161,11 +161,6 @@ export class CreatePost extends Component { 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; } diff --git a/src/shared/routes.ts b/src/shared/routes.ts index 7bfc8f9ff..d48631620 100644 --- a/src/shared/routes.ts +++ b/src/shared/routes.ts @@ -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,