Hide create community (#787)

* Adding post and comment language tagging. Fixes #771

* Hiding create community button. Fixes #754
This commit is contained in:
Dessalines 2022-09-22 11:14:58 -04:00 committed by GitHub
parent 6320357d21
commit c6e3a4213a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 321 additions and 36 deletions

View file

@ -6,6 +6,7 @@ import {
CommunityView,
CreatePost,
EditPost,
Language,
ListingType,
PostResponse,
PostView,
@ -36,6 +37,7 @@ import {
ghostArchiveUrl,
isBrowser,
isImage,
myFirstDiscussionLanguageId,
pictrsDeleteToast,
relTags,
setupTippy,
@ -48,6 +50,7 @@ import {
wsSubscribe,
} from "../../utils";
import { Icon, Spinner } from "../common/icon";
import { LanguageSelect } from "../common/language-select";
import { MarkdownTextArea } from "../common/markdown-textarea";
import { PostListings } from "./post-listings";
@ -60,6 +63,7 @@ const MAX_POST_TITLE_LENGTH = 200;
interface PostFormProps {
post_view: Option<PostView>; // If a post is given, that means this is an edit
allLanguages: Language[];
communities: Option<CommunityView[]>;
params: Option<PostFormParams>;
onCancel?(): any;
@ -90,6 +94,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
url: None,
body: None,
honeypot: None,
language_id: None,
auth: undefined,
}),
loading: false,
@ -105,6 +110,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
this.fetchSimilarPosts = debounce(this.fetchSimilarPosts.bind(this));
this.fetchPageTitle = debounce(this.fetchPageTitle.bind(this));
this.handlePostBodyChange = this.handlePostBodyChange.bind(this);
this.handleLanguageChange = this.handleLanguageChange.bind(this);
this.state = this.emptyState;
@ -124,6 +130,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
url: pv.post.url,
nsfw: Some(pv.post.nsfw),
honeypot: None,
language_id: Some(pv.post.language_id),
auth: auth().unwrap(),
}),
};
@ -172,6 +179,10 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
}
render() {
let selectedLangs = this.state.postForm.language_id
.or(myFirstDiscussionLanguageId(UserService.Instance.myUserInfo))
.map(Array.of);
return (
<div>
<Prompt
@ -284,6 +295,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
posts={xPosts}
enableDownvotes={this.props.enableDownvotes}
enableNsfw={this.props.enableNsfw}
allLanguages={this.props.allLanguages}
/>
</>
),
@ -325,6 +337,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
posts={sPosts}
enableDownvotes={this.props.enableDownvotes}
enableNsfw={this.props.enableNsfw}
allLanguages={this.props.allLanguages}
/>
</>
),
@ -338,10 +351,12 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
<div className="col-sm-10">
<MarkdownTextArea
initialContent={this.state.postForm.body}
initialLanguageId={None}
onContentChange={this.handlePostBodyChange}
placeholder={None}
buttonTitle={None}
maxLength={None}
allLanguages={this.props.allLanguages}
/>
</div>
</div>
@ -388,6 +403,12 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
</div>
</div>
)}
<LanguageSelect
allLanguages={this.props.allLanguages}
selectedLanguageIds={selectedLangs}
multiple={false}
onChange={this.handleLanguageChange}
/>
<input
tabIndex={-1}
autoComplete="false"
@ -453,6 +474,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
body: pForm.body,
nsfw: pForm.nsfw,
post_id: pv.post.id,
language_id: Some(pv.post.language_id),
auth: auth().unwrap(),
});
WebSocketService.Instance.send(wsClient.editPost(form));
@ -559,6 +581,10 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
i.setState(s => ((s.postForm.nsfw = Some(event.target.checked)), s));
}
handleLanguageChange(val: number[]) {
this.setState(s => ((s.postForm.language_id = Some(val[0])), s));
}
handleHoneyPotChange(i: PostForm, event: any) {
i.setState(s => ((s.postForm.honeypot = Some(event.target.value)), s));
}