u
This commit is contained in:
152
src/FrontOffice.Main/Shared/Footer.razor
Normal file
152
src/FrontOffice.Main/Shared/Footer.razor
Normal file
@@ -0,0 +1,152 @@
|
||||
@inject ISnackbar Snackbar
|
||||
|
||||
<footer class="footer-section">
|
||||
<MudContainer MaxWidth="MaxWidth.Large" Class="py-12">
|
||||
<!-- Main Footer Content -->
|
||||
<MudGrid Spacing="4" Class="mb-8">
|
||||
<!-- Company Info -->
|
||||
<MudItem xs="12" md="4">
|
||||
<MudStack Spacing="3">
|
||||
<div class="d-flex align-center gap-2 mb-2">
|
||||
<MudImage ObjectFit="ObjectFit.Cover"
|
||||
ObjectPosition="ObjectPosition.Center"
|
||||
Width="40"
|
||||
Height="40"
|
||||
Class="rounded-circle"
|
||||
Src="favicon.png" />
|
||||
<MudText Typo="Typo.h5" Class="fw-700">فرصت</MudText>
|
||||
</div>
|
||||
<MudText Typo="Typo.body2" Class="footer-description">
|
||||
پلتفرم هوشمند ساخت شبکههای فروش و MLM با امکانات پیشرفته مدیریت تیم، محاسبه کارمزد و گزارشگیری جامع.
|
||||
</MudText>
|
||||
<MudStack Row="true" Spacing="2" Class="social-links">
|
||||
<MudIconButton Icon="@Icons.Custom.Brands.Telegram"
|
||||
Color="Color.Inherit"
|
||||
Size="Size.Medium"
|
||||
Class="social-icon"
|
||||
Href="https://t.me/foursat"
|
||||
Target="_blank" />
|
||||
<MudIconButton Icon="@Icons.Custom.Brands.Instagram"
|
||||
Color="Color.Inherit"
|
||||
Size="Size.Medium"
|
||||
Class="social-icon"
|
||||
Href="https://instagram.com/foursat"
|
||||
Target="_blank" />
|
||||
<MudIconButton Icon="@Icons.Custom.Brands.LinkedIn"
|
||||
Color="Color.Inherit"
|
||||
Size="Size.Medium"
|
||||
Class="social-icon"
|
||||
Href="https://linkedin.com/company/foursat"
|
||||
Target="_blank" />
|
||||
<MudIconButton Icon="@Icons.Custom.Brands.WhatsApp"
|
||||
Color="Color.Inherit"
|
||||
Size="Size.Medium"
|
||||
Class="social-icon"
|
||||
Href="https://wa.me/989123456789"
|
||||
Target="_blank" />
|
||||
</MudStack>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
|
||||
<!-- Quick Links -->
|
||||
<MudItem xs="12" sm="6" md="2">
|
||||
<MudStack Spacing="2">
|
||||
<MudText Typo="Typo.subtitle1" Class="fw-700 footer-title">دسترسی سریع</MudText>
|
||||
<MudLink Href="#features" Class="footer-link">امکانات</MudLink>
|
||||
<MudLink Href="#pricing" Class="footer-link">قیمتها</MudLink>
|
||||
<MudLink Href="#faq" Class="footer-link">سوالات متداول</MudLink>
|
||||
<MudLink Href="#contact" Class="footer-link">ارتباط با ما</MudLink>
|
||||
<MudLink Href="/auth/phone" Class="footer-link">ورود</MudLink>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
|
||||
<!-- Services -->
|
||||
<MudItem xs="12" sm="6" md="2">
|
||||
<MudStack Spacing="2">
|
||||
<MudText Typo="Typo.subtitle1" Class="fw-700 footer-title">خدمات</MudText>
|
||||
<MudLink Href="#" Class="footer-link">پکیج استارتر</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">پکیج رشد</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">پکیج اسکیل</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">مشاوره رایگان</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">پشتیبانی فنی</MudLink>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
|
||||
<!-- Support -->
|
||||
<MudItem xs="12" sm="6" md="2">
|
||||
<MudStack Spacing="2">
|
||||
<MudText Typo="Typo.subtitle1" Class="fw-700 footer-title">پشتیبانی</MudText>
|
||||
<MudLink Href="#" Class="footer-link">مرکز راهنمایی</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">آموزشها</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">وبلاگ</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">تماس با ما</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">گزارش مشکل</MudLink>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
|
||||
<!-- Contact Info -->
|
||||
<MudItem xs="12" sm="6" md="2">
|
||||
<MudStack Spacing="2">
|
||||
<MudText Typo="Typo.subtitle1" Class="fw-700 footer-title">تماس</MudText>
|
||||
<div class="d-flex align-center gap-2">
|
||||
<MudIcon Icon="@Icons.Material.Filled.Phone" Size="Size.Small" />
|
||||
<MudText Typo="Typo.body2" Class="footer-contact">۰۲۱-۱۲۳۴۵۶۷۸</MudText>
|
||||
</div>
|
||||
<div class="d-flex align-center gap-2">
|
||||
<MudIcon Icon="@Icons.Material.Filled.Email" Size="Size.Small" />
|
||||
<MudText Typo="Typo.body2" Class="footer-contact">info@foursat.co</MudText>
|
||||
</div>
|
||||
<div class="d-flex align-start gap-2">
|
||||
<MudIcon Icon="@Icons.Material.Filled.LocationOn" Size="Size.Small" Class="mt-1" />
|
||||
<MudText Typo="Typo.body2" Class="footer-contact">
|
||||
تهران، خیابان ولیعصر، پلاک ۱۲۳۴
|
||||
</MudText>
|
||||
</div>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
|
||||
<!-- Newsletter Subscription -->
|
||||
<MudDivider Class="my-6" />
|
||||
<MudGrid Justify="Justify.Center" Class="mb-6">
|
||||
<MudItem xs="12" md="8" lg="6">
|
||||
<MudPaper Elevation="2" Class="pa-4 rounded-2xl newsletter-section">
|
||||
<MudText Typo="Typo.h6" Class="fw-700 mb-2" Align="Align.Center">عضویت در خبرنامه</MudText>
|
||||
<MudText Typo="Typo.body2" Class="mb-3" Align="Align.Center">
|
||||
از آخرین اخبار، آموزشها و تخفیفهای ویژه باخبر شوید
|
||||
</MudText>
|
||||
<MudStack Row="true" Spacing="2" Justify="Justify.Center" Class="newsletter-form">
|
||||
<MudTextField @bind-Value="_newsletterEmail"
|
||||
Placeholder="آدرس ایمیل شما"
|
||||
Variant="Variant.Outlined"
|
||||
Class="flex-grow-1"
|
||||
Style="max-width: 300px;" />
|
||||
<MudButton Color="Color.Primary"
|
||||
Variant="Variant.Filled"
|
||||
OnClick="SubscribeNewsletter"
|
||||
Class="newsletter-btn">
|
||||
عضویت
|
||||
</MudButton>
|
||||
</MudStack>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
|
||||
<!-- Bottom Footer -->
|
||||
<MudDivider Class="mb-4" />
|
||||
<MudGrid Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
|
||||
<MudItem xs="12" md="6">
|
||||
<MudText Typo="Typo.body2" Class="footer-copyright">
|
||||
© @DateTime.Now.Year فرصت. تمامی حقوق محفوظ است.
|
||||
</MudText>
|
||||
</MudItem>
|
||||
<MudItem xs="12" md="6">
|
||||
<MudStack Row="true" Spacing="3" Justify="Justify.FlexEnd" Class="footer-legal">
|
||||
<MudLink Href="#" Class="footer-link">حریم خصوصی</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">شرایط استفاده</MudLink>
|
||||
<MudLink Href="#" Class="footer-link">قوانین</MudLink>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</MudContainer>
|
||||
</footer>
|
||||
41
src/FrontOffice.Main/Shared/Footer.razor.cs
Normal file
41
src/FrontOffice.Main/Shared/Footer.razor.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using MudBlazor;
|
||||
|
||||
namespace FrontOffice.Main.Shared;
|
||||
|
||||
public partial class Footer
|
||||
{
|
||||
private string? _newsletterEmail;
|
||||
|
||||
private void SubscribeNewsletter()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(_newsletterEmail))
|
||||
{
|
||||
Snackbar.Add("لطفاً آدرس ایمیل معتبر وارد کنید.", Severity.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsValidEmail(_newsletterEmail))
|
||||
{
|
||||
Snackbar.Add("فرمت ایمیل صحیح نیست.", Severity.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: Implement newsletter subscription logic
|
||||
Snackbar.Add("با موفقیت در خبرنامه عضو شدید.", Severity.Success);
|
||||
_newsletterEmail = string.Empty;
|
||||
}
|
||||
|
||||
private static bool IsValidEmail(string email)
|
||||
{
|
||||
try
|
||||
{
|
||||
var addr = new System.Net.Mail.MailAddress(email);
|
||||
return addr.Address == email;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,42 +4,58 @@
|
||||
|
||||
<MudRTLProvider RightToLeft="true">
|
||||
<MudThemeProvider @ref="_mudThemeProvider" Theme="CustomMudTheme.CustomMudBlazorTheme" @bind-IsDarkMode="_isDark" />
|
||||
<MudPopoverProvider/>
|
||||
<MudDialogProvider/>
|
||||
<MudSnackbarProvider/>
|
||||
<MudPopoverProvider />
|
||||
<MudDialogProvider />
|
||||
<MudSnackbarProvider />
|
||||
<MudLayout>
|
||||
<!-- AppBar -->
|
||||
<MudAppBar Elevation="0" Color="Color.Transparent" Dense="true" Class="appbar">
|
||||
<MudAppBar Elevation="0" Color="Color.Transparent" Dense="true" Class="py-2" id="top">
|
||||
<MudContainer MaxWidth="MaxWidth.Large" Class="d-flex align-center justify-space-between w-100">
|
||||
|
||||
<MudHidden Breakpoint="Breakpoint.SmAndUp">
|
||||
<MudIconButton Class="d-inline"
|
||||
Icon="@Icons.Material.Filled.Menu"
|
||||
OnClick="@ToggleDrawer" />
|
||||
</MudHidden>
|
||||
|
||||
<div class="d-flex align-center gap-2">
|
||||
<MudAvatar Size="Size.Medium" Color="Color.Primary" Variant="Variant.Filled" Icon="@Icons.Material.Filled.AutoAwesome" Class="rounded-xl" />
|
||||
<MudText Typo="Typo.h6" Class="fw-600">فورسات</MudText>
|
||||
<MudHidden Breakpoint="Breakpoint.SmAndUp" Invert="true">
|
||||
<MudImage ObjectFit="ObjectFit.Cover"
|
||||
ObjectPosition="ObjectPosition.Center"
|
||||
Width="32"
|
||||
Height="32"
|
||||
Class="rounded-circle"
|
||||
Src="favicon.png" />
|
||||
</MudHidden>
|
||||
<MudText Typo="Typo.h6" Class="fw-600">فرصت</MudText>
|
||||
</div>
|
||||
|
||||
<div class="d-none d-md-flex align-center gap-4">
|
||||
<MudLink Href="#features" Class="mud-link">امکانات</MudLink>
|
||||
<MudLink Href="#pricing" Class="mud-link">قیمتها</MudLink>
|
||||
<MudLink Href="#faq" class="mud-link">سوالات متداول</MudLink>
|
||||
<MudLink Href="#contact" class="mud-link">ارتباط</MudLink>
|
||||
<div class="d-none d-md-flex align-center gap-10">
|
||||
<MudLink Href="#features" Typo="Typo.subtitle1" Class="mud-link">امکانات</MudLink>
|
||||
<MudLink Href="#pricing" Typo="Typo.subtitle1" Class="mud-link">قیمتها</MudLink>
|
||||
<MudLink Href="#faq" Typo="Typo.subtitle1" Class="mud-link">سوالات متداول</MudLink>
|
||||
<MudLink Href="#contact" Typo="Typo.subtitle1" Class="mud-link">ارتباط با ما</MudLink>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-center gap-2">
|
||||
<MudButton Variant="Variant.Outlined" Color="Color.Inherit">ورود</MudButton>
|
||||
<MudButton Color="Color.Primary">شروع کنید</MudButton>
|
||||
<MudIconButton Title="تغییر پوسته" OnClick="@ToggleTheme" Edge="Edge.End"
|
||||
<MudHidden Breakpoint="Breakpoint.SmAndUp" Invert="true">
|
||||
<MudButton Variant="Variant.Outlined" Color="Color.Inherit">ورود</MudButton>
|
||||
<MudButton Color="Color.Primary">شروع کنید</MudButton>
|
||||
</MudHidden>
|
||||
|
||||
<MudIconButton OnClick="@ToggleTheme" Edge="Edge.End"
|
||||
Icon="@(_isDark ? Icons.Material.Filled.DarkMode : Icons.Material.Filled.LightMode)" />
|
||||
<MudIconButton Class="d-inline d-md-none" Title="فهرست" Icon="@Icons.Material.Filled.Menu" OnClick="@ToggleDrawer" />
|
||||
</div>
|
||||
</MudContainer>
|
||||
</MudAppBar>
|
||||
|
||||
<!-- Mobile Drawer -->
|
||||
<MudDrawer @bind-Open="_drawerOpen" Anchor="Anchor.Left" Elevation="1" Variant="DrawerVariant.Temporary" Class="p-4">
|
||||
<MudDrawer @bind-Open="_drawerOpen" Anchor="Anchor.Right" Elevation="1" Variant="DrawerVariant.Temporary" Class="pa-4">
|
||||
<MudStack Spacing="2">
|
||||
<MudLink Href="#features" OnClick="() => _drawerOpen=false">امکانات</MudLink>
|
||||
<MudLink Href="#pricing" OnClick="() => _drawerOpen=false">قیمتها</MudLink>
|
||||
<MudLink Href="#faq" OnClick="() => _drawerOpen=false">سوالات متداول</MudLink>
|
||||
<MudLink Href="#contact" OnClick="() => _drawerOpen=false">ارتباط</MudLink>
|
||||
<MudLink Href="#features" Typo="Typo.subtitle1" OnClick="() => _drawerOpen=false">امکانات</MudLink>
|
||||
<MudLink Href="#pricing" Typo="Typo.subtitle1" OnClick="() => _drawerOpen=false">قیمتها</MudLink>
|
||||
<MudLink Href="#faq" Typo="Typo.subtitle1" OnClick="() => _drawerOpen=false">سوالات متداول</MudLink>
|
||||
<MudLink Href="#contact" Typo="Typo.subtitle1" OnClick="() => _drawerOpen=false">ارتباط</MudLink>
|
||||
<MudDivider Class="my-2" />
|
||||
<MudButton Variant="Variant.Outlined" Color="Color.Inherit">ورود</MudButton>
|
||||
<MudButton Color="Color.Primary">شروع کنید</MudButton>
|
||||
@@ -48,7 +64,9 @@
|
||||
|
||||
<MudMainContent>
|
||||
@Body
|
||||
<Footer />
|
||||
</MudMainContent>
|
||||
|
||||
</MudLayout>
|
||||
</MudRTLProvider>
|
||||
|
||||
|
||||
@@ -15,4 +15,12 @@ public partial class MainLayout
|
||||
{
|
||||
await JSRuntime.InvokeVoidAsync("history.back");
|
||||
}
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (firstRender)
|
||||
{
|
||||
await JSRuntime.InvokeVoidAsync("changeNavBgOnBodyScroll", "top", null, 1);
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user