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:
Tiktack
2024-09-10 10:14:13 +02:00
committed by GitHub
parent 7715d4bdda
commit 7761cf6dbe
4 changed files with 76 additions and 174 deletions

View File

@@ -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();

View File

@@ -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)

View File

@@ -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