Files
my-links/components/FormLayout.tsx
Sonny 45f5455f94 feat/fix/chore: refactor project structure + add favicon
- Changement de structure de fichier
- Ajout des favicons des sites
- Suppression et mise à jour de dépendances
- Ajout React-Icons pour gérer les icons
- Amélioration du l'UI
2023-04-20 18:18:03 +02:00

58 lines
1.2 KiB
TypeScript

import { NextSeo } from "next-seo";
import Link from "next/link";
import MessageManager from "./MessageManager/MessageManager";
import styles from "../styles/create.module.scss";
interface FormProps {
title: string;
errorMessage?: string;
successMessage?: string;
infoMessage?: string;
canSubmit: boolean;
handleSubmit: (event) => void;
textBtnConfirm?: string;
classBtnConfirm?: string;
children: any;
}
export default function Form({
title,
errorMessage,
successMessage,
infoMessage,
canSubmit,
handleSubmit,
textBtnConfirm = "Valider",
classBtnConfirm = "",
children,
}: FormProps) {
return (
<>
<NextSeo title={title} />
<div className={`App ${styles["create-app"]}`}>
<h2>{title}</h2>
<form onSubmit={handleSubmit}>
{children}
<button
type="submit"
className={classBtnConfirm}
disabled={!canSubmit}
>
{textBtnConfirm}
</button>
</form>
<Link href="/"> Revenir à l'accueil</Link>
<MessageManager
info={infoMessage}
error={errorMessage}
success={successMessage}
/>
</div>
</>
);
}