|
24 | 24 | * @module
|
25 | 25 | */
|
26 | 26 | import type { ApiRequestRegistration } from '@recipe-report/domain/interfaces'
|
27 |
| -import { Helmet } from 'react-helmet' |
| 27 | +import { Helmet, HelmetProvider } from 'react-helmet-async' |
28 | 28 | import { useForm } from 'react-hook-form'
|
29 | 29 | import type { SubmitHandler } from 'react-hook-form'
|
30 | 30 |
|
@@ -68,61 +68,67 @@ export function Registration(): JSX.Element {
|
68 | 68 |
|
69 | 69 | return (
|
70 | 70 | <div>
|
71 |
| - <Helmet> |
72 |
| - <meta charSet='utf-8' /> |
73 |
| - <title>Register - Recipe.Report</title> |
74 |
| - <link rel='canonical' href='https://my.recipe.report' /> |
75 |
| - </Helmet> |
76 |
| - <form onSubmit={handleSubmit(onSubmit)} className={styles['form']}> |
77 |
| - <div className={styles['logo']}> |
78 |
| - <Logo /> |
79 |
| - </div> |
80 |
| - <h1>Create an account</h1> |
81 |
| - <Spacer size={20} axis='vertical' /> |
82 |
| - <label>Username</label> |
83 |
| - <input type='text' className={styles['input']} {...register(`name`, { required: true })} /> |
84 |
| - {errors.name && ( |
85 |
| - <span className={styles['error']}>Please enter your desired username.</span> |
86 |
| - )} |
87 |
| - <Spacer size={20} axis='vertical' /> |
88 |
| - <label>Email address</label> |
89 |
| - <input |
90 |
| - type='text' |
91 |
| - className={styles['input']} |
92 |
| - {...register(`email_address`, { required: true })} |
93 |
| - /> |
94 |
| - {errors.email_address && ( |
95 |
| - <span className={styles['error']}>Please enter your email address.</span> |
96 |
| - )} |
97 |
| - <Spacer size={20} axis='vertical' /> |
98 |
| - <label>Password</label> |
99 |
| - <input |
100 |
| - type='password' |
101 |
| - className={styles['input']} |
102 |
| - {...register(`password`, { required: true })} |
103 |
| - /> |
104 |
| - {errors.password && ( |
105 |
| - <span className={styles['error']}>Please enter your new secure password.</span> |
106 |
| - )} |
107 |
| - <Spacer size={30} axis='vertical' /> |
108 |
| - {status !== 'Registered' && status !== 'Loading' && ( |
109 |
| - <input type='submit' className={styles['input']} value='Submit' /> |
110 |
| - )} |
111 |
| - {status === 'Loading' && ( |
112 |
| - <Alert style={alertStyles.SPIN} title={status} message={message} code={code} /> |
113 |
| - )} |
114 |
| - {status === 'Registered' && ( |
115 |
| - <Alert style={alertStyles.SUCCESS} title={status} message={message} code={code} /> |
116 |
| - )} |
117 |
| - {status === 'Failed' && ( |
118 |
| - <Alert style={alertStyles.ERROR} title={status} message={message} code={code} /> |
119 |
| - )} |
120 |
| - {status === 'Error' && ( |
121 |
| - <Alert style={alertStyles.ERROR} title={status} message={message} code={code} /> |
122 |
| - )} |
123 |
| - <Spacer size={20} axis='vertical' /> |
124 |
| - <a href='/authenticate'>Sign in</a> |
125 |
| - </form> |
| 71 | + <HelmetProvider> |
| 72 | + <Helmet> |
| 73 | + <meta charSet='utf-8' /> |
| 74 | + <title>Register - Recipe.Report</title> |
| 75 | + <link rel='canonical' href='https://my.recipe.report' /> |
| 76 | + </Helmet> |
| 77 | + <form onSubmit={handleSubmit(onSubmit)} className={styles['form']}> |
| 78 | + <div className={styles['logo']}> |
| 79 | + <Logo /> |
| 80 | + </div> |
| 81 | + <h1>Create an account</h1> |
| 82 | + <Spacer size={20} axis='vertical' /> |
| 83 | + <label>Username</label> |
| 84 | + <input |
| 85 | + type='text' |
| 86 | + className={styles['input']} |
| 87 | + {...register(`name`, { required: true })} |
| 88 | + /> |
| 89 | + {errors.name && ( |
| 90 | + <span className={styles['error']}>Please enter your desired username.</span> |
| 91 | + )} |
| 92 | + <Spacer size={20} axis='vertical' /> |
| 93 | + <label>Email address</label> |
| 94 | + <input |
| 95 | + type='text' |
| 96 | + className={styles['input']} |
| 97 | + {...register(`email_address`, { required: true })} |
| 98 | + /> |
| 99 | + {errors.email_address && ( |
| 100 | + <span className={styles['error']}>Please enter your email address.</span> |
| 101 | + )} |
| 102 | + <Spacer size={20} axis='vertical' /> |
| 103 | + <label>Password</label> |
| 104 | + <input |
| 105 | + type='password' |
| 106 | + className={styles['input']} |
| 107 | + {...register(`password`, { required: true })} |
| 108 | + /> |
| 109 | + {errors.password && ( |
| 110 | + <span className={styles['error']}>Please enter your new secure password.</span> |
| 111 | + )} |
| 112 | + <Spacer size={30} axis='vertical' /> |
| 113 | + {status !== 'Registered' && status !== 'Loading' && ( |
| 114 | + <input type='submit' className={styles['input']} value='Submit' /> |
| 115 | + )} |
| 116 | + {status === 'Loading' && ( |
| 117 | + <Alert style={alertStyles.SPIN} title={status} message={message} code={code} /> |
| 118 | + )} |
| 119 | + {status === 'Registered' && ( |
| 120 | + <Alert style={alertStyles.SUCCESS} title={status} message={message} code={code} /> |
| 121 | + )} |
| 122 | + {status === 'Failed' && ( |
| 123 | + <Alert style={alertStyles.ERROR} title={status} message={message} code={code} /> |
| 124 | + )} |
| 125 | + {status === 'Error' && ( |
| 126 | + <Alert style={alertStyles.ERROR} title={status} message={message} code={code} /> |
| 127 | + )} |
| 128 | + <Spacer size={20} axis='vertical' /> |
| 129 | + <a href='/authenticate'>Sign in</a> |
| 130 | + </form> |
| 131 | + </HelmetProvider> |
126 | 132 | </div>
|
127 | 133 | )
|
128 | 134 | }
|
0 commit comments