0">
-
-
-
![]()
-
- PDF
- 3D
-
-
{{ file.file.name }}
+
+
+
+
+
+ {{ 'CONTACT.TYPE_PRIVATE' | translate }}
+
+
+ {{ 'CONTACT.TYPE_COMPANY' | translate }}
-
-
-
- {{ sent() ? ('CONTACT.MSG_SENT' | translate) : ('CONTACT.SEND' | translate) }}
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ sent() ? ('CONTACT.MSG_SENT' | translate) : ('CONTACT.SEND' | translate) }}
+
+
+
+}
diff --git a/frontend/src/app/features/contact/components/contact-form/contact-form.component.scss b/frontend/src/app/features/contact/components/contact-form/contact-form.component.scss
index 299a2d0..e8437e2 100644
--- a/frontend/src/app/features/contact/components/contact-form/contact-form.component.scss
+++ b/frontend/src/app/features/contact/components/contact-form/contact-form.component.scss
@@ -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;
+ }
+}
diff --git a/frontend/src/app/features/contact/components/contact-form/contact-form.component.ts b/frontend/src/app/features/contact/components/contact-form/contact-form.component.ts
index 8889620..f46b7da 100644
--- a/frontend/src/app/features/contact/components/contact-form/contact-form.component.ts
+++ b/frontend/src/app/features/contact/components/contact-form/contact-form.component.ts
@@ -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([]);
+ }
}
diff --git a/frontend/src/assets/i18n/en.json b/frontend/src/assets/i18n/en.json
index 938928f..a44cb04 100644
--- a/frontend/src/assets/i18n/en.json
+++ b/frontend/src/assets/i18n/en.json
@@ -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"
}
}
diff --git a/frontend/src/assets/i18n/it.json b/frontend/src/assets/i18n/it.json
index 98e4dc8..70a7190 100644
--- a/frontend/src/assets/i18n/it.json
+++ b/frontend/src/assets/i18n/it.json
@@ -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"
}
}