Code Quality: Fixed multiple paddings, disabled backspace addon (#354)
* Changed paddings and size for unsubscribe button to avoid shifts * Fix bottom paddings * Disable backspace addon, simplify attachments logic, convert switches * Remove redundant code from Mail Rendering page * Replace Font Icon to Path
This commit is contained in:
@@ -81,8 +81,6 @@ namespace Wino.Mail.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasMultipleAttachments => Attachments.Count > 1;
|
||||
|
||||
[ObservableProperty]
|
||||
[NotifyPropertyChangedFor(nameof(ShouldDisplayDownloadProgress))]
|
||||
private bool isIndetermineProgress;
|
||||
@@ -295,14 +293,14 @@ namespace Wino.Mail.ViewModels
|
||||
{
|
||||
base.OnNavigatedTo(mode, parameters);
|
||||
|
||||
Attachments.CollectionChanged -= AttachmentsUpdated;
|
||||
Attachments.CollectionChanged += AttachmentsUpdated;
|
||||
|
||||
renderCancellationTokenSource.Cancel();
|
||||
|
||||
initializedMailItemViewModel = null;
|
||||
initializedMimeMessageInformation = null;
|
||||
|
||||
// Dispose existing content first.
|
||||
Messenger.Send(new CancelRenderingContentRequested());
|
||||
|
||||
// This page can be accessed for 2 purposes.
|
||||
// 1. Rendering a mail item when the user selects.
|
||||
// 2. Rendering an existing EML file with MimeMessage.
|
||||
@@ -313,8 +311,6 @@ namespace Wino.Mail.ViewModels
|
||||
// Configure common rendering properties first.
|
||||
IsDarkWebviewRenderer = _underlyingThemeService.IsUnderlyingThemeDark();
|
||||
|
||||
await ResetPagePropertiesAsync();
|
||||
|
||||
renderCancellationTokenSource = new CancellationTokenSource();
|
||||
|
||||
// Mime content might not be available for now and might require a download.
|
||||
@@ -340,11 +336,6 @@ namespace Wino.Mail.ViewModels
|
||||
}
|
||||
}
|
||||
|
||||
private async void AttachmentsUpdated(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
|
||||
{
|
||||
await ExecuteUIThread(() => { OnPropertyChanged(nameof(HasMultipleAttachments)); });
|
||||
}
|
||||
|
||||
private async Task HandleSingleItemDownloadAsync(MailItemViewModel mailItemViewModel)
|
||||
{
|
||||
try
|
||||
@@ -371,6 +362,7 @@ namespace Wino.Mail.ViewModels
|
||||
|
||||
private async Task RenderAsync(MailItemViewModel mailItemViewModel, CancellationToken cancellationToken = default)
|
||||
{
|
||||
ResetProgress();
|
||||
var isMimeExists = await _mimeFileService.IsMimeExistAsync(mailItemViewModel.AssignedAccount.Id, mailItemViewModel.MailCopy.FileId);
|
||||
|
||||
if (!isMimeExists)
|
||||
@@ -460,8 +452,6 @@ namespace Wino.Mail.ViewModels
|
||||
{
|
||||
base.OnNavigatedFrom(mode, parameters);
|
||||
|
||||
Attachments.CollectionChanged -= AttachmentsUpdated;
|
||||
|
||||
renderCancellationTokenSource.Cancel();
|
||||
CurrentDownloadPercentage = 0d;
|
||||
|
||||
@@ -470,12 +460,6 @@ namespace Wino.Mail.ViewModels
|
||||
|
||||
forceImageLoading = false;
|
||||
|
||||
ToItems.Clear();
|
||||
CCItemsItems.Clear();
|
||||
BCCItems.Clear();
|
||||
Attachments.Clear();
|
||||
MenuItems.Clear();
|
||||
|
||||
StatePersistenceService.IsReadingMail = false;
|
||||
}
|
||||
|
||||
@@ -501,22 +485,6 @@ namespace Wino.Mail.ViewModels
|
||||
IsIndetermineProgress = false;
|
||||
}
|
||||
|
||||
private async Task ResetPagePropertiesAsync()
|
||||
{
|
||||
await ExecuteUIThread(() =>
|
||||
{
|
||||
ResetProgress();
|
||||
|
||||
ToItems.Clear();
|
||||
CCItemsItems.Clear();
|
||||
BCCItems.Clear();
|
||||
Attachments.Clear();
|
||||
|
||||
// Dispose existing content first.
|
||||
Messenger.Send(new CancelRenderingContentRequested());
|
||||
});
|
||||
}
|
||||
|
||||
private void InitializeCommandBarItems()
|
||||
{
|
||||
MenuItems.Clear();
|
||||
|
||||
@@ -28,21 +28,17 @@ namespace Wino.Helpers
|
||||
public static bool CountToBooleanConverter(int value) => value > 0;
|
||||
public static bool ObjectEquals(object obj1, object obj2) => object.Equals(obj1, obj2);
|
||||
public static Visibility CountToVisibilityConverter(int value) => value > 0 ? Visibility.Visible : Visibility.Collapsed;
|
||||
public static Visibility CountToVisibilityConverterWithThreshold(int value, int threshold) => value > threshold ? Visibility.Visible : Visibility.Collapsed;
|
||||
public static InfoBarSeverity InfoBarSeverityConverter(InfoBarMessageType messageType)
|
||||
{
|
||||
switch (messageType)
|
||||
return messageType switch
|
||||
{
|
||||
case InfoBarMessageType.Information:
|
||||
return InfoBarSeverity.Informational;
|
||||
case InfoBarMessageType.Success:
|
||||
return InfoBarSeverity.Success;
|
||||
case InfoBarMessageType.Warning:
|
||||
return InfoBarSeverity.Warning;
|
||||
case InfoBarMessageType.Error:
|
||||
return InfoBarSeverity.Error;
|
||||
default:
|
||||
return InfoBarSeverity.Informational;
|
||||
}
|
||||
InfoBarMessageType.Information => InfoBarSeverity.Informational,
|
||||
InfoBarMessageType.Success => InfoBarSeverity.Success,
|
||||
InfoBarMessageType.Warning => InfoBarSeverity.Warning,
|
||||
InfoBarMessageType.Error => InfoBarSeverity.Error,
|
||||
_ => InfoBarSeverity.Informational,
|
||||
};
|
||||
}
|
||||
public static SolidColorBrush GetSolidColorBrushFromHex(string colorHex) => string.IsNullOrEmpty(colorHex) ? new SolidColorBrush(Colors.Transparent) : new SolidColorBrush(colorHex.ToColor());
|
||||
public static Visibility IsSelectionModeMultiple(ListViewSelectionMode mode) => mode == ListViewSelectionMode.Multiple ? Visibility.Visible : Visibility.Collapsed;
|
||||
@@ -177,95 +173,59 @@ namespace Wino.Helpers
|
||||
|
||||
public static WinoIconGlyph GetPathGeometry(FolderOperation operation)
|
||||
{
|
||||
switch (operation)
|
||||
return operation switch
|
||||
{
|
||||
case FolderOperation.None:
|
||||
return WinoIconGlyph.None;
|
||||
case FolderOperation.Pin:
|
||||
return WinoIconGlyph.Pin;
|
||||
case FolderOperation.Unpin:
|
||||
return WinoIconGlyph.UnPin;
|
||||
case FolderOperation.MarkAllAsRead:
|
||||
return WinoIconGlyph.MarkRead;
|
||||
case FolderOperation.DontSync:
|
||||
return WinoIconGlyph.DontSync;
|
||||
case FolderOperation.Empty:
|
||||
return WinoIconGlyph.EmptyFolder;
|
||||
case FolderOperation.Rename:
|
||||
return WinoIconGlyph.Rename;
|
||||
case FolderOperation.Delete:
|
||||
return WinoIconGlyph.Delete;
|
||||
case FolderOperation.Move:
|
||||
return WinoIconGlyph.Forward;
|
||||
case FolderOperation.TurnOffNotifications:
|
||||
return WinoIconGlyph.TurnOfNotifications;
|
||||
case FolderOperation.CreateSubFolder:
|
||||
return WinoIconGlyph.CreateFolder;
|
||||
}
|
||||
|
||||
return WinoIconGlyph.None;
|
||||
FolderOperation.None => WinoIconGlyph.None,
|
||||
FolderOperation.Pin => WinoIconGlyph.Pin,
|
||||
FolderOperation.Unpin => WinoIconGlyph.UnPin,
|
||||
FolderOperation.MarkAllAsRead => WinoIconGlyph.MarkRead,
|
||||
FolderOperation.DontSync => WinoIconGlyph.DontSync,
|
||||
FolderOperation.Empty => WinoIconGlyph.EmptyFolder,
|
||||
FolderOperation.Rename => WinoIconGlyph.Rename,
|
||||
FolderOperation.Delete => WinoIconGlyph.Delete,
|
||||
FolderOperation.Move => WinoIconGlyph.Forward,
|
||||
FolderOperation.TurnOffNotifications => WinoIconGlyph.TurnOfNotifications,
|
||||
FolderOperation.CreateSubFolder => WinoIconGlyph.CreateFolder,
|
||||
_ => WinoIconGlyph.None,
|
||||
};
|
||||
}
|
||||
|
||||
public static WinoIconGlyph GetSpecialFolderPathIconGeometry(SpecialFolderType specialFolderType)
|
||||
{
|
||||
switch (specialFolderType)
|
||||
return specialFolderType switch
|
||||
{
|
||||
case SpecialFolderType.Inbox:
|
||||
return WinoIconGlyph.SpecialFolderInbox;
|
||||
case SpecialFolderType.Starred:
|
||||
return WinoIconGlyph.SpecialFolderStarred;
|
||||
case SpecialFolderType.Important:
|
||||
return WinoIconGlyph.SpecialFolderImportant;
|
||||
case SpecialFolderType.Sent:
|
||||
return WinoIconGlyph.SpecialFolderSent;
|
||||
case SpecialFolderType.Draft:
|
||||
return WinoIconGlyph.SpecialFolderDraft;
|
||||
case SpecialFolderType.Archive:
|
||||
return WinoIconGlyph.SpecialFolderArchive;
|
||||
case SpecialFolderType.Deleted:
|
||||
return WinoIconGlyph.SpecialFolderDeleted;
|
||||
case SpecialFolderType.Junk:
|
||||
return WinoIconGlyph.SpecialFolderJunk;
|
||||
case SpecialFolderType.Chat:
|
||||
return WinoIconGlyph.SpecialFolderChat;
|
||||
case SpecialFolderType.Category:
|
||||
return WinoIconGlyph.SpecialFolderCategory;
|
||||
case SpecialFolderType.Unread:
|
||||
return WinoIconGlyph.SpecialFolderUnread;
|
||||
case SpecialFolderType.Forums:
|
||||
return WinoIconGlyph.SpecialFolderForums;
|
||||
case SpecialFolderType.Updates:
|
||||
return WinoIconGlyph.SpecialFolderUpdated;
|
||||
case SpecialFolderType.Personal:
|
||||
return WinoIconGlyph.SpecialFolderPersonal;
|
||||
case SpecialFolderType.Promotions:
|
||||
return WinoIconGlyph.SpecialFolderPromotions;
|
||||
case SpecialFolderType.Social:
|
||||
return WinoIconGlyph.SpecialFolderSocial;
|
||||
case SpecialFolderType.Other:
|
||||
return WinoIconGlyph.SpecialFolderOther;
|
||||
case SpecialFolderType.More:
|
||||
return WinoIconGlyph.SpecialFolderMore;
|
||||
}
|
||||
|
||||
return WinoIconGlyph.None;
|
||||
SpecialFolderType.Inbox => WinoIconGlyph.SpecialFolderInbox,
|
||||
SpecialFolderType.Starred => WinoIconGlyph.SpecialFolderStarred,
|
||||
SpecialFolderType.Important => WinoIconGlyph.SpecialFolderImportant,
|
||||
SpecialFolderType.Sent => WinoIconGlyph.SpecialFolderSent,
|
||||
SpecialFolderType.Draft => WinoIconGlyph.SpecialFolderDraft,
|
||||
SpecialFolderType.Archive => WinoIconGlyph.SpecialFolderArchive,
|
||||
SpecialFolderType.Deleted => WinoIconGlyph.SpecialFolderDeleted,
|
||||
SpecialFolderType.Junk => WinoIconGlyph.SpecialFolderJunk,
|
||||
SpecialFolderType.Chat => WinoIconGlyph.SpecialFolderChat,
|
||||
SpecialFolderType.Category => WinoIconGlyph.SpecialFolderCategory,
|
||||
SpecialFolderType.Unread => WinoIconGlyph.SpecialFolderUnread,
|
||||
SpecialFolderType.Forums => WinoIconGlyph.SpecialFolderForums,
|
||||
SpecialFolderType.Updates => WinoIconGlyph.SpecialFolderUpdated,
|
||||
SpecialFolderType.Personal => WinoIconGlyph.SpecialFolderPersonal,
|
||||
SpecialFolderType.Promotions => WinoIconGlyph.SpecialFolderPromotions,
|
||||
SpecialFolderType.Social => WinoIconGlyph.SpecialFolderSocial,
|
||||
SpecialFolderType.Other => WinoIconGlyph.SpecialFolderOther,
|
||||
SpecialFolderType.More => WinoIconGlyph.SpecialFolderMore,
|
||||
_ => WinoIconGlyph.None,
|
||||
};
|
||||
}
|
||||
|
||||
public static WinoIconGlyph GetProviderIcon(MailProviderType providerType)
|
||||
{
|
||||
switch (providerType)
|
||||
return providerType switch
|
||||
{
|
||||
case MailProviderType.Outlook:
|
||||
return WinoIconGlyph.Microsoft;
|
||||
case MailProviderType.Gmail:
|
||||
return WinoIconGlyph.Google;
|
||||
case MailProviderType.Office365:
|
||||
return WinoIconGlyph.Microsoft;
|
||||
case MailProviderType.IMAP4:
|
||||
return WinoIconGlyph.Mail;
|
||||
}
|
||||
|
||||
return WinoIconGlyph.None;
|
||||
MailProviderType.Outlook => WinoIconGlyph.Microsoft,
|
||||
MailProviderType.Gmail => WinoIconGlyph.Google,
|
||||
MailProviderType.Office365 => WinoIconGlyph.Microsoft,
|
||||
MailProviderType.IMAP4 => WinoIconGlyph.Mail,
|
||||
_ => WinoIconGlyph.None,
|
||||
};
|
||||
}
|
||||
|
||||
public static Geometry GetPathGeometry(string pathMarkup)
|
||||
|
||||
@@ -8,7 +8,7 @@ const joditConfig = {
|
||||
"showCharsCounter": false,
|
||||
"showWordsCounter": false,
|
||||
"showXPathInStatusbar": false,
|
||||
"disablePlugins": "add-new-line",
|
||||
"disablePlugins": "add-new-line,backspace",
|
||||
"showPlaceholder": false,
|
||||
"uploader": {
|
||||
"insertImageAsBase64URI": true
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user