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 CreateNewFolderTemplate { get; set; } = null!;
|
||||||
public DataTemplate SeperatorTemplate { get; set; } = null!;
|
public DataTemplate SeperatorTemplate { get; set; } = null!;
|
||||||
public DataTemplate NewMailTemplate { get; set; } = null!;
|
public DataTemplate NewMailTemplate { get; set; } = null!;
|
||||||
public DataTemplate NewContactTemplate { get; set; } = null!;
|
|
||||||
public DataTemplate CalendarNewEventTemplate { get; set; } = null!;
|
public DataTemplate CalendarNewEventTemplate { get; set; } = null!;
|
||||||
public DataTemplate CategoryItemsTemplate { get; set; } = null!;
|
public DataTemplate CategoryItemsTemplate { get; set; } = null!;
|
||||||
public DataTemplate FixAuthenticationIssueTemplate { get; set; } = null!;
|
public DataTemplate FixAuthenticationIssueTemplate { get; set; } = null!;
|
||||||
@@ -34,8 +33,6 @@ public partial class NavigationMenuTemplateSelector : DataTemplateSelector
|
|||||||
{
|
{
|
||||||
if (item is NewCalendarEventMenuItem)
|
if (item is NewCalendarEventMenuItem)
|
||||||
return CalendarNewEventTemplate;
|
return CalendarNewEventTemplate;
|
||||||
else if (item is NewContactMenuItem)
|
|
||||||
return NewContactTemplate;
|
|
||||||
else if (item is NewMailMenuItem)
|
else if (item is NewMailMenuItem)
|
||||||
return NewMailTemplate;
|
return NewMailTemplate;
|
||||||
else if (item is ContactsMenuItem)
|
else if (item is ContactsMenuItem)
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CommunityToolkit.Mvvm.Messaging;
|
|
||||||
using Wino.Core.Domain;
|
using Wino.Core.Domain;
|
||||||
using Wino.Core.Domain.Enums;
|
using Wino.Core.Domain.Enums;
|
||||||
using Wino.Core.Domain.Interfaces;
|
using Wino.Core.Domain.Interfaces;
|
||||||
@@ -7,14 +6,11 @@ using Wino.Core.Domain.MenuItems;
|
|||||||
using Wino.Core.Domain.Models;
|
using Wino.Core.Domain.Models;
|
||||||
using Wino.Core.Domain.Models.Navigation;
|
using Wino.Core.Domain.Models.Navigation;
|
||||||
using Wino.Core.ViewModels;
|
using Wino.Core.ViewModels;
|
||||||
using Wino.Messaging.Client.Contacts;
|
|
||||||
|
|
||||||
namespace Wino.Mail.WinUI.ViewModels;
|
namespace Wino.Mail.WinUI.ViewModels;
|
||||||
|
|
||||||
public sealed class ContactsShellClient(INavigationService navigationService) : CoreBaseViewModel, IShellClient
|
public sealed class ContactsShellClient(INavigationService navigationService) : CoreBaseViewModel, IShellClient
|
||||||
{
|
{
|
||||||
private readonly NewContactMenuItem _newContactMenuItem = new();
|
|
||||||
|
|
||||||
public WinoApplicationMode Mode => WinoApplicationMode.Contacts;
|
public WinoApplicationMode Mode => WinoApplicationMode.Contacts;
|
||||||
public MenuItemCollection? MenuItems { get; private set; }
|
public MenuItemCollection? MenuItems { get; private set; }
|
||||||
public object? SelectedMenuItem { get; set; }
|
public object? SelectedMenuItem { get; set; }
|
||||||
@@ -24,22 +20,12 @@ public sealed class ContactsShellClient(INavigationService navigationService) :
|
|||||||
{
|
{
|
||||||
base.OnDispatcherAssigned();
|
base.OnDispatcherAssigned();
|
||||||
MenuItems ??= new MenuItemCollection(Dispatcher);
|
MenuItems ??= new MenuItemCollection(Dispatcher);
|
||||||
|
|
||||||
if (MenuItems.Count == 0)
|
|
||||||
{
|
|
||||||
MenuItems.Add(_newContactMenuItem);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Activate(ShellModeActivationContext activationContext)
|
public void Activate(ShellModeActivationContext activationContext)
|
||||||
{
|
{
|
||||||
OnNavigatedTo(NavigationMode.New, activationContext);
|
OnNavigatedTo(NavigationMode.New, activationContext);
|
||||||
|
|
||||||
if (MenuItems?.Count == 0)
|
|
||||||
{
|
|
||||||
MenuItems.Add(_newContactMenuItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
navigationService.Navigate(WinoPage.ContactsPage, null, NavigationReferenceFrame.InnerShellFrame);
|
navigationService.Navigate(WinoPage.ContactsPage, null, NavigationReferenceFrame.InnerShellFrame);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,22 +37,10 @@ public sealed class ContactsShellClient(INavigationService navigationService) :
|
|||||||
public void PrepareForShellShutdown()
|
public void PrepareForShellShutdown()
|
||||||
{
|
{
|
||||||
SelectedMenuItem = null;
|
SelectedMenuItem = null;
|
||||||
if (MenuItems != null)
|
MenuItems?.Clear();
|
||||||
{
|
|
||||||
MenuItems.Clear();
|
|
||||||
MenuItems.Add(_newContactMenuItem);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task HandleNavigationItemInvokedAsync(IMenuItem? menuItem)
|
public Task HandleNavigationItemInvokedAsync(IMenuItem? menuItem) => Task.CompletedTask;
|
||||||
{
|
|
||||||
if (menuItem is NewContactMenuItem)
|
|
||||||
{
|
|
||||||
WeakReferenceMessenger.Default.Send(new NewContactRequested());
|
|
||||||
}
|
|
||||||
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Task HandleNavigationSelectionChangedAsync(IMenuItem? menuItem) => Task.CompletedTask;
|
public Task HandleNavigationSelectionChangedAsync(IMenuItem? menuItem) => Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -391,23 +391,6 @@
|
|||||||
</coreControls:WinoNavigationViewItem>
|
</coreControls:WinoNavigationViewItem>
|
||||||
</DataTemplate>
|
</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
|
<coreSelectors:NavigationMenuTemplateSelector
|
||||||
x:Key="NavigationMenuTemplateSelector"
|
x:Key="NavigationMenuTemplateSelector"
|
||||||
ClickableAccountMenuTemplate="{StaticResource ClickableAccountMenuTemplate}"
|
ClickableAccountMenuTemplate="{StaticResource ClickableAccountMenuTemplate}"
|
||||||
@@ -417,7 +400,6 @@
|
|||||||
MergedAccountFolderTemplate="{StaticResource MergedAccountFolderMenuItemTemplate}"
|
MergedAccountFolderTemplate="{StaticResource MergedAccountFolderMenuItemTemplate}"
|
||||||
MergedAccountMoreExpansionItemTemplate="{StaticResource MergedAccountMoreFolderItemTemplate}"
|
MergedAccountMoreExpansionItemTemplate="{StaticResource MergedAccountMoreFolderItemTemplate}"
|
||||||
MergedAccountTemplate="{StaticResource MergedAccountTemplate}"
|
MergedAccountTemplate="{StaticResource MergedAccountTemplate}"
|
||||||
NewContactTemplate="{StaticResource NewContactTemplate}"
|
|
||||||
NewMailTemplate="{StaticResource CreateNewMailTemplate}"
|
NewMailTemplate="{StaticResource CreateNewMailTemplate}"
|
||||||
RatingItemTemplate="{StaticResource RatingItemTemplate}"
|
RatingItemTemplate="{StaticResource RatingItemTemplate}"
|
||||||
SeperatorTemplate="{StaticResource SeperatorTemplate}"
|
SeperatorTemplate="{StaticResource SeperatorTemplate}"
|
||||||
@@ -639,6 +621,26 @@
|
|||||||
VerticalScrollMode="Auto"
|
VerticalScrollMode="Auto"
|
||||||
Visibility="Collapsed">
|
Visibility="Collapsed">
|
||||||
<StackPanel Spacing="6">
|
<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
|
<TextBlock
|
||||||
FontSize="16"
|
FontSize="16"
|
||||||
FontWeight="SemiBold"
|
FontWeight="SemiBold"
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ using Wino.MenuFlyouts;
|
|||||||
using Wino.MenuFlyouts.Context;
|
using Wino.MenuFlyouts.Context;
|
||||||
using Wino.Messaging.Client.Accounts;
|
using Wino.Messaging.Client.Accounts;
|
||||||
using Wino.Messaging.Client.Calendar;
|
using Wino.Messaging.Client.Calendar;
|
||||||
|
using Wino.Messaging.Client.Contacts;
|
||||||
using Wino.Messaging.Client.Mails;
|
using Wino.Messaging.Client.Mails;
|
||||||
using Wino.Messaging.Client.Shell;
|
using Wino.Messaging.Client.Shell;
|
||||||
using Wino.Messaging.UI;
|
using Wino.Messaging.UI;
|
||||||
@@ -310,6 +311,24 @@ public sealed partial class WinoAppShell : Views.Abstract.WinoAppShellAbstract,
|
|||||||
private Task InvokeNewCalendarEventAsync()
|
private Task InvokeNewCalendarEventAsync()
|
||||||
=> ViewModel.CalendarClient.HandleNavigationItemInvokedAsync(new NewCalendarEventMenuItem());
|
=> 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)
|
private async void SynchronizeCalendarsNavigationItemTapped(object sender, TappedRoutedEventArgs e)
|
||||||
{
|
{
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user