From 80a7ed1c740fd10b6350188aeaf4995cf5187692 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Thu, 22 Jul 2021 11:35:56 -0400 Subject: [PATCH] Remove max length constraints on actors. Fixes #350 --- .../components/community/community-form.tsx | 1 - src/shared/components/home/login.tsx | 1 - src/shared/components/home/setup.tsx | 1 - src/shared/components/login.tsx | 490 ------------------ src/shared/components/person/person.tsx | 1 - 5 files changed, 494 deletions(-) delete mode 100644 src/shared/components/login.tsx diff --git a/src/shared/components/community/community-form.tsx b/src/shared/components/community/community-form.tsx index ecc2b890..f76d5485 100644 --- a/src/shared/components/community/community-form.tsx +++ b/src/shared/components/community/community-form.tsx @@ -139,7 +139,6 @@ export class CommunityForm extends Component< onInput={linkEvent(this, this.handleCommunityNameChange)} required minLength={3} - maxLength={20} pattern="[a-z0-9_]+" title={i18n.t("community_reqs")} /> diff --git a/src/shared/components/home/login.tsx b/src/shared/components/home/login.tsx index 8568316b..3f4ebdeb 100644 --- a/src/shared/components/home/login.tsx +++ b/src/shared/components/home/login.tsx @@ -186,7 +186,6 @@ export class Login extends Component { onInput={linkEvent(this, this.handleRegisterUsernameChange)} required minLength={3} - maxLength={20} pattern="[a-zA-Z0-9_]+" /> diff --git a/src/shared/components/home/setup.tsx b/src/shared/components/home/setup.tsx index e104cea4..eef59bd0 100644 --- a/src/shared/components/home/setup.tsx +++ b/src/shared/components/home/setup.tsx @@ -89,7 +89,6 @@ export class Setup extends Component { onInput={linkEvent(this, this.handleRegisterUsernameChange)} required minLength={3} - maxLength={20} pattern="[a-zA-Z0-9_]+" /> diff --git a/src/shared/components/login.tsx b/src/shared/components/login.tsx deleted file mode 100644 index 7d0163e0..00000000 --- a/src/shared/components/login.tsx +++ /dev/null @@ -1,490 +0,0 @@ -import { Component, linkEvent } from "inferno"; -import { T } from "inferno-i18next"; -import { - GetCaptchaResponse, - GetSiteResponse, - Login as LoginForm, - LoginResponse, - PasswordReset, - Register, - SiteView, - UserOperation, -} from "lemmy-js-client"; -import { Subscription } from "rxjs"; -import { i18n } from "../i18next"; -import { UserService, WebSocketService } from "../services"; -import { - authField, - isBrowser, - joinLemmyUrl, - setIsoData, - toast, - validEmail, - wsClient, - wsJsonToRes, - wsSubscribe, - wsUserOp, -} from "../utils"; -import { HtmlTags } from "./common/html-tags"; -import { Icon, Spinner } from "./common/icon"; - -interface State { - loginForm: LoginForm; - registerForm: Register; - loginLoading: boolean; - registerLoading: boolean; - captcha: GetCaptchaResponse; - captchaPlaying: boolean; - site_view: SiteView; -} - -export class Login extends Component { - private isoData = setIsoData(this.context); - private subscription: Subscription; - - emptyState: State = { - loginForm: { - username_or_email: undefined, - password: undefined, - }, - registerForm: { - username: undefined, - password: undefined, - password_verify: undefined, - show_nsfw: false, - captcha_uuid: undefined, - captcha_answer: undefined, - }, - loginLoading: false, - registerLoading: false, - captcha: undefined, - captchaPlaying: false, - site_view: this.isoData.site_res.site_view, - }; - - constructor(props: any, context: any) { - super(props, context); - - this.state = this.emptyState; - - this.parseMessage = this.parseMessage.bind(this); - this.subscription = wsSubscribe(this.parseMessage); - - if (isBrowser()) { - WebSocketService.Instance.send(wsClient.getCaptcha()); - } - } - - componentWillUnmount() { - if (isBrowser()) { - this.subscription.unsubscribe(); - } - } - - get documentTitle(): string { - return `${i18n.t("login")} - ${this.state.site_view.site.name}`; - } - - get isLemmyMl(): boolean { - return isBrowser() && window.location.hostname == "lemmy.ml"; - } - - render() { - return ( -
- -
-
{this.loginForm()}
-
{this.registerForm()}
-
-
- ); - } - - loginForm() { - return ( -
-
-
{i18n.t("login")}
-
- -
- -
-
-
- -
- - -
-
-
-
- -
-
-
-
- ); - } - - registerForm() { - return ( -
-
{i18n.t("sign_up")}
- -
- - -
- -
-
- -
- -
- - {!validEmail(this.state.registerForm.email) && ( - - )} -
-
- -
- -
- -
-
- -
- -
- -
-
- - {this.state.captcha && ( -
- - {this.showCaptcha()} -
- -
-
- )} - {this.state.site_view.site.enable_nsfw && ( -
-
-
- - -
-
-
- )} - {this.isLemmyMl && ( - - )} -
-
- -
-
-
- ); - } - - showCaptcha() { - return ( -
- {this.state.captcha.ok && ( - <> - {i18n.t("captcha")} - {this.state.captcha.ok.wav && ( - - )} - - )} -
- ); - } - - handleLoginSubmit(i: Login, event: any) { - event.preventDefault(); - i.state.loginLoading = true; - i.setState(i.state); - WebSocketService.Instance.send(wsClient.login(i.state.loginForm)); - } - - handleLoginUsernameChange(i: Login, event: any) { - i.state.loginForm.username_or_email = event.target.value; - i.setState(i.state); - } - - handleLoginPasswordChange(i: Login, event: any) { - i.state.loginForm.password = event.target.value; - i.setState(i.state); - } - - handleRegisterSubmit(i: Login, event: any) { - event.preventDefault(); - i.state.registerLoading = true; - i.setState(i.state); - WebSocketService.Instance.send(wsClient.register(i.state.registerForm)); - } - - handleRegisterUsernameChange(i: Login, event: any) { - i.state.registerForm.username = event.target.value; - i.setState(i.state); - } - - handleRegisterEmailChange(i: Login, event: any) { - i.state.registerForm.email = event.target.value; - if (i.state.registerForm.email == "") { - i.state.registerForm.email = undefined; - } - i.setState(i.state); - } - - handleRegisterPasswordChange(i: Login, event: any) { - i.state.registerForm.password = event.target.value; - i.setState(i.state); - } - - handleRegisterPasswordVerifyChange(i: Login, event: any) { - i.state.registerForm.password_verify = event.target.value; - i.setState(i.state); - } - - handleRegisterShowNsfwChange(i: Login, event: any) { - i.state.registerForm.show_nsfw = event.target.checked; - i.setState(i.state); - } - - handleRegisterCaptchaAnswerChange(i: Login, event: any) { - i.state.registerForm.captcha_answer = event.target.value; - i.setState(i.state); - } - - handleRegenCaptcha(_i: Login, event: any) { - event.preventDefault(); - WebSocketService.Instance.send(wsClient.getCaptcha()); - } - - handlePasswordReset(i: Login, event: any) { - event.preventDefault(); - let resetForm: PasswordReset = { - email: i.state.loginForm.username_or_email, - }; - WebSocketService.Instance.send(wsClient.passwordReset(resetForm)); - } - - handleCaptchaPlay(i: Login, event: any) { - event.preventDefault(); - let snd = new Audio("data:audio/wav;base64," + i.state.captcha.ok.wav); - snd.play(); - i.state.captchaPlaying = true; - i.setState(i.state); - snd.addEventListener("ended", () => { - snd.currentTime = 0; - i.state.captchaPlaying = false; - i.setState(this.state); - }); - } - - captchaPngSrc() { - return `data:image/png;base64,${this.state.captcha.ok.png}`; - } - - parseMessage(msg: any) { - let op = wsUserOp(msg); - console.log(msg); - if (msg.error) { - toast(i18n.t(msg.error), "danger"); - this.state = this.emptyState; - this.state.registerForm.captcha_answer = undefined; - // Refetch another captcha - WebSocketService.Instance.send(wsClient.getCaptcha()); - this.setState(this.state); - return; - } else { - if (op == UserOperation.Login) { - let data = wsJsonToRes(msg).data; - this.state = this.emptyState; - this.setState(this.state); - UserService.Instance.login(data); - WebSocketService.Instance.send( - wsClient.userJoin({ - auth: authField(), - }) - ); - toast(i18n.t("logged_in")); - this.props.history.push("/"); - } else if (op == UserOperation.Register) { - let data = wsJsonToRes(msg).data; - this.state = this.emptyState; - this.setState(this.state); - UserService.Instance.login(data); - WebSocketService.Instance.send( - wsClient.userJoin({ - auth: authField(), - }) - ); - this.props.history.push("/communities"); - } else if (op == UserOperation.GetCaptcha) { - let data = wsJsonToRes(msg).data; - if (data.ok) { - this.state.captcha = data; - this.state.registerForm.captcha_uuid = data.ok.uuid; - this.setState(this.state); - } - } else if (op == UserOperation.PasswordReset) { - toast(i18n.t("reset_password_mail_sent")); - } else if (op == UserOperation.GetSite) { - let data = wsJsonToRes(msg).data; - this.state.site_view = data.site_view; - this.setState(this.state); - } - } - } -} diff --git a/src/shared/components/person/person.tsx b/src/shared/components/person/person.tsx index 320c0461..b6cc4b39 100644 --- a/src/shared/components/person/person.tsx +++ b/src/shared/components/person/person.tsx @@ -679,7 +679,6 @@ export class Person extends Component { )} pattern="^(?!@)(.+)$" minLength={3} - maxLength={20} />