Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
0x5bfa committed Mar 9, 2024
1 parent 302161c commit 70e2ff6
Show file tree
Hide file tree
Showing 24 changed files with 1,317 additions and 1,580 deletions.
2 changes: 1 addition & 1 deletion src/Files.App/Data/Contexts/HomePage/HomePageContext.cs
Expand Up @@ -7,7 +7,7 @@

namespace Files.App.Data.Contexts
{
internal class HomePageContext : ObservableObject, IHomePageContext
public class HomePageContext : ObservableObject, IHomePageContext
{
private static readonly IImmutableList<WidgetFileTagCardItem> emptyTaggedItems = Enumerable.Empty<WidgetFileTagCardItem>().ToImmutableList();

Expand Down
2 changes: 1 addition & 1 deletion src/Files.App/Data/Contexts/HomePage/IHomePageContext.cs
Expand Up @@ -5,7 +5,7 @@

namespace Files.App.Data.Contexts
{
internal interface IHomePageContext
public interface IHomePageContext
{
/// <summary>
/// The last right clicked item
Expand Down
2 changes: 1 addition & 1 deletion src/Files.App/Data/Contracts/IWidgetViewModel.cs
Expand Up @@ -17,7 +17,7 @@ public interface IWidgetViewModel : IDisposable

bool ShowMenuFlyout { get; }

MenuFlyoutItem MenuFlyoutItem { get; }
MenuFlyoutItem? MenuFlyoutItem { get; }

Task RefreshWidgetAsync();
}
Expand Down
10 changes: 10 additions & 0 deletions src/Files.App/Data/EventArguments/DrivesWidgetInvokedEventArgs.cs
@@ -0,0 +1,10 @@
// Copyright (c) 2023 Files Community
// Licensed under the MIT License. See the LICENSE.

namespace Files.App.Data.EventArguments
{
public class DrivesWidgetInvokedEventArgs : EventArgs
{
public string? Path { get; set; }
}
}
13 changes: 6 additions & 7 deletions src/Files.App/Data/Items/WidgetFileTagCardItem.cs
Expand Up @@ -9,14 +9,14 @@ namespace Files.App.Data.Items
{
public sealed partial class WidgetFileTagCardItem : WidgetCardItem
{
// Dependency injections

private IContentPageContext ContentPageContext { get; } = Ioc.Default.GetRequiredService<IContentPageContext>();

// Fields

private readonly IStorable _associatedStorable;

// A workaround for lack of MVVM-compliant navigation support.
// This workaround must be kept until further refactor of navigation code is completed.
private readonly Func<string, Task> _openAction;

// Properties

public bool IsFolder
Expand Down Expand Up @@ -47,10 +47,9 @@ public override string Path

public ICommand ClickCommand { get; }

public WidgetFileTagCardItem(IStorable associatedStorable, Func<string, Task> openAction, IImage? icon)
public WidgetFileTagCardItem(IStorable associatedStorable, IImage? icon)
{
_associatedStorable = associatedStorable;
_openAction = openAction;
_Icon = icon;
_Name = associatedStorable.Name;
_Path = associatedStorable.TryGetPath();
Expand All @@ -61,7 +60,7 @@ public WidgetFileTagCardItem(IStorable associatedStorable, Func<string, Task> op

private Task ClickAsync()
{
return _openAction(_associatedStorable.Id);
return NavigationHelpers.OpenPath(_associatedStorable.Id, ContentPageContext.ShellPage!);
}
}
}
10 changes: 4 additions & 6 deletions src/Files.App/Data/Items/WidgetFileTagsContainerItem.cs
Expand Up @@ -13,11 +13,10 @@ public sealed partial class WidgetFileTagsContainerItem : ObservableObject, IAsy
private readonly IFileTagsService FileTagsService = Ioc.Default.GetRequiredService<IFileTagsService>();
private readonly IImageService ImageService = Ioc.Default.GetRequiredService<IImageService>();
private readonly ICommandManager Commands = Ioc.Default.GetRequiredService<ICommandManager>();
private IContentPageContext ContentPageContext { get; } = Ioc.Default.GetRequiredService<IContentPageContext>();

private readonly string _tagUid;

private readonly Func<string, Task> _openAction;

// Properties

public ObservableCollection<WidgetFileTagCardItem> Tags { get; }
Expand Down Expand Up @@ -46,10 +45,9 @@ public sealed partial class WidgetFileTagsContainerItem : ObservableObject, IAsy
public ICommand ViewMoreCommand { get; }
public ICommand OpenAllCommand { get; }

public WidgetFileTagsContainerItem(string tagUid, Func<string, Task> openAction)
public WidgetFileTagsContainerItem(string tagUid)
{
_tagUid = tagUid;
_openAction = openAction;
Tags = new();

ViewMoreCommand = new AsyncRelayCommand<CancellationToken>(ViewMore);
Expand All @@ -62,13 +60,13 @@ public async Task InitAsync(CancellationToken cancellationToken = default)
await foreach (var item in FileTagsService.GetItemsForTagAsync(_tagUid, cancellationToken))
{
var icon = await ImageService.GetIconAsync(item.Storable, cancellationToken);
Tags.Add(new(item.Storable, _openAction, icon));
Tags.Add(new(item.Storable, icon));
}
}

private Task ViewMore(CancellationToken cancellationToken)
{
return _openAction($"tag:{Name}");
return NavigationHelpers.OpenPath($"tag:{Name}", ContentPageContext.ShellPage!);
}

private Task OpenAll(CancellationToken cancellationToken)
Expand Down
3 changes: 2 additions & 1 deletion src/Files.App/GlobalUsings.cs
Expand Up @@ -50,9 +50,10 @@
global using global::Files.App.Services;
global using global::Files.App.UserControls;
global using global::Files.App.UserControls.TabBar;
global using global::Files.App.UserControls.ViewModels.Widgets;
global using global::Files.App.UserControls.Widgets;
global using global::Files.App.ViewModels;
global using global::Files.App.ViewModels.UserControls;
global using global::Files.App.ViewModels.UserControls.Widgets;
global using global::Files.App.Views;
global using global::Files.App.Views.Layouts;
global using global::Files.App.Views.Shells;
Expand Down
3 changes: 0 additions & 3 deletions src/Files.App/Strings/en-US/Resources.resw
Expand Up @@ -1701,9 +1701,6 @@
<data name="DrivesWidgetAutomationProperties.Name" xml:space="preserve">
<value>Drives widget</value>
</data>
<data name="RecentFilesWidgetAutomationProperties.Name" xml:space="preserve">
<value>Recent Files widget</value>
</data>
<data name="NoSearchResultsFound" xml:space="preserve">
<value>No items found</value>
</data>
Expand Down
12 changes: 4 additions & 8 deletions src/Files.App/UserControls/Widgets/DrivesWidget.xaml
@@ -1,21 +1,17 @@
<!-- Copyright (c) 2023 Files Community. Licensed under the MIT License. See the LICENSE. -->
<local:BaseWidgetViewModel
<UserControl
x:Class="Files.App.UserControls.Widgets.DrivesWidget"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:dataitems="using:Files.App.Data.Items"
xmlns:helpers="using:Files.App.Helpers"
xmlns:local="using:Files.App.UserControls.Widgets"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
DataContext="{x:Bind ViewModel, Mode=OneWay}"
mc:Ignorable="d">

<Grid>
<ItemsRepeater
x:Name="CardsList"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
ItemsSource="{x:Bind local:DrivesWidget.ItemsAdded, Mode=OneWay}">
<ItemsRepeater ItemsSource="{x:Bind ViewModel.Items, Mode=OneWay}">

<ItemsRepeater.Layout>
<UniformGridLayout
Expand Down Expand Up @@ -137,4 +133,4 @@

</ItemsRepeater>
</Grid>
</local:BaseWidgetViewModel>
</UserControl>

0 comments on commit 70e2ff6

Please sign in to comment.