add authentication routes, components, and pages including AuthHome, Login, and SignUp, and implement form fields utility functions
```
This commit is contained in:
louiscklaw
2025-05-12 19:22:00 +08:00
parent ee0aa0353b
commit 3f10a0728c
14 changed files with 543 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
import { IonInput, IonLabel } from '@ionic/react';
import styles from './style.module.scss';
function CustomField({
field,
errors,
}: {
field: {
id: string;
label: string;
required: boolean;
input: {
props: { type: string; placeholder: string };
state: {
value: string;
reset: (newValue: any) => void;
onIonChange: (e: any) => Promise<void>;
onKeyUp: (e: any) => Promise<void>;
};
};
};
errors: any;
}): React.JSX.Element {
const error = errors && errors.filter((e) => e.id === field.id)[0];
const errorMessage = error && errors.filter((e) => e.id === field.id)[0].message;
return (
<>
<div className={styles.field}>
<IonLabel className={styles.fieldLabel}>
{field.label}
{error && <p className="animate__animated animate__bounceIn">{errorMessage}</p>}
</IonLabel>
<IonInput className={styles.customInput} {...field.input.props} {...field.input.state} />
</div>
</>
);
}
export { CustomField };