import { Button, TextField, Typography } from "@material-ui/core"; import { SetPassword_setPassword_errors } from "@saleor/auth/types/SetPassword"; import Form from "@saleor/components/Form"; import FormSpacer from "@saleor/components/FormSpacer"; import { makeStyles } from "@saleor/theme"; import getAccountErrorMessage from "@saleor/utils/errors/account"; import React from "react"; import { FormattedMessage, useIntl } from "react-intl"; const useStyles = makeStyles( theme => ({ errorText: { color: theme.palette.error.contrastText }, panel: { background: theme.palette.error.main, borderRadius: theme.spacing(), marginBottom: theme.spacing(3), padding: theme.spacing(1.5) }, submit: { width: "100%" } }), { name: "NewPasswordPage" } ); export interface NewPasswordPageFormData { password: string; confirmPassword: string; } export interface NewPasswordPageProps { disabled: boolean; errors: SetPassword_setPassword_errors[]; onSubmit: (data: NewPasswordPageFormData) => void; } const initialForm: NewPasswordPageFormData = { confirmPassword: "", password: "" }; const NewPasswordPage: React.FC = props => { const { disabled, errors, onSubmit } = props; const classes = useStyles(props); const intl = useIntl(); const error = getAccountErrorMessage( errors.find(err => err.field === "password"), intl ); return (
{({ change: handleChange, data, submit: handleSubmit }) => { const passwordError = data.password !== data.confirmPassword && data.password.length > 0; return ( <> {!!error && (
{error}
)} ); }} ); }; NewPasswordPage.displayName = "NewPasswordPage"; export default NewPasswordPage;