Do not refresh when community is selected in create post (#1042)

This commit is contained in:
SleeplessOne1917 2023-05-29 13:01:52 +00:00 committed by GitHub
parent 7bcf079acf
commit 7720e37a63
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 18 deletions

View file

@ -20,7 +20,6 @@ import {
enableNsfw, enableNsfw,
getIdFromString, getIdFromString,
getQueryParams, getQueryParams,
getQueryString,
isBrowser, isBrowser,
myAuth, myAuth,
setIsoData, setIsoData,
@ -77,7 +76,7 @@ export class CreatePost extends Component<
if (communityRes) { if (communityRes) {
const communityChoice: Choice = { const communityChoice: Choice = {
label: communityRes.community_view.community.name, label: communityRes.community_view.community.title,
value: communityRes.community_view.community.id.toString(), value: communityRes.community_view.community.id.toString(),
}; };
@ -176,18 +175,21 @@ export class CreatePost extends Component<
updateUrl({ communityId }: Partial<CreatePostProps>) { updateUrl({ communityId }: Partial<CreatePostProps>) {
const { communityId: urlCommunityId } = getCreatePostQueryParams(); const { communityId: urlCommunityId } = getCreatePostQueryParams();
const queryParams: QueryParams<CreatePostProps> = {
communityId: (communityId ?? urlCommunityId)?.toString(),
};
const locationState = this.props.history.location.state as const locationState = this.props.history.location.state as
| PostFormParams | PostFormParams
| undefined; | undefined;
this.props.history.replace( const url = new URL(location.href);
`/create_post${getQueryString(queryParams)}`,
locationState const newId = (communityId ?? urlCommunityId)?.toString();
);
if (newId !== undefined) {
url.searchParams.set("communityId", newId);
} else {
url.searchParams.delete("communityId");
}
history.replaceState(locationState, "", url);
this.fetchCommunity(); this.fetchCommunity();
} }
@ -234,12 +236,12 @@ export class CreatePost extends Component<
if (op === UserOperation.GetCommunity) { if (op === UserOperation.GetCommunity) {
const { const {
community_view: { community_view: {
community: { name, id }, community: { title, id },
}, },
} = wsJsonToRes<GetCommunityResponse>(msg); } = wsJsonToRes<GetCommunityResponse>(msg);
this.setState({ this.setState({
selectedCommunityChoice: { label: name, value: id.toString() }, selectedCommunityChoice: { label: title, value: id.toString() },
loading: false, loading: false,
}); });
} }

View file

@ -644,13 +644,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
handleCommunitySelect(choice: Choice) { handleCommunitySelect(choice: Choice) {
if (this.props.onSelectCommunity) { if (this.props.onSelectCommunity) {
this.setState({
loading: true,
});
this.props.onSelectCommunity(choice); this.props.onSelectCommunity(choice);
this.setState({ loading: false });
} }
} }