diff --git a/src/FrontOffice.Main/Pages/Contact.razor b/src/FrontOffice.Main/Pages/Contact.razor new file mode 100644 index 0000000..3ed1a8f --- /dev/null +++ b/src/FrontOffice.Main/Pages/Contact.razor @@ -0,0 +1,238 @@ +@attribute [Route(RouteConstants.Contact.Index)] + +ارتباط با ما | فرصت + + +
+ + + ارتباط با ما + + آماده شنیدن صدای شما هستیم + + + سوالات، پیشنهادات یا انتقادات خود را با ما در میان بگذارید. تیم ما آماده پاسخگویی به شماست. + + + +
+ + + + +
+ + + + + + فرم تماس + + + + + + + + + + + + + + + + + + + + + + عمومی + پشتیبانی فنی + فروش و قیمت‌گذاری + شریک تجاری + شکایت + پیشنهاد + + + + + + + + + + + + با ارسال این فرم، + سیاست حفظ حریم خصوصی + و + شرایط استفاده + را می‌پذیرم. + + + + + + + + @(_isSubmitting ? "در حال ارسال..." : "ارسال پیام") + + + + + + + + + + + + اطلاعات تماس + + + + +
+ آدرس + + تهران، خیابان ولیعصر، پلاک ۱۲۳۴
+ کد پستی: ۱۲۳۴۵۶۷۸۹۰ +
+
+
+ + + +
+ تلفن + ۰۲۱-۱۲۳۴۵۶۷۸ +
+
+ + + +
+ ایمیل + info@foursat.co +
+
+ + + +
+ ساعات کاری + + شنبه تا پنج‌شنبه
+ ۹ صبح تا ۶ عصر +
+
+
+
+
+ + + + شبکه‌های اجتماعی + + + + تلگرام + + + + اینستاگرام + + + + لینکدین + + + + واتس‌اپ + + + +
+
+
+
+
+ + +
+ + موقعیت مکانی + + + +
+ + + نقشه موقعیت مکانی + + تهران، خیابان ولیعصر، پلاک ۱۲۳۴ + + +
+
+
+
+
+ diff --git a/src/FrontOffice.Main/Pages/Contact.razor.cs b/src/FrontOffice.Main/Pages/Contact.razor.cs new file mode 100644 index 0000000..33d3165 --- /dev/null +++ b/src/FrontOffice.Main/Pages/Contact.razor.cs @@ -0,0 +1,90 @@ +using FluentValidation; +using MudBlazor; +using Severity = MudBlazor.Severity; + +namespace FrontOffice.Main.Pages; +public partial class Contact +{ + private ContactForm _contactForm = new(); + private MudForm? _form; + private bool _isSubmitting; + private readonly ContactFormValidator _contactFormValidator = new(); + + private async Task SubmitContactForm() + { + if (_form is null) return; + + await _form.Validate(); + if (!_form.IsValid) return; + + if (!_contactForm.AcceptTerms) + { + Snackbar.Add("لطفاً شرایط و قوانین را بپذیرید.", MudBlazor.Severity.Warning); + return; + } + + _isSubmitting = true; + + try + { + // TODO: Send contact form to API + await Task.Delay(2000); // Simulate API call + + Snackbar.Add("پیام شما با موفقیت ارسال شد. به زودی با شما تماس خواهیم گرفت.", Severity.Success); + + // Reset form + _contactForm = new ContactForm(); + await _form.ResetAsync(); + } + catch (Exception ex) + { + Snackbar.Add($"خطا در ارسال پیام: {ex.Message}", Severity.Error); + } + finally + { + _isSubmitting = false; + await InvokeAsync(StateHasChanged); + } + } + + private void StartChat() + { + // TODO: Open chat widget or redirect to chat page + Snackbar.Add("چت آنلاین به زودی فعال خواهد شد.", Severity.Info); + } + + private void CallSupport() + { + // TODO: Initiate phone call or show phone number + Snackbar.Add("شماره تماس: ۰۲۱-۱۲۳۴۵۶۷۸", Severity.Info); + } + + private void SendEmail() + { + // TODO: Open email client or redirect to email page + Snackbar.Add("ایمیل: info@foursat.co", Severity.Info); + } + + public class ContactForm + { + public string? FirstName { get; set; } + public string? LastName { get; set; } + public string? Email { get; set; } + public string? Phone { get; set; } + public string? Subject { get; set; } + public string? Message { get; set; } + public bool AcceptTerms { get; set; } + } + + public class ContactFormValidator : FluentValidation.AbstractValidator + { + public ContactFormValidator() + { + RuleFor(x => x.FirstName).NotEmpty().WithMessage("نام الزامی است"); + RuleFor(x => x.LastName).NotEmpty().WithMessage("نام خانوادگی الزامی است"); + RuleFor(x => x.Email).NotEmpty().EmailAddress().WithMessage("ایمیل معتبر نیست"); + RuleFor(x => x.Subject).NotEmpty().WithMessage("انتخاب موضوع الزامی است"); + RuleFor(x => x.Message).NotEmpty().MinimumLength(10).WithMessage("پیام باید حداقل ۱۰ کاراکتر باشد"); + } + } +} \ No newline at end of file diff --git a/src/FrontOffice.Main/Shared/MainLayout.razor b/src/FrontOffice.Main/Shared/MainLayout.razor index 28a23a9..01195f8 100644 --- a/src/FrontOffice.Main/Shared/MainLayout.razor +++ b/src/FrontOffice.Main/Shared/MainLayout.razor @@ -37,7 +37,7 @@
سوالات متداول درباره ما - ارتباط با ما + ارتباط با ما
@@ -64,7 +64,7 @@ سوالات متداول درباره ما - ارتباط + ارتباط با ما @if (_isAuthenticated) diff --git a/src/FrontOffice.Main/Utilities/RouteConstants.cs b/src/FrontOffice.Main/Utilities/RouteConstants.cs index 22d2db4..05ee293 100644 --- a/src/FrontOffice.Main/Utilities/RouteConstants.cs +++ b/src/FrontOffice.Main/Utilities/RouteConstants.cs @@ -32,4 +32,9 @@ public static class RouteConstants { public const string Index = "/faq"; } + + public static class Contact + { + public const string Index = "/contact"; + } }