Remove new contact fromm menu list.

This commit is contained in:
Burak Kaan Köse
2026-04-12 20:12:48 +02:00
parent 3977401057
commit b6bf5f2cd1
4 changed files with 41 additions and 49 deletions
@@ -24,7 +24,6 @@ public partial class NavigationMenuTemplateSelector : DataTemplateSelector
public DataTemplate CreateNewFolderTemplate { get; set; } = null!;
public DataTemplate SeperatorTemplate { get; set; } = null!;
public DataTemplate NewMailTemplate { get; set; } = null!;
public DataTemplate NewContactTemplate { get; set; } = null!;
public DataTemplate CalendarNewEventTemplate { get; set; } = null!;
public DataTemplate CategoryItemsTemplate { get; set; } = null!;
public DataTemplate FixAuthenticationIssueTemplate { get; set; } = null!;
@@ -34,8 +33,6 @@ public partial class NavigationMenuTemplateSelector : DataTemplateSelector
{
if (item is NewCalendarEventMenuItem)
return CalendarNewEventTemplate;
else if (item is NewContactMenuItem)
return NewContactTemplate;
else if (item is NewMailMenuItem)
return NewMailTemplate;
else if (item is ContactsMenuItem)
@@ -1,5 +1,4 @@
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Messaging;
using Wino.Core.Domain;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces;
@@ -7,14 +6,11 @@ using Wino.Core.Domain.MenuItems;
using Wino.Core.Domain.Models;
using Wino.Core.Domain.Models.Navigation;
using Wino.Core.ViewModels;
using Wino.Messaging.Client.Contacts;
namespace Wino.Mail.WinUI.ViewModels;
public sealed class ContactsShellClient(INavigationService navigationService) : CoreBaseViewModel, IShellClient
{
private readonly NewContactMenuItem _newContactMenuItem = new();
public WinoApplicationMode Mode => WinoApplicationMode.Contacts;
public MenuItemCollection? MenuItems { get; private set; }
public object? SelectedMenuItem { get; set; }
@@ -24,22 +20,12 @@ public sealed class ContactsShellClient(INavigationService navigationService) :
{
base.OnDispatcherAssigned();
MenuItems ??= new MenuItemCollection(Dispatcher);
if (MenuItems.Count == 0)
{
MenuItems.Add(_newContactMenuItem);
}
}
public void Activate(ShellModeActivationContext activationContext)
{
OnNavigatedTo(NavigationMode.New, activationContext);
if (MenuItems?.Count == 0)
{
MenuItems.Add(_newContactMenuItem);
}
navigationService.Navigate(WinoPage.ContactsPage, null, NavigationReferenceFrame.InnerShellFrame);
}
@@ -51,22 +37,10 @@ public sealed class ContactsShellClient(INavigationService navigationService) :
public void PrepareForShellShutdown()
{
SelectedMenuItem = null;
if (MenuItems != null)
{
MenuItems.Clear();
MenuItems.Add(_newContactMenuItem);
}
MenuItems?.Clear();
}
public Task HandleNavigationItemInvokedAsync(IMenuItem? menuItem)
{
if (menuItem is NewContactMenuItem)
{
WeakReferenceMessenger.Default.Send(new NewContactRequested());
}
return Task.CompletedTask;
}
public Task HandleNavigationItemInvokedAsync(IMenuItem? menuItem) => Task.CompletedTask;
public Task HandleNavigationSelectionChangedAsync(IMenuItem? menuItem) => Task.CompletedTask;
}
+20 -18
View File
@@ -391,23 +391,6 @@
</coreControls:WinoNavigationViewItem>
</DataTemplate>
<DataTemplate x:Key="NewContactTemplate" x:DataType="menu:NewContactMenuItem">
<coreControls:WinoNavigationViewItem
Height="50"
DataContext="{x:Bind}"
SelectsOnInvoked="False">
<muxc:NavigationViewItem.Icon>
<FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xE710;" />
</muxc:NavigationViewItem.Icon>
<TextBlock
Margin="0,-2,0,0"
VerticalAlignment="Center"
FontSize="16"
Style="{StaticResource FlyoutPickerTitleTextBlockStyle}"
Text="{x:Bind domain:Translator.ContactsPane_NewContact}" />
</coreControls:WinoNavigationViewItem>
</DataTemplate>
<coreSelectors:NavigationMenuTemplateSelector
x:Key="NavigationMenuTemplateSelector"
ClickableAccountMenuTemplate="{StaticResource ClickableAccountMenuTemplate}"
@@ -417,7 +400,6 @@
MergedAccountFolderTemplate="{StaticResource MergedAccountFolderMenuItemTemplate}"
MergedAccountMoreExpansionItemTemplate="{StaticResource MergedAccountMoreFolderItemTemplate}"
MergedAccountTemplate="{StaticResource MergedAccountTemplate}"
NewContactTemplate="{StaticResource NewContactTemplate}"
NewMailTemplate="{StaticResource CreateNewMailTemplate}"
RatingItemTemplate="{StaticResource RatingItemTemplate}"
SeperatorTemplate="{StaticResource SeperatorTemplate}"
@@ -639,6 +621,26 @@
VerticalScrollMode="Auto"
Visibility="Collapsed">
<StackPanel Spacing="6">
<coreControls:WinoNavigationViewItem
x:Name="NewContactNavigationItem"
Height="50"
Margin="0,0,0,12"
AutomationProperties.Name="{x:Bind domain:Translator.ContactsPane_NewContact, Mode=OneTime}"
IsTabStop="True"
KeyDown="NewContactNavigationItemKeyDown"
SelectsOnInvoked="False"
Tapped="NewContactNavigationItemTapped">
<muxc:NavigationViewItem.Icon>
<FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xE710;" />
</muxc:NavigationViewItem.Icon>
<TextBlock
Margin="0,-2,0,0"
VerticalAlignment="Center"
FontSize="16"
Style="{StaticResource FlyoutPickerTitleTextBlockStyle}"
Text="{x:Bind domain:Translator.ContactsPane_NewContact, Mode=OneTime}" />
</coreControls:WinoNavigationViewItem>
<TextBlock
FontSize="16"
FontWeight="SemiBold"
@@ -34,6 +34,7 @@ using Wino.MenuFlyouts;
using Wino.MenuFlyouts.Context;
using Wino.Messaging.Client.Accounts;
using Wino.Messaging.Client.Calendar;
using Wino.Messaging.Client.Contacts;
using Wino.Messaging.Client.Mails;
using Wino.Messaging.Client.Shell;
using Wino.Messaging.UI;
@@ -310,6 +311,24 @@ public sealed partial class WinoAppShell : Views.Abstract.WinoAppShellAbstract,
private Task InvokeNewCalendarEventAsync()
=> ViewModel.CalendarClient.HandleNavigationItemInvokedAsync(new NewCalendarEventMenuItem());
private void NewContactNavigationItemTapped(object sender, TappedRoutedEventArgs e)
{
e.Handled = true;
InvokeNewContact();
}
private void NewContactNavigationItemKeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key is not (VirtualKey.Enter or VirtualKey.Space))
return;
e.Handled = true;
InvokeNewContact();
}
private static void InvokeNewContact()
=> WeakReferenceMessenger.Default.Send(new NewContactRequested());
private async void SynchronizeCalendarsNavigationItemTapped(object sender, TappedRoutedEventArgs e)
{
e.Handled = true;