This commit is contained in:
Vins 2024-06-18 09:39:36 +02:00
parent a9b74a5716
commit 332eb9cda7
3 changed files with 216 additions and 0 deletions

View File

@ -0,0 +1,154 @@
.container {
padding: 24px;
background-color: #3d006f; // Adjusted to match the background color in the image
border-radius: 10px;
color: #fff;
font-family: "Arial", sans-serif;
max-width: 400px;
margin: auto;
text-align: center;
.root {
padding: 24px;
background-color: var(--white);
border: 1px dashed #e7e7e7;
height: fit-content;
&[data-drag-over="true"] {
border: 1px dashed var(--grey);
}
&.validated {
border: 1px dashed var(--green-flash);
}
.top-container {
display: flex;
align-items: center;
.left {
margin-right: 28px;
}
.separator {
background-color: #939393;
width: 1px;
align-self: stretch;
}
.right {
margin-left: 18px;
.validated {
color: var(--green-flash);
}
.refused-button {
font-size: 14px;
color: var(--re-hover);
margin-left: 8px;
}
.title {
display: flex;
align-items: center;
gap: 8px;
}
}
}
.documents-container {
display: flex;
flex-direction: column;
gap: 16px;
margin-top: 16px;
.file-container {
display: flex;
align-items: center;
justify-content: space-between;
.left-part {
display: flex;
align-items: center;
gap: 8px;
.loader {
width: 32px;
height: 32px;
}
}
.cross {
cursor: pointer;
}
}
}
.bottom-container {
margin-top: 16px;
.add-button {
.add-document {
display: flex;
align-items: center;
gap: 14px;
}
}
}
.text {
margin-bottom: 12px;
}
}
.modal-content {
display: flex;
flex-direction: column;
gap: 16px;
}
.error-message {
color: var(--red-flash);
margin-top: 8px;
}
h2 {
font-size: 24px;
margin-bottom: 8px;
}
.subtitle {
font-size: 16px;
margin-bottom: 20px;
}
.email-input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
margin-bottom: 20px;
font-size: 16px;
color: #333;
}
.submit-button {
width: 100%;
padding: 10px;
background-color: #e91e63; // Adjusted to match the button color in the image
border: none;
border-radius: 5px;
font-size: 16px;
color: #fff;
cursor: pointer;
transition: background-color 0.3s;
&:hover {
background-color: #d81b60; // Darker shade for hover effect
}
}
.response {
margin-top: 10px;
}
}

View File

@ -0,0 +1,60 @@
import React from "react";
import classes from "./classes.module.scss";
import TextField from "../Form/TextField";
import Button, { EButtonVariant } from "../Button";
type IProps = {};
interface IState {
email: string;
errorMessage: string;
successMessage: string;
}
export default class Newsletter extends React.Component<IProps, IState> {
constructor(props: IProps) {
super(props);
this.state = {
email: "",
errorMessage: "",
successMessage: "",
};
}
handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => {
this.setState({ email: e.target.value });
};
handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
console.log("submit");
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(this.state.email)) {
this.setState({ errorMessage: "Invalid email address", successMessage: "" });
return;
}
// Clear error message
this.setState({ errorMessage: "" });
// Normally, form submission would happen here
// For demo purposes, we'll just show a success message
this.setState({ successMessage: "Subscription successful!", email: "" });
};
public override render(): JSX.Element {
return (
<div className={classes["container"]}>
<h2>Restez Informé(e) avec notre Newsletter</h2>
<p className="subtitle">Ne manquez aucune de nos actualités, promotions exclusives et conseils d'experts !</p>
<TextField name="EMAIL" placeholder="Email" onChange={this.handleChange} />
<div className={classes["buttons-container"]}>
<Button fullwidth type="submit" variant={EButtonVariant.GHOST}>
Envoyer
</Button>
</div>
</div>
);
}
}

View File

@ -4,6 +4,7 @@ import { OfficeFolder } from "le-coffre-resources/dist/Notary";
import BasePage from "../Base"; import BasePage from "../Base";
import classes from "./classes.module.scss"; import classes from "./classes.module.scss";
import Newletter from "@Front/Components/DesignSystem/Newsletter";
type IProps = {}; type IProps = {};
type IState = { type IState = {
@ -32,6 +33,7 @@ export default class Folder extends BasePage<IProps, IState> {
Sélectionnez un dossier Sélectionnez un dossier
</Typography> </Typography>
</div> </div>
<Newletter />
</div> </div>
</div> </div>
</DefaultNotaryDashboard> </DefaultNotaryDashboard>