feat(web): success message contact us
This commit is contained in:
@@ -1,3 +1,16 @@
|
||||
@if (sent()) {
|
||||
<div class="success-state">
|
||||
<div class="success-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path>
|
||||
<polyline points="22 4 12 14.01 9 11.01"></polyline>
|
||||
</svg>
|
||||
</div>
|
||||
<h3>{{ 'CONTACT.SUCCESS_TITLE' | translate }}</h3>
|
||||
<p>{{ 'CONTACT.SUCCESS_DESC' | translate }}</p>
|
||||
<app-button (click)="resetForm()">{{ 'CONTACT.SEND_ANOTHER' | translate }}</app-button>
|
||||
</div>
|
||||
} @else {
|
||||
<form [formGroup]="form" (ngSubmit)="onSubmit()">
|
||||
<!-- Request Type -->
|
||||
<div class="form-group">
|
||||
@@ -71,3 +84,4 @@
|
||||
</app-button>
|
||||
</div>
|
||||
</form>
|
||||
}
|
||||
|
||||
@@ -131,3 +131,41 @@ app-input.col { width: 100%; }
|
||||
display: flex; align-items: center; justify-content: center; line-height: 1;
|
||||
&:hover { background: red; }
|
||||
}
|
||||
|
||||
/* Success State */
|
||||
.success-state {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
padding: var(--space-8) var(--space-4);
|
||||
gap: var(--space-4);
|
||||
min-height: 300px; /* Ensure visual balance */
|
||||
|
||||
.success-icon {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
color: var(--color-success, #10b981);
|
||||
margin-bottom: var(--space-2);
|
||||
|
||||
svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
p {
|
||||
color: var(--color-text-muted);
|
||||
max-width: 400px;
|
||||
margin-bottom: var(--space-4);
|
||||
line-height: 1.5;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,13 +161,14 @@ export class ContactFormComponent {
|
||||
console.log('Form Submit:', formData);
|
||||
|
||||
this.sent.set(true);
|
||||
setTimeout(() => {
|
||||
this.sent.set(false);
|
||||
this.form.reset({ requestType: 'custom', isCompany: false });
|
||||
this.files.set([]);
|
||||
}, 3000);
|
||||
} else {
|
||||
this.form.markAllAsTouched();
|
||||
}
|
||||
}
|
||||
|
||||
resetForm() {
|
||||
this.sent.set(false);
|
||||
this.form.reset({ requestType: 'custom', isCompany: false });
|
||||
this.files.set([]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,6 +126,9 @@
|
||||
"LABEL_EMAIL": "Email *",
|
||||
"LABEL_NAME": "Name *",
|
||||
"MSG_SENT": "Sent!",
|
||||
"ERR_MAX_FILES": "Max 15 files limit reached."
|
||||
"ERR_MAX_FILES": "Max 15 files limit reached.",
|
||||
"SUCCESS_TITLE": "Message Sent Successfully",
|
||||
"SUCCESS_DESC": "Thank you for contacting us. We have received your message and will send you a recap email shortly.",
|
||||
"SEND_ANOTHER": "Send Another Message"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,6 +105,9 @@
|
||||
"LABEL_EMAIL": "Email *",
|
||||
"LABEL_NAME": "Nome *",
|
||||
"MSG_SENT": "Inviato!",
|
||||
"ERR_MAX_FILES": "Limite massimo di 15 file raggiunto."
|
||||
"ERR_MAX_FILES": "Limite massimo di 15 file raggiunto.",
|
||||
"SUCCESS_TITLE": "Messaggio Inviato con Successo",
|
||||
"SUCCESS_DESC": "Grazie per averci contattato. Abbiamo ricevuto il tuo messaggio e ti invieremo una email di riepilogo a breve.",
|
||||
"SEND_ANOTHER": "Invia un altro messaggio"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user