Enhance UI: Update AppShell and Colors, add icons for navigation, and improve PostsPage layout and functionality
6
.idea/.idea.CORP-MAUI/.idea/AndroidProjectSystem.xml
generated
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AndroidProjectSystem">
|
||||
<option name="providerId" value="RiderAndroidProjectSystem" />
|
||||
</component>
|
||||
</project>
|
||||
@ -3,23 +3,33 @@
|
||||
x:Class="CORP_MAUI.AppShell"
|
||||
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:pages="clr-namespace:CORP_MAUI.Pages">
|
||||
xmlns:pages="clr-namespace:CORP_MAUI.Pages"
|
||||
Shell.TabBarBackgroundColor="#0D6EFD"
|
||||
Shell.TabBarForegroundColor="White"
|
||||
Shell.TabBarTitleColor="White"
|
||||
Shell.TabBarUnselectedColor="#FFFFFF99"
|
||||
Shell.NavBarIsVisible="False">
|
||||
|
||||
<TabBar>
|
||||
<ShellContent
|
||||
Title="Новости"
|
||||
Icon="feed.png"
|
||||
ContentTemplate="{DataTemplate pages:PostsPage}" />
|
||||
<ShellContent
|
||||
Title="Сотрудники"
|
||||
Icon="employees.png"
|
||||
ContentTemplate="{DataTemplate pages:EmployeesPage}" />
|
||||
<ShellContent
|
||||
Title="Отделы"
|
||||
Icon="department.png"
|
||||
ContentTemplate="{DataTemplate pages:DepartmentsPage}" />
|
||||
<ShellContent
|
||||
Title="Заявления"
|
||||
Icon="statements.png"
|
||||
ContentTemplate="{DataTemplate pages:RequestsPage}" />
|
||||
<ShellContent
|
||||
Title="Профиль"
|
||||
Icon="profile.png"
|
||||
ContentTemplate="{DataTemplate pages:ProfilePage}" />
|
||||
</TabBar>
|
||||
|
||||
|
||||
@ -57,6 +57,7 @@
|
||||
|
||||
<!-- Images -->
|
||||
<MauiImage Include="Resources\Images\*" />
|
||||
<MauiImage Include="Resources\Images\Icons\SVG\*" />
|
||||
<MauiImage Update="Resources\Images\dotnet_bot.png" Resize="True" BaseSize="300,185" />
|
||||
|
||||
<!-- Custom Fonts -->
|
||||
@ -67,11 +68,16 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CommunityToolkit.Maui" Version="9.1.1" />
|
||||
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="9.0.9" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
|
||||
<PackageReference Include="System.Net.WebSockets.Client" Version="4.3.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Resources\Images\Icons\SVG\" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
</Project>
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics;
|
||||
using CommunityToolkit.Maui;
|
||||
using CORP_MAUI.Services;
|
||||
using CORP_MAUI.Pages;
|
||||
|
||||
@ -11,6 +12,7 @@ public static class MauiProgram
|
||||
MauiAppBuilder builder = MauiApp.CreateBuilder();
|
||||
builder
|
||||
.UseMauiApp<App>()
|
||||
.UseMauiCommunityToolkit()
|
||||
.ConfigureFonts(fonts =>
|
||||
{
|
||||
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:models="clr-namespace:CORP_MAUI.Models"
|
||||
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
|
||||
x:Class="CORP_MAUI.Pages.DepartmentDetailsPage"
|
||||
Title="Информация об отделе">
|
||||
|
||||
@ -34,7 +35,7 @@
|
||||
<HorizontalStackLayout
|
||||
HorizontalOptions="Center"
|
||||
Spacing="5">
|
||||
<Label Text="👥" FontSize="18"/>
|
||||
<Image Source="employees.png" WidthRequest="20" HeightRequest="20" VerticalOptions="Center"/>
|
||||
<Label
|
||||
x:Name="EmployeesCountLabel"
|
||||
Style="{StaticResource MetaText}"
|
||||
@ -174,11 +175,16 @@
|
||||
<Border.GestureRecognizers>
|
||||
<TapGestureRecognizer Tapped="OnChatIconTapped" CommandParameter="{Binding .}"/>
|
||||
</Border.GestureRecognizers>
|
||||
<Label
|
||||
Text="💬"
|
||||
FontSize="20"
|
||||
<Image
|
||||
Source="chats.png"
|
||||
WidthRequest="22"
|
||||
HeightRequest="22"
|
||||
HorizontalOptions="Center"
|
||||
VerticalOptions="Center"/>
|
||||
VerticalOptions="Center">
|
||||
<Image.Behaviors>
|
||||
<toolkit:IconTintColorBehavior TintColor="White"/>
|
||||
</Image.Behaviors>
|
||||
</Image>
|
||||
</Border>
|
||||
|
||||
</Grid>
|
||||
|
||||
@ -70,13 +70,13 @@
|
||||
|
||||
<!-- Количество сотрудников -->
|
||||
<HorizontalStackLayout Spacing="5">
|
||||
<Label Text="👥" Style="{StaticResource MetaIcon}"/>
|
||||
<Image Source="employees.png" WidthRequest="16" HeightRequest="16" VerticalOptions="Center"/>
|
||||
<Label Text="{Binding EmployeesCount}" Style="{StaticResource MetaText}"/>
|
||||
</HorizontalStackLayout>
|
||||
|
||||
<!-- Руководитель -->
|
||||
<HorizontalStackLayout Spacing="5">
|
||||
<Label Text="👤" Style="{StaticResource MetaIcon}"/>
|
||||
<Image Source="profile.png" WidthRequest="16" HeightRequest="16" VerticalOptions="Center"/>
|
||||
<Label
|
||||
Text="{Binding Head.FullName}"
|
||||
Style="{StaticResource MetaText}"
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:models="clr-namespace:CORP_MAUI.Models"
|
||||
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
|
||||
x:Class="CORP_MAUI.Pages.EmployeeProfilePage"
|
||||
Title="Профиль сотрудника">
|
||||
|
||||
@ -44,12 +45,38 @@
|
||||
HorizontalTextAlignment="Center"/>
|
||||
|
||||
<!-- Кнопка "Написать сообщение" -->
|
||||
<Button
|
||||
<Border
|
||||
x:Name="ChatButton"
|
||||
Text="💬 Написать сообщение"
|
||||
Style="{StaticResource PrimaryButton}"
|
||||
BackgroundColor="{StaticResource Primary}"
|
||||
StrokeShape="RoundRectangle 10"
|
||||
Stroke="Transparent"
|
||||
HeightRequest="50"
|
||||
Margin="0,10,0,0"
|
||||
Clicked="OnChatButtonClicked"/>
|
||||
Padding="15,0">
|
||||
<Border.GestureRecognizers>
|
||||
<TapGestureRecognizer Tapped="OnChatButtonClicked"/>
|
||||
</Border.GestureRecognizers>
|
||||
<HorizontalStackLayout
|
||||
HorizontalOptions="Center"
|
||||
VerticalOptions="Center"
|
||||
Spacing="10">
|
||||
<Image
|
||||
Source="chats.png"
|
||||
WidthRequest="22"
|
||||
HeightRequest="22"
|
||||
VerticalOptions="Center">
|
||||
<Image.Behaviors>
|
||||
<toolkit:IconTintColorBehavior TintColor="White"/>
|
||||
</Image.Behaviors>
|
||||
</Image>
|
||||
<Label
|
||||
Text="Написать сообщение"
|
||||
TextColor="White"
|
||||
FontSize="16"
|
||||
FontAttributes="Bold"
|
||||
VerticalOptions="Center"/>
|
||||
</HorizontalStackLayout>
|
||||
</Border>
|
||||
|
||||
</VerticalStackLayout>
|
||||
</Border>
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:models="clr-namespace:CORP_MAUI.Models"
|
||||
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
|
||||
x:Class="CORP_MAUI.Pages.EmployeesPage"
|
||||
Title="Сотрудники">
|
||||
|
||||
@ -92,11 +93,16 @@
|
||||
<Border.GestureRecognizers>
|
||||
<TapGestureRecognizer Tapped="OnChatIconTapped" CommandParameter="{Binding .}"/>
|
||||
</Border.GestureRecognizers>
|
||||
<Label
|
||||
Text="💬"
|
||||
FontSize="20"
|
||||
<Image
|
||||
Source="chats.png"
|
||||
WidthRequest="22"
|
||||
HeightRequest="22"
|
||||
HorizontalOptions="Center"
|
||||
VerticalOptions="Center"/>
|
||||
VerticalOptions="Center">
|
||||
<Image.Behaviors>
|
||||
<toolkit:IconTintColorBehavior TintColor="White"/>
|
||||
</Image.Behaviors>
|
||||
</Image>
|
||||
</Border>
|
||||
|
||||
</Grid>
|
||||
|
||||
@ -2,19 +2,116 @@
|
||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:models="clr-namespace:CORP_MAUI.ViewModels"
|
||||
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
|
||||
x:Class="CORP_MAUI.Pages.PostsPage"
|
||||
Title="Новости">
|
||||
Title="Лента новостей"
|
||||
BackgroundColor="#E5E5E5">
|
||||
|
||||
<Grid>
|
||||
<ActivityIndicator
|
||||
x:Name="LoadingIndicator"
|
||||
IsRunning="False"
|
||||
IsVisible="False"
|
||||
HorizontalOptions="Center"
|
||||
VerticalOptions="Center"
|
||||
Color="{StaticResource Primary}"/>
|
||||
<Grid RowDefinitions="Auto,Auto,*">
|
||||
|
||||
<!-- Шапка с аватаром и заголовком -->
|
||||
<Grid
|
||||
Grid.Row="0"
|
||||
ColumnDefinitions="50,*,50"
|
||||
Padding="15,10"
|
||||
BackgroundColor="#E5E5E5">
|
||||
|
||||
<!-- Аватар пользователя -->
|
||||
<Border
|
||||
Grid.Column="0"
|
||||
WidthRequest="40"
|
||||
HeightRequest="40"
|
||||
StrokeShape="RoundRectangle 20"
|
||||
BackgroundColor="{StaticResource Gray300}"
|
||||
Stroke="Transparent"
|
||||
HorizontalOptions="Start">
|
||||
<Image
|
||||
x:Name="UserAvatarImage"
|
||||
Aspect="AspectFill"/>
|
||||
</Border>
|
||||
|
||||
<!-- Заголовок -->
|
||||
<Label
|
||||
Grid.Column="1"
|
||||
Text="Лента новостей"
|
||||
FontSize="18"
|
||||
FontAttributes="Bold"
|
||||
TextColor="{StaticResource Gray900}"
|
||||
HorizontalOptions="Center"
|
||||
VerticalOptions="Center"/>
|
||||
|
||||
<!-- Иконка уведомлений -->
|
||||
<Border
|
||||
Grid.Column="2"
|
||||
WidthRequest="40"
|
||||
HeightRequest="40"
|
||||
StrokeShape="RoundRectangle 20"
|
||||
BackgroundColor="Transparent"
|
||||
Stroke="Transparent"
|
||||
HorizontalOptions="End">
|
||||
<Image
|
||||
Source="notifications.png"
|
||||
WidthRequest="28"
|
||||
HeightRequest="28"
|
||||
HorizontalOptions="Center"
|
||||
VerticalOptions="Center">
|
||||
<Image.Behaviors>
|
||||
<toolkit:IconTintColorBehavior TintColor="{StaticResource Primary}"/>
|
||||
</Image.Behaviors>
|
||||
</Image>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<!-- Поиск с серым фоном -->
|
||||
<Grid
|
||||
Grid.Row="1"
|
||||
ColumnDefinitions="Auto,*"
|
||||
Padding="15,5,15,15"
|
||||
BackgroundColor="#E5E5E5">
|
||||
|
||||
<!-- Круглая кнопка поиска -->
|
||||
<Border
|
||||
Grid.Column="0"
|
||||
WidthRequest="45"
|
||||
HeightRequest="45"
|
||||
StrokeShape="RoundRectangle 22.5"
|
||||
BackgroundColor="{StaticResource Primary}"
|
||||
Stroke="Transparent"
|
||||
Margin="0,0,10,0">
|
||||
<Image
|
||||
Source="search.png"
|
||||
WidthRequest="24"
|
||||
HeightRequest="24"
|
||||
HorizontalOptions="Center"
|
||||
VerticalOptions="Center">
|
||||
<Image.Behaviors>
|
||||
<toolkit:IconTintColorBehavior TintColor="White"/>
|
||||
</Image.Behaviors>
|
||||
</Image>
|
||||
</Border>
|
||||
|
||||
<!-- Поле поиска с серым фоном -->
|
||||
<Border
|
||||
Grid.Column="1"
|
||||
StrokeShape="RoundRectangle 22.5"
|
||||
BackgroundColor="{StaticResource Gray300}"
|
||||
Stroke="Transparent"
|
||||
HeightRequest="45"
|
||||
Padding="15,0">
|
||||
<Entry
|
||||
x:Name="SearchEntry"
|
||||
Placeholder="Поиск по названию, авто...."
|
||||
PlaceholderColor="{StaticResource Gray500}"
|
||||
TextColor="{StaticResource Gray900}"
|
||||
BackgroundColor="Transparent"
|
||||
VerticalOptions="Center"
|
||||
TextChanged="OnSearchTextChanged"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<!-- Список постов -->
|
||||
<RefreshView
|
||||
Grid.Row="2"
|
||||
x:Name="PostsRefreshView"
|
||||
IsRefreshing="False"
|
||||
Refreshing="OnRefreshing">
|
||||
@ -22,84 +119,129 @@
|
||||
<CollectionView
|
||||
x:Name="PostsCollectionView"
|
||||
SelectionMode="Single"
|
||||
SelectionChanged="OnPostSelected">
|
||||
SelectionChanged="OnPostSelected"
|
||||
BackgroundColor="Transparent">
|
||||
|
||||
<CollectionView.EmptyView>
|
||||
<VerticalStackLayout
|
||||
VerticalOptions="Center"
|
||||
HorizontalOptions="Center"
|
||||
Padding="50">
|
||||
<VerticalStackLayout Style="{StaticResource EmptyStateContainer}">
|
||||
<Label Text="📰" Style="{StaticResource EmptyStateIcon}"/>
|
||||
<Label
|
||||
Text="Нет новостей"
|
||||
FontSize="16"
|
||||
TextColor="{StaticResource Gray600}"
|
||||
HorizontalOptions="Center"/>
|
||||
Style="{StaticResource EmptyStateTitle}"
|
||||
Margin="0,10,0,0"/>
|
||||
<Label
|
||||
Text="Здесь будут отображаться новости компании"
|
||||
Style="{StaticResource EmptyStateText}"/>
|
||||
</VerticalStackLayout>
|
||||
</CollectionView.EmptyView>
|
||||
|
||||
<CollectionView.Header>
|
||||
<Label Text="Последние новости"
|
||||
FontSize="24"
|
||||
FontAttributes="Bold"
|
||||
Margin="20,10,20,0" />
|
||||
</CollectionView.Header>
|
||||
|
||||
<CollectionView.ItemTemplate>
|
||||
<DataTemplate x:DataType="models:PostViewModel">
|
||||
<Border
|
||||
Padding="15"
|
||||
Margin="10,5"
|
||||
StrokeShape="RoundRectangle 10"
|
||||
BackgroundColor="White"
|
||||
Shadow="{Shadow Brush=Black, Opacity=0.1, Offset='0,2', Radius=4}">
|
||||
Style="{StaticResource CardBorder}"
|
||||
Margin="10,8"
|
||||
Padding="0"
|
||||
StrokeShape="RoundRectangle 15">
|
||||
|
||||
<VerticalStackLayout Spacing="10">
|
||||
<!-- Заголовок и метаданные -->
|
||||
<VerticalStackLayout Spacing="5">
|
||||
<Label Text="{Binding Post.Title}"
|
||||
FontSize="18"
|
||||
FontAttributes="Bold"
|
||||
TextColor="{StaticResource Gray900}"/>
|
||||
<VerticalStackLayout Spacing="0">
|
||||
|
||||
<!-- Заголовок с аватаром автора -->
|
||||
<Grid
|
||||
ColumnDefinitions="50,*"
|
||||
Padding="15"
|
||||
BackgroundColor="White">
|
||||
|
||||
<HorizontalStackLayout Spacing="10">
|
||||
<Label Text="{Binding Post.Author.FullName}"
|
||||
FontSize="12"
|
||||
TextColor="{StaticResource Primary}"/>
|
||||
<Label Text="{Binding Post.DisplayDate, StringFormat='{0:dd.MM.yyyy HH:mm}'}"
|
||||
FontSize="12"
|
||||
TextColor="{StaticResource Gray500}"/>
|
||||
<!-- Аватар автора -->
|
||||
<Border
|
||||
Grid.Column="0"
|
||||
Style="{StaticResource AvatarSmall}"
|
||||
WidthRequest="45"
|
||||
HeightRequest="45"
|
||||
StrokeShape="RoundRectangle 22.5">
|
||||
<Image
|
||||
Source="{Binding Post.Author.DisplayAvatarSource}"
|
||||
Aspect="AspectFill"/>
|
||||
</Border>
|
||||
|
||||
<!-- Имя автора и дата -->
|
||||
<VerticalStackLayout
|
||||
Grid.Column="1"
|
||||
VerticalOptions="Center"
|
||||
Spacing="2"
|
||||
Margin="10,0,0,0">
|
||||
<Label
|
||||
Text="{Binding Post.Author.FullName}"
|
||||
Style="{StaticResource CardSubtitle}"
|
||||
FontSize="15"/>
|
||||
<Label
|
||||
Text="{Binding Post.DisplayDate, StringFormat='{0:dd.MM.yyyy HH:mm}'}"
|
||||
Style="{StaticResource CardMeta}"/>
|
||||
</VerticalStackLayout>
|
||||
</Grid>
|
||||
|
||||
<!-- Изображение поста -->
|
||||
<Image
|
||||
Aspect="AspectFill"
|
||||
HeightRequest="180"
|
||||
BackgroundColor="{StaticResource Gray200}"
|
||||
Source="{Binding DisplayImageSource}"
|
||||
IsVisible="{Binding IsImageVisible}"/>
|
||||
|
||||
<!-- Контент поста -->
|
||||
<VerticalStackLayout
|
||||
Padding="15"
|
||||
Spacing="8"
|
||||
BackgroundColor="White">
|
||||
|
||||
<!-- Заголовок -->
|
||||
<Label
|
||||
Text="{Binding Post.Title}"
|
||||
Style="{StaticResource CardTitle}"
|
||||
FontSize="16"
|
||||
LineBreakMode="TailTruncation"
|
||||
MaxLines="2"/>
|
||||
|
||||
<!-- Превью текста -->
|
||||
<Label
|
||||
Text="{Binding PreviewContent}"
|
||||
Style="{StaticResource CardText}"
|
||||
LineBreakMode="TailTruncation"
|
||||
MaxLines="3"/>
|
||||
|
||||
<!-- Футер с лайками и комментариями -->
|
||||
<HorizontalStackLayout
|
||||
Spacing="20"
|
||||
Margin="0,8,0,0">
|
||||
|
||||
<!-- Лайки -->
|
||||
<HorizontalStackLayout Spacing="5">
|
||||
<Image
|
||||
Source="like.png"
|
||||
WidthRequest="18"
|
||||
HeightRequest="18"
|
||||
VerticalOptions="Center"/>
|
||||
<Label
|
||||
Text="{Binding Post.LikesCount}"
|
||||
Style="{StaticResource CardMeta}"
|
||||
VerticalOptions="Center"/>
|
||||
</HorizontalStackLayout>
|
||||
|
||||
<!-- Комментарии -->
|
||||
<HorizontalStackLayout Spacing="5">
|
||||
<Image
|
||||
Source="messages.png"
|
||||
WidthRequest="18"
|
||||
HeightRequest="18"
|
||||
VerticalOptions="Center"/>
|
||||
<Label
|
||||
Text="{Binding Post.CommentsCount}"
|
||||
Style="{StaticResource CardMeta}"
|
||||
VerticalOptions="Center"/>
|
||||
</HorizontalStackLayout>
|
||||
|
||||
</HorizontalStackLayout>
|
||||
</VerticalStackLayout>
|
||||
|
||||
<!-- Изображение -->
|
||||
<Image Aspect="AspectFill"
|
||||
HeightRequest="200"
|
||||
Margin="0,5"
|
||||
BackgroundColor="#F5F5F5"
|
||||
Source="{Binding DisplayImageSource}"
|
||||
IsVisible="{Binding IsImageVisible}"/>
|
||||
|
||||
<!-- Контент -->
|
||||
<Label Text="{Binding PreviewContent}"
|
||||
FontSize="14"
|
||||
TextColor="{StaticResource Gray900}"
|
||||
LineBreakMode="TailTruncation"
|
||||
MaxLines="3"/>
|
||||
|
||||
<!-- Футер с лайками и комментариями -->
|
||||
<HorizontalStackLayout Spacing="20" Margin="0,5,0,0">
|
||||
<HorizontalStackLayout Spacing="5">
|
||||
<Label Text="❤️" />
|
||||
<Label Text="{Binding Post.LikesCount}"
|
||||
TextColor="{StaticResource Gray600}"/>
|
||||
</HorizontalStackLayout>
|
||||
|
||||
<HorizontalStackLayout Spacing="5">
|
||||
<Label Text="💬" />
|
||||
<Label Text="{Binding Post.CommentsCount}"
|
||||
TextColor="{StaticResource Gray600}"/>
|
||||
</HorizontalStackLayout>
|
||||
</HorizontalStackLayout>
|
||||
</VerticalStackLayout>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
@ -107,6 +249,16 @@
|
||||
|
||||
</CollectionView>
|
||||
</RefreshView>
|
||||
|
||||
<!-- Индикатор загрузки -->
|
||||
<ActivityIndicator
|
||||
Grid.Row="2"
|
||||
x:Name="LoadingIndicator"
|
||||
IsRunning="False"
|
||||
IsVisible="False"
|
||||
Color="{StaticResource Primary}"
|
||||
VerticalOptions="Center"
|
||||
HorizontalOptions="Center"/>
|
||||
</Grid>
|
||||
|
||||
</ContentPage>
|
||||
|
||||
@ -8,8 +8,10 @@ namespace CORP_MAUI.Pages;
|
||||
public partial class PostsPage
|
||||
{
|
||||
private readonly ObservableCollection<PostViewModel> _posts;
|
||||
private List<PostViewModel> _allPosts = new();
|
||||
private int _currentPage = 1;
|
||||
private bool _isLoading;
|
||||
private string _searchText = string.Empty;
|
||||
|
||||
public PostsPage()
|
||||
{
|
||||
@ -23,11 +25,57 @@ public partial class PostsPage
|
||||
protected override void OnAppearing()
|
||||
{
|
||||
base.OnAppearing();
|
||||
|
||||
// Загрузка аватара текущего пользователя
|
||||
_ = LoadUserAvatarAsync();
|
||||
|
||||
if (_posts.Count == 0)
|
||||
{
|
||||
_ = LoadPostsAsync();
|
||||
}
|
||||
}
|
||||
|
||||
private async Task LoadUserAvatarAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var user = await ServiceProvider.ApiService.GetCurrentUserAsync();
|
||||
if (user != null && !string.IsNullOrEmpty(user.Avatar))
|
||||
{
|
||||
UserAvatarImage.Source = user.DisplayAvatarSource;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Trace.WriteLine($"[PostsPage] Ошибка загрузки аватара: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSearchTextChanged(object sender, TextChangedEventArgs e)
|
||||
{
|
||||
_searchText = e.NewTextValue ?? string.Empty;
|
||||
ApplyFilter();
|
||||
}
|
||||
|
||||
private void ApplyFilter()
|
||||
{
|
||||
IEnumerable<PostViewModel> filtered = _allPosts;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(_searchText))
|
||||
{
|
||||
string search = _searchText.ToLower();
|
||||
filtered = filtered.Where(p =>
|
||||
(p.Post.Title?.ToLower().Contains(search) ?? false) ||
|
||||
(p.Post.Author?.FullName?.ToLower().Contains(search) ?? false) ||
|
||||
(p.PreviewContent?.ToLower().Contains(search) ?? false));
|
||||
}
|
||||
|
||||
_posts.Clear();
|
||||
foreach (var post in filtered)
|
||||
{
|
||||
_posts.Add(post);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task LoadPostsAsync(bool refresh = false)
|
||||
{
|
||||
@ -157,10 +205,18 @@ public partial class PostsPage
|
||||
// Ждем загрузки всех изображений перед отображением списка
|
||||
PostViewModel[] viewModels = await Task.WhenAll(tasks);
|
||||
|
||||
if (refresh)
|
||||
{
|
||||
_allPosts.Clear();
|
||||
}
|
||||
|
||||
foreach (PostViewModel vm in viewModels)
|
||||
{
|
||||
_posts.Add(vm);
|
||||
_allPosts.Add(vm);
|
||||
}
|
||||
|
||||
// Применяем фильтр поиска
|
||||
ApplyFilter();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="colorPrimary">#512BD4</color>
|
||||
<color name="colorPrimaryDark">#2B0B98</color>
|
||||
<color name="colorAccent">#2B0B98</color>
|
||||
<color name="colorPrimary">#0D6EFD</color>
|
||||
<color name="colorPrimaryDark">#0B5ED7</color>
|
||||
<color name="colorAccent">#0D6EFD</color>
|
||||
</resources>
|
||||
6
CORP-MAUI/Resources/Images/Icons/SVG/announcement.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M15.992 3.013C17.326 2.236 19 3.197 19 4.741V8a3 3 0 1 1 0 6v3c0 1.648-1.881 2.589-3.2 1.6l-2.06-1.546A8.66 8.66 0 0 0 10 15.446v2.844a2.71 2.71 0 0 1-5.316.744l-1.57-5.496a4.7 4.7 0 0 1 3.326-7.73l3.018-.168a9.34 9.34 0 0 0 4.19-1.259zM5.634 15.078l.973 3.407A.71.71 0 0 0 8 18.29v-3.01l-1.56-.087a5 5 0 0 1-.806-.115M20 11a1 1 0 0 0-1-1v2a1 1 0 0 0 1-1" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
6
CORP-MAUI/Resources/Images/Icons/SVG/chats.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10H4a2 2 0 0 1-2-2v-8C2 6.477 6.477 2 12 2m0 12H9a1 1 0 1 0 0 2h3a1 1 0 1 0 0-2m3-4H9a1 1 0 0 0-.117 1.993L9 12h6a1 1 0 0 0 .117-1.993z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 832 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/darkmode.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M13.574 3.138a1.01 1.01 0 0 0-1.097 1.408a6 6 0 0 1-7.931 7.931a1.01 1.01 0 0 0-1.409 1.097A9 9 0 0 0 21 12a9 9 0 0 0-7.426-8.862" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 804 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/department.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M15 6a3 3 0 0 1-2 2.83V11h3a3 3 0 0 1 3 3v1.17a3.001 3.001 0 1 1-2 0V14a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v1.17a3.001 3.001 0 1 1-2 0V14a3 3 0 0 1 3-3h3V8.83A3.001 3.001 0 1 1 15 6m-3-1a1 1 0 1 0 0 2a1 1 0 0 0 0-2M6 17a1 1 0 1 0 0 2a1 1 0 0 0 0-2m12 0a1 1 0 1 0 0 2a1 1 0 0 0 0-2" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 949 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/dislike.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M15 16h2.405a4 4 0 0 0 3.936-4.716l-.91-5A4 4 0 0 0 16.497 3H8v12l1.821 5.788c.296.69 1.06 1.316 2.024 1.131C13.374 21.625 15 20.433 15 18.5zm-9-1a3 3 0 0 1-3-3V6a3 3 0 0 1 3-3z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 832 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/documents.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M18 2a2 2 0 0 1 2 2v10h-6.5a1.5 1.5 0 0 0-1.5 1.5V22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm1.957 14a2 2 0 0 1-.543 1L15 21.414a2 2 0 0 1-1 .543V16zM10 11H9a1 1 0 1 0 0 2h1a1 1 0 1 0 0-2m5-4H9a1 1 0 0 0 0 2h6a1 1 0 1 0 0-2" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 891 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/employees.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M12 12c1.873 0 3.57.62 4.815 1.487c1.183.825 2.185 2.051 2.185 3.37c0 .724-.309 1.324-.796 1.77c-.458.421-1.056.694-1.672.88C15.301 19.88 13.68 20 12 20s-3.301-.12-4.532-.493c-.616-.186-1.214-.459-1.673-.88C5.31 18.182 5 17.582 5 16.858c0-1.319 1.002-2.545 2.185-3.37C8.43 12.62 10.127 12 12 12m7 1c1.044 0 1.992.345 2.693.833c.64.447 1.307 1.19 1.307 2.096c0 .517-.225.946-.56 1.253c-.306.281-.684.446-1.029.55c-.47.142-1.025.215-1.601.247c.122-.345.19-.72.19-1.122c0-1.535-.959-2.839-2.032-3.744A4.8 4.8 0 0 1 19 13M5 13q.537.002 1.032.113C4.96 14.018 4 15.322 4 16.857c0 .402.068.777.19 1.122c-.576-.032-1.13-.105-1.601-.247c-.345-.104-.723-.269-1.03-.55A1.68 1.68 0 0 1 1 15.93c0-.905.666-1.649 1.307-2.096A4.76 4.76 0 0 1 5 13m13.5-6a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5m-13 0a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5M12 3a4 4 0 1 1 0 8a4 4 0 0 1 0-8" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
6
CORP-MAUI/Resources/Images/Icons/SVG/feed.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M10.772 2.688a2 2 0 0 1 2.456 0l8.384 6.52c.753.587.337 1.792-.615 1.792H20v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8h-.997c-.953 0-1.367-1.206-.615-1.791z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 823 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/finances.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12S6.477 2 12 2m1.5 4H10a1 1 0 0 0-.993.883L9 7v4h-.5a1 1 0 0 0-.117 1.993L8.5 13H9v1h-.5a1 1 0 0 0-.117 1.993L8.5 16H9v1a1 1 0 0 0 1.993.117L11 17v-1h2a1 1 0 0 0 .117-1.993L13 14h-2v-1h2.5a3.5 3.5 0 0 0 .192-6.995zm0 2a1.5 1.5 0 0 1 .144 2.993L13.5 11H11V8z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 969 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/lightmode.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M12 19a1 1 0 0 1 1 1v1a1 1 0 1 1-2 0v-1a1 1 0 0 1 1-1m6.364-2.05l.707.707a1 1 0 0 1-1.414 1.414l-.707-.707a1 1 0 0 1 1.414-1.414m-12.728 0a1 1 0 0 1 1.497 1.32l-.083.094l-.707.707a1 1 0 0 1-1.497-1.32l.083-.094zM12 6a6 6 0 1 1 0 12a6 6 0 0 1 0-12m-8 5a1 1 0 0 1 .117 1.993L4 13H3a1 1 0 0 1-.117-1.993L3 11zm17 0a1 1 0 1 1 0 2h-1a1 1 0 1 1 0-2zM4.929 4.929a1 1 0 0 1 1.32-.083l.094.083l.707.707a1 1 0 0 1-1.32 1.497l-.094-.083l-.707-.707a1 1 0 0 1 0-1.414m14.142 0a1 1 0 0 1 0 1.414l-.707.707a1 1 0 1 1-1.414-1.414l.707-.707a1 1 0 0 1 1.414 0M12 2a1 1 0 0 1 1 1v1a1 1 0 1 1-2 0V3a1 1 0 0 1 1-1" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
6
CORP-MAUI/Resources/Images/Icons/SVG/like.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M15 8h2.405a4 4 0 0 1 3.936 4.716l-.91 5A4 4 0 0 1 16.497 21H8V9l1.821-5.788c.296-.69 1.06-1.316 2.024-1.13C13.374 2.375 15 3.566 15 5.5zM6 9a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 827 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/menu.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M20 17.5a1.5 1.5 0 0 1 .144 2.993L20 20.5H4a1.5 1.5 0 0 1-.144-2.993L4 17.5zm0-7a1.5 1.5 0 0 1 0 3H4a1.5 1.5 0 0 1 0-3zm0-7a1.5 1.5 0 0 1 0 3H4a1.5 1.5 0 1 1 0-3z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 817 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/messages.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M19 3a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H7.333L4 21.5c-.824.618-2 .03-2-1V6a3 3 0 0 1 3-3zm-8 9H8a1 1 0 1 0 0 2h3a1 1 0 1 0 0-2m5-4H8a1 1 0 0 0-.117 1.993L8 10h8a1 1 0 0 0 .117-1.993z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 854 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/notifications.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M12 2a7 7 0 0 0-7 7v3.528a1 1 0 0 1-.105.447l-1.717 3.433A1.1 1.1 0 0 0 4.162 18h15.676a1.1 1.1 0 0 0 .984-1.592l-1.716-3.433a1 1 0 0 1-.106-.447V9a7 7 0 0 0-7-7m0 19a3 3 0 0 1-2.83-2h5.66A3 3 0 0 1 12 21" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 859 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/profile.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M12 13c2.396 0 4.575.694 6.178 1.672c.8.488 1.484 1.064 1.978 1.69c.486.615.844 1.351.844 2.138c0 .845-.411 1.511-1.003 1.986c-.56.45-1.299.748-2.084.956c-1.578.417-3.684.558-5.913.558s-4.335-.14-5.913-.558c-.785-.208-1.524-.506-2.084-.956C3.41 20.01 3 19.345 3 18.5c0-.787.358-1.523.844-2.139c.494-.625 1.177-1.2 1.978-1.69C7.425 13.695 9.605 13 12 13m0-11a5 5 0 1 1 0 10a5 5 0 0 1 0-10" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
6
CORP-MAUI/Resources/Images/Icons/SVG/search.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M5 10a5 5 0 1 1 10 0a5 5 0 0 1-10 0m5-7a7 7 0 1 0 4.192 12.606l5.1 5.101a1 1 0 0 0 1.415-1.414l-5.1-5.1A7 7 0 0 0 10 3" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 793 B |
6
CORP-MAUI/Resources/Images/Icons/SVG/settings.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none">
|
||||
<path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" d="M14.41 2.293a10 10 0 0 1 2.75 1.14a1 1 0 0 1 .47 1.019c-.113.689.058 1.216.38 1.538s.85.493 1.538.38a1 1 0 0 1 1.019.47a10 10 0 0 1 1.14 2.75a1 1 0 0 1-.388 1.054c-.567.407-.82.9-.82 1.356s.253.95.82 1.357a1 1 0 0 1 .388 1.053a10 10 0 0 1-1.14 2.75a1 1 0 0 1-1.019.47c-.689-.113-1.216.059-1.538.38c-.322.322-.493.85-.38 1.538a1 1 0 0 1-.47 1.02a10 10 0 0 1-2.75 1.14a1 1 0 0 1-1.054-.388c-.407-.568-.9-.82-1.356-.82s-.95.252-1.357.82a1 1 0 0 1-1.053.388a10 10 0 0 1-2.75-1.14a1 1 0 0 1-.47-1.02c.113-.688-.059-1.215-.38-1.537c-.323-.322-.85-.494-1.538-.38a1 1 0 0 1-1.02-.47a10 10 0 0 1-1.14-2.752a1 1 0 0 1 .388-1.053c.568-.406.82-.9.82-1.356c0-.455-.252-.95-.82-1.356a1 1 0 0 1-.388-1.053a10 10 0 0 1 1.14-2.751a1 1 0 0 1 1.02-.47c.688.113 1.215-.058 1.537-.38s.494-.85.38-1.538a1 1 0 0 1 .47-1.019a10 10 0 0 1 2.751-1.14a1 1 0 0 1 1.053.388c.407.567.901.82 1.357.82s.95-.253 1.356-.82a1 1 0 0 1 1.053-.388ZM12 7a5 5 0 1 0 0 10a5 5 0 0 0 0-10m0 2a3 3 0 1 1 0 6a3 3 0 0 1 0-6" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
7
CORP-MAUI/Resources/Images/Icons/SVG/statements.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z" />
|
||||
<path fill="currentColor" fill-rule="nonzero" d="M9 15v-1h1v1z" />
|
||||
<path fill="currentColor" d="M18 2a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm-7.5 10h-2A1.5 1.5 0 0 0 7 13.5v2A1.5 1.5 0 0 0 8.5 17h2a1.5 1.5 0 0 0 1.5-1.5v-2a1.5 1.5 0 0 0-1.5-1.5m5.5 1.5h-2a1 1 0 0 0-.117 1.993L14 15.5h2a1 1 0 0 0 .117-1.993zm-5.866-6.737L8.72 8.177l-.354-.354a1 1 0 1 0-1.414 1.414l.884.884a1.25 1.25 0 0 0 1.768 0l1.944-1.944a1 1 0 0 0-1.414-1.414M16 8h-2a1 1 0 0 0-.117 1.993L14 10h2a1 1 0 0 0 .117-1.993z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@ -6,31 +6,35 @@
|
||||
|
||||
<!-- Note: For Android please see also Platforms\Android\Resources\values\colors.xml -->
|
||||
|
||||
<Color x:Key="Primary">#512BD4</Color>
|
||||
<Color x:Key="PrimaryDark">#ac99ea</Color>
|
||||
<Color x:Key="PrimaryDarkText">#242424</Color>
|
||||
<Color x:Key="Secondary">#DFD8F7</Color>
|
||||
<Color x:Key="SecondaryDarkText">#9880e5</Color>
|
||||
<Color x:Key="Tertiary">#2B0B98</Color>
|
||||
<!-- Акцентный цвет - синий #0D6EFD -->
|
||||
<Color x:Key="Primary">#0D6EFD</Color>
|
||||
<Color x:Key="PrimaryDark">#5a9cff</Color>
|
||||
<Color x:Key="PrimaryDarkText">#FFFFFF</Color>
|
||||
<Color x:Key="Secondary">#E7F1FF</Color>
|
||||
<Color x:Key="SecondaryDarkText">#0D6EFD</Color>
|
||||
<Color x:Key="Tertiary">#0B5ED7</Color>
|
||||
|
||||
<Color x:Key="White">White</Color>
|
||||
<Color x:Key="Black">Black</Color>
|
||||
<Color x:Key="Magenta">#D600AA</Color>
|
||||
<Color x:Key="MidnightBlue">#190649</Color>
|
||||
<Color x:Key="MidnightBlue">#0A3D91</Color>
|
||||
<Color x:Key="OffBlack">#1f1f1f</Color>
|
||||
|
||||
<Color x:Key="Gray100">#E1E1E1</Color>
|
||||
<Color x:Key="Gray200">#C8C8C8</Color>
|
||||
<Color x:Key="Gray300">#ACACAC</Color>
|
||||
<Color x:Key="Gray400">#919191</Color>
|
||||
<Color x:Key="Gray500">#6E6E6E</Color>
|
||||
<Color x:Key="Gray600">#404040</Color>
|
||||
<Color x:Key="Gray700">#303030</Color>
|
||||
<Color x:Key="Gray800">#282828</Color>
|
||||
<Color x:Key="Gray900">#212121</Color>
|
||||
<Color x:Key="Gray100">#F8F9FA</Color>
|
||||
<Color x:Key="Gray200">#E9ECEF</Color>
|
||||
<Color x:Key="Gray300">#DEE2E6</Color>
|
||||
<Color x:Key="Gray400">#CED4DA</Color>
|
||||
<Color x:Key="Gray500">#ADB5BD</Color>
|
||||
<Color x:Key="Gray600">#6C757D</Color>
|
||||
<Color x:Key="Gray700">#495057</Color>
|
||||
<Color x:Key="Gray800">#343A40</Color>
|
||||
<Color x:Key="Gray900">#212529</Color>
|
||||
<Color x:Key="Gray950">#141414</Color>
|
||||
|
||||
<Color x:Key="Error">#DC3545</Color>
|
||||
<Color x:Key="Success">#198754</Color>
|
||||
<Color x:Key="Warning">#FFC107</Color>
|
||||
<Color x:Key="Info">#0DCAF0</Color>
|
||||
|
||||
<SolidColorBrush x:Key="PrimaryBrush" Color="{StaticResource Primary}"/>
|
||||
<SolidColorBrush x:Key="SecondaryBrush" Color="{StaticResource Secondary}"/>
|
||||
|
||||
@ -418,10 +418,10 @@
|
||||
<Setter Property="Shell.DisabledColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray950}}" />
|
||||
<Setter Property="Shell.UnselectedColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray200}}" />
|
||||
<Setter Property="Shell.NavBarHasShadow" Value="False" />
|
||||
<Setter Property="Shell.TabBarBackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Black}}" />
|
||||
<Setter Property="Shell.TabBarForegroundColor" Value="{AppThemeBinding Light={StaticResource Magenta}, Dark={StaticResource White}}" />
|
||||
<Setter Property="Shell.TabBarTitleColor" Value="{AppThemeBinding Light={StaticResource Magenta}, Dark={StaticResource White}}" />
|
||||
<Setter Property="Shell.TabBarUnselectedColor" Value="{AppThemeBinding Light={StaticResource Gray900}, Dark={StaticResource Gray200}}" />
|
||||
<Setter Property="Shell.TabBarBackgroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource Primary}}" />
|
||||
<Setter Property="Shell.TabBarForegroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource White}}" />
|
||||
<Setter Property="Shell.TabBarTitleColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource White}}" />
|
||||
<Setter Property="Shell.TabBarUnselectedColor" Value="{AppThemeBinding Light=#FFFFFF99, Dark=#FFFFFF99}" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="NavigationPage">
|
||||
@ -431,10 +431,10 @@
|
||||
</Style>
|
||||
|
||||
<Style TargetType="TabbedPage">
|
||||
<Setter Property="BarBackgroundColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Gray950}}" />
|
||||
<Setter Property="BarTextColor" Value="{AppThemeBinding Light={StaticResource Magenta}, Dark={StaticResource White}}" />
|
||||
<Setter Property="UnselectedTabColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray950}}" />
|
||||
<Setter Property="SelectedTabColor" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray200}}" />
|
||||
<Setter Property="BarBackgroundColor" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource Primary}}" />
|
||||
<Setter Property="BarTextColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource White}}" />
|
||||
<Setter Property="UnselectedTabColor" Value="{AppThemeBinding Light=#FFFFFF99, Dark=#FFFFFF99}" />
|
||||
<Setter Property="SelectedTabColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource White}}" />
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
|
||||