]> Untitled Git - lemmy-ui.git/commitdiff
Removing community and user routes in favor of shortnames. Fixes #317 (#343)
authorDessalines <dessalines@users.noreply.github.com>
Wed, 21 Jul 2021 15:01:32 +0000 (11:01 -0400)
committerGitHub <noreply@github.com>
Wed, 21 Jul 2021 15:01:32 +0000 (11:01 -0400)
src/shared/components/community/community-link.tsx
src/shared/components/community/community.tsx
src/shared/components/person/person-listing.tsx
src/shared/components/person/person.tsx
src/shared/components/post/create-post.tsx
src/shared/routes.ts

index fe68a27e9e790c5bc0bb78f87386fc4d72bee728..96db808fb189cb6adb90448e79bb580c1177ce1a 100644 (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_}`;
index 247391d668634d2451e5bf5df2e7ab4a046b69e4..09bc837a084562889c7d1cafc417996e422b41dc 100644 (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,19 +206,14 @@ 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 {
-      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<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),
index cfd416118a5a53854954677dd5a7de87bf7ec35b..60e509cc929d6c02c7736cde054e9810d189eede 100644 (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
index a314a30714a47b1b080d5fa4a8243ea303a4ad01..320c046192f32562d4f12e12a2604f8d70b5a8b1 100644 (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}`
index edd768dee2761773624ff7e4daf8723ce9887ee2..d2945b588f73253820ff9ff8375362fb3be6f70b 100644 (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;
   }
index 7bfc8f9fff7c63b6c5b30a0fbab1cad222d9382e..d48631620f02c1f1b95eca43b283e5f8cc8aca09 100644 (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,