[next] Email (#2261)

* feat: suspending, banning, now propogation

* feat: added email rendering + localization support

* fix: fix related to lib

* refactor: moved juicer to queue task

* refactor: cleanup of job processor

* refactor: improved error messaging around failed email

* feat: initial forgot passwor impl

* fix: fixed rebase errors

* feat: send back Content-Language header with requests

* feat: added ban email

* feat: implemented forgotten password API

* fix: linting

* feat: support more emails

* fix: promise patches

* feat: initial confirm email API

* feat: added rate limiting

* feat: added URL support

* feat: added email docs

* fix: updated docs

* chore: documentation review

* fix: fixed build bug

* feat: implement forgot password in auth popup

* test: add tests + fixes

* chore: rename StatelessComponent to FunctionComponent

* fix: types and test fixes

* chore: upgrade deps

* fix: THANK YOU TESTS FOR SAVING MY A**

* chore: reorder imports

* chore: remove obsolete !

* feat: implement accounts bundle

* refactor: review suggestion

* fix: rebase upgrade error

* fix: rebase bug

* feat: reset password link support

* test: add tests for account password reset page

* fix: remove redirect uri

* fix: revert local state changes
This commit is contained in:
Wyatt Johnson
2019-05-09 22:54:56 +02:00
committed by Kiwi
parent 945bd7f2b0
commit df57b4eb17
487 changed files with 6794 additions and 2431 deletions
@@ -1,6 +1,6 @@
import cn from "classnames";
import { Localized } from "fluent-react/compat";
import React, { StatelessComponent } from "react";
import React, { FunctionComponent } from "react";
import { Flex, Typography } from "talk-ui/components";
@@ -10,7 +10,7 @@ interface HeaderProps {
main?: boolean;
}
const Header: StatelessComponent<HeaderProps> = ({ main }) => {
const Header: FunctionComponent<HeaderProps> = ({ main }) => {
return (
<Flex
alignItems="center"
+2 -2
View File
@@ -1,5 +1,5 @@
import React from "react";
import { StatelessComponent } from "react";
import { FunctionComponent } from "react";
import ReactDOM from "react-dom";
import { createManaged } from "talk-framework/lib/bootstrap";
@@ -13,7 +13,7 @@ async function main() {
userLocales: navigator.languages,
});
const Index: StatelessComponent = () => (
const Index: FunctionComponent = () => (
<ManagedTalkContextProvider>
<App />
</ManagedTalkContextProvider>
@@ -1,5 +1,5 @@
import { Localized } from "fluent-react/compat";
import React, { StatelessComponent } from "react";
import React, { FunctionComponent } from "react";
import { Field, Form } from "react-final-form";
import { OnSubmit } from "talk-framework/lib/form";
@@ -36,7 +36,7 @@ export interface AddOrganizationForm {
data: FormProps;
}
const AddOrganization: StatelessComponent<AddOrganizationForm> = props => {
const AddOrganization: FunctionComponent<AddOrganizationForm> = props => {
return (
<Form
onSubmit={props.onSubmit}
@@ -1,5 +1,5 @@
import { Localized } from "fluent-react/compat";
import React, { StatelessComponent } from "react";
import React, { FunctionComponent } from "react";
import { Button } from "talk-ui/components";
@@ -8,7 +8,7 @@ export interface BackButtonProps {
onGoToPreviousStep: () => void;
}
const BackButton: StatelessComponent<BackButtonProps> = ({
const BackButton: FunctionComponent<BackButtonProps> = ({
submitting,
onGoToPreviousStep,
}) => {
@@ -1,5 +1,5 @@
import { Localized } from "fluent-react/compat";
import React, { StatelessComponent } from "react";
import React, { FunctionComponent } from "react";
import { Field, Form } from "react-final-form";
import { OnSubmit } from "talk-framework/lib/form";
@@ -38,7 +38,7 @@ export interface CreateYourAccountForm {
data: FormProps;
}
const CreateYourAccount: StatelessComponent<CreateYourAccountForm> = props => {
const CreateYourAccount: FunctionComponent<CreateYourAccountForm> = props => {
return (
<Form
onSubmit={props.onSubmit}
@@ -1,5 +1,5 @@
import { Localized } from "fluent-react/compat";
import React, { StatelessComponent } from "react";
import React, { FunctionComponent } from "react";
import { Button, ButtonIcon } from "talk-ui/components";
@@ -7,7 +7,7 @@ export interface NextButtonProps {
submitting: boolean;
}
const NextButton: StatelessComponent<NextButtonProps> = props => {
const NextButton: FunctionComponent<NextButtonProps> = props => {
return (
<Button
variant="filled"
@@ -1,5 +1,5 @@
import { Localized } from "fluent-react/compat";
import React, { StatelessComponent } from "react";
import React, { FunctionComponent } from "react";
import { Field, Form } from "react-final-form";
import { OnSubmit } from "talk-framework/lib/form";
@@ -30,7 +30,7 @@ export interface PermittedDomainsForm {
};
}
const PermittedDomains: StatelessComponent<PermittedDomainsForm> = props => {
const PermittedDomains: FunctionComponent<PermittedDomainsForm> = props => {
return (
<Form
onSubmit={props.onSubmit}