From 7720e37a63618868d75143871e36a2a5fa3ac747 Mon Sep 17 00:00:00 2001
From: SleeplessOne1917 <abias1122@gmail.com>
Date: Mon, 29 May 2023 13:01:52 +0000
Subject: [PATCH] Do not refresh when community is selected in create post
 (#1042)

---
 src/shared/components/post/create-post.tsx | 26 ++++++++++++----------
 src/shared/components/post/post-form.tsx   |  6 -----
 2 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/src/shared/components/post/create-post.tsx b/src/shared/components/post/create-post.tsx
index d8a2cce..28418d1 100644
--- a/src/shared/components/post/create-post.tsx
+++ b/src/shared/components/post/create-post.tsx
@@ -20,7 +20,6 @@ import {
   enableNsfw,
   getIdFromString,
   getQueryParams,
-  getQueryString,
   isBrowser,
   myAuth,
   setIsoData,
@@ -77,7 +76,7 @@ export class CreatePost extends Component<
 
       if (communityRes) {
         const communityChoice: Choice = {
-          label: communityRes.community_view.community.name,
+          label: communityRes.community_view.community.title,
           value: communityRes.community_view.community.id.toString(),
         };
 
@@ -176,18 +175,21 @@ export class CreatePost extends Component<
   updateUrl({ communityId }: Partial<CreatePostProps>) {
     const { communityId: urlCommunityId } = getCreatePostQueryParams();
 
-    const queryParams: QueryParams<CreatePostProps> = {
-      communityId: (communityId ?? urlCommunityId)?.toString(),
-    };
-
     const locationState = this.props.history.location.state as
       | PostFormParams
       | undefined;
 
-    this.props.history.replace(
-      `/create_post${getQueryString(queryParams)}`,
-      locationState
-    );
+    const url = new URL(location.href);
+
+    const newId = (communityId ?? urlCommunityId)?.toString();
+
+    if (newId !== undefined) {
+      url.searchParams.set("communityId", newId);
+    } else {
+      url.searchParams.delete("communityId");
+    }
+
+    history.replaceState(locationState, "", url);
 
     this.fetchCommunity();
   }
@@ -234,12 +236,12 @@ export class CreatePost extends Component<
     if (op === UserOperation.GetCommunity) {
       const {
         community_view: {
-          community: { name, id },
+          community: { title, id },
         },
       } = wsJsonToRes<GetCommunityResponse>(msg);
 
       this.setState({
-        selectedCommunityChoice: { label: name, value: id.toString() },
+        selectedCommunityChoice: { label: title, value: id.toString() },
         loading: false,
       });
     }
diff --git a/src/shared/components/post/post-form.tsx b/src/shared/components/post/post-form.tsx
index ef16837..18fcee7 100644
--- a/src/shared/components/post/post-form.tsx
+++ b/src/shared/components/post/post-form.tsx
@@ -644,13 +644,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
 
   handleCommunitySelect(choice: Choice) {
     if (this.props.onSelectCommunity) {
-      this.setState({
-        loading: true,
-      });
-
       this.props.onSelectCommunity(choice);
-
-      this.setState({ loading: false });
     }
   }
 
-- 
2.44.1