Remove new contact fromm menu list.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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="" />
|
||||
</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="" />
|
||||
</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;
|
||||
|
||||
Reference in New Issue
Block a user