diff --git a/src/Angor/Avalonia/AngorApp/AngorApp.csproj b/src/Angor/Avalonia/AngorApp/AngorApp.csproj
index 70f1a57a..0d45d7b5 100644
--- a/src/Angor/Avalonia/AngorApp/AngorApp.csproj
+++ b/src/Angor/Avalonia/AngorApp/AngorApp.csproj
@@ -23,6 +23,7 @@
All
+
@@ -33,5 +34,4 @@
-
diff --git a/src/Angor/Avalonia/AngorApp/App.axaml b/src/Angor/Avalonia/AngorApp/App.axaml
index f9e12a89..dd5e0909 100644
--- a/src/Angor/Avalonia/AngorApp/App.axaml
+++ b/src/Angor/Avalonia/AngorApp/App.axaml
@@ -2,7 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:AngorApp"
x:Class="AngorApp.App"
- RequestedThemeVariant="Default">
+ RequestedThemeVariant="Light">
@@ -13,10 +13,11 @@
+
-
+
diff --git a/src/Angor/Avalonia/AngorApp/Controls/MiscConverters.cs b/src/Angor/Avalonia/AngorApp/Controls/MiscConverters.cs
index fd54ebbb..20bad5b3 100644
--- a/src/Angor/Avalonia/AngorApp/Controls/MiscConverters.cs
+++ b/src/Angor/Avalonia/AngorApp/Controls/MiscConverters.cs
@@ -1,6 +1,8 @@
using AngorApp.Sections.Shell;
using Avalonia;
using Avalonia.Data.Converters;
+using Humanizer;
+using Humanizer.DateTimeHumanizeStrategy;
using Projektanker.Icons.Avalonia;
using Separator = AngorApp.Sections.Shell.Separator;
@@ -33,4 +35,9 @@ public static class MiscConverters
public static readonly FuncValueConverter IsActivatable = new(sectionBase => sectionBase is not Separator);
public static readonly FuncValueConverter IsPrimaryToDock = new(isPrimary => isPrimary ? Dock.Top : Dock.Bottom);
+ public static readonly FuncValueConverter TimeLeft = new(offset =>
+ {
+ Humanizer.Configuration.Configurator.DateTimeHumanizeStrategy = new DefaultDateTimeHumanizeStrategy();
+ return offset.Humanize(dateToCompareAgainst: DateTimeOffset.Now);
+ });
}
\ No newline at end of file
diff --git a/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/IProjectDetailsViewModel.cs b/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/IProjectDetailsViewModel.cs
index 9d7a4700..72f0d202 100644
--- a/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/IProjectDetailsViewModel.cs
+++ b/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/IProjectDetailsViewModel.cs
@@ -6,4 +6,13 @@ public interface IProjectDetailsViewModel : IProject
string ShortDescription { get; }
object Icon { get; }
object Picture { get; }
+ public IEnumerable Stages { get; }
+}
+
+public class Stage
+{
+ public int Index { get; set; }
+ public double Weight { get; set; }
+ public DateTimeOffset ReleaseDate { get; set; }
+ public decimal Amount { get; set; }
}
\ No newline at end of file
diff --git a/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsView.axaml b/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsView.axaml
index cb471ee6..f658e93e 100644
--- a/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsView.axaml
+++ b/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsView.axaml
@@ -3,9 +3,9 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:details="clr-namespace:AngorApp.Sections.Browse.Details"
- xmlns:angorApp="clr-namespace:AngorApp"
xmlns:controls="clr-namespace:AngorApp.Controls"
xmlns:a="https://github.com/projektanker/icons.avalonia"
+ xmlns:z="clr-namespace:Zafiro.Avalonia.Controls.SlimDataGrid;assembly=Zafiro.Avalonia"
mc:Ignorable="d" d:DesignWidth="1200"
x:Class="AngorApp.Sections.Browse.Details.ProjectDetailsView" x:DataType="details:IProjectDetailsViewModel" ClipToBounds="False">
@@ -13,18 +13,12 @@
-
-
-
-
-
-
@@ -50,6 +44,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsViewModel.cs b/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsViewModel.cs
index 9bc8f599..32f8a8d6 100644
--- a/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsViewModel.cs
+++ b/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsViewModel.cs
@@ -6,4 +6,5 @@ public class ProjectDetailsViewModel(Project project) : ReactiveObject, IProject
public string ShortDescription => project.ShortDescription;
public object Icon => project.Icon;
public object Picture => project.Picture;
+ public IEnumerable Stages { get; }
}
\ No newline at end of file
diff --git a/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsViewModelDesign.cs b/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsViewModelDesign.cs
index 02ee7fb4..dab5882c 100644
--- a/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsViewModelDesign.cs
+++ b/src/Angor/Avalonia/AngorApp/Sections/Browse/Details/ProjectDetailsViewModelDesign.cs
@@ -12,4 +12,12 @@ public ProjectDetailsViewModelDesign()
public string ShortDescription { get; } = "Test Project";
public object Icon { get; }
public object Picture { get; }
+
+ public IEnumerable Stages { get; } =
+ [
+ new() { ReleaseDate = DateTimeOffset.Now.Date.AddDays(1), Amount = new decimal(0.1), Index = 1, Weight = 0.25d },
+ new() { ReleaseDate = DateTimeOffset.Now.Add(TimeSpan.FromDays(20)), Amount = new decimal(0.4), Index = 2, Weight = 0.25d },
+ new() { ReleaseDate = DateTimeOffset.Now.Add(TimeSpan.FromDays(40)), Amount = new decimal(0.3), Index = 3, Weight = 0.25d },
+ new() { ReleaseDate = DateTimeOffset.Now.Add(TimeSpan.FromDays(60)), Amount = new decimal(0.2), Index = 4, Weight = 0.25d },
+ ];
}
\ No newline at end of file
diff --git a/src/Angor/Avalonia/AngorApp/Sections/Wallet/WalletView.axaml b/src/Angor/Avalonia/AngorApp/Sections/Wallet/WalletView.axaml
index 75786aa4..e54cd61c 100644
--- a/src/Angor/Avalonia/AngorApp/Sections/Wallet/WalletView.axaml
+++ b/src/Angor/Avalonia/AngorApp/Sections/Wallet/WalletView.axaml
@@ -4,19 +4,26 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:i="https://github.com/projektanker/icons.avalonia"
xmlns:controls="clr-namespace:AngorApp.Controls"
+ xmlns:wallet="clr-namespace:AngorApp.Sections.Wallet"
+ xmlns:z="clr-namespace:Zafiro.Avalonia.Controls.SlimDataGrid;assembly=Zafiro.Avalonia"
mc:Ignorable="d" d:DesignWidth="800"
- x:Class="AngorApp.Sections.Wallet.WalletView" ClipToBounds="False">
+ x:Class="AngorApp.Sections.Wallet.WalletView" ClipToBounds="False" x:DataType="wallet:IWalletViewModel">
+
+
+
+
+
+
+
+
-
+
-
-
+
-
-
- ADDRESS
- AMOUNT
- PATH
- UTXO COUNT
- VIEW RAW JSON
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Angor/Avalonia/AngorApp/Sections/Wallet/WalletViewModel.cs b/src/Angor/Avalonia/AngorApp/Sections/Wallet/WalletViewModel.cs
index b9293ea8..a2a10dc0 100644
--- a/src/Angor/Avalonia/AngorApp/Sections/Wallet/WalletViewModel.cs
+++ b/src/Angor/Avalonia/AngorApp/Sections/Wallet/WalletViewModel.cs
@@ -1,5 +1,57 @@
+using System.Collections.ObjectModel;
+
namespace AngorApp.Sections.Wallet;
-public class WalletViewModel : ReactiveObject
+public class WalletViewModel : ReactiveObject, IWalletViewModel
+{
+ public IWallet Wallet { get; set; }
+}
+
+public interface IWalletViewModel
+{
+ public IWallet Wallet { get; set; }
+}
+
+public class WalletViewModelDesign : IWalletViewModel
+{
+ public IWallet Wallet { get; set; } = new WalletDesign();
+}
+
+public class WalletDesign : IWallet
+{
+ public IEnumerable History { get; } =
+ [
+ new TransactionDesign() { Address = "someaddress1", Amount = 0.0001m, UtxoCount = 12, Path = "path", ViewRawJson = "json"},
+ new TransactionDesign() { Address = "someaddress2", Amount = 0.0003m, UtxoCount = 15, Path = "path", ViewRawJson = "json"},
+ new TransactionDesign() { Address = "someaddress3", Amount = 0.0042m, UtxoCount = 15, Path = "path", ViewRawJson = "json"},
+ new TransactionDesign() { Address = "someaddress4", Amount = 0.00581m, UtxoCount = 15, Path = "path", ViewRawJson = "json"},
+ ];
+}
+
+public class TransactionDesign : ITransaction
+{
+ public string Address { get; set; }
+ public decimal Amount { get; set; }
+ public string Path { get; set; }
+ public int UtxoCount { get; set; }
+ public string ViewRawJson { get; set; }
+}
+
+public interface IWallet
+{
+ public IEnumerable History { get; }
+}
+
+public class WalletModel : IWallet
+{
+ public IEnumerable History { get; }
+}
+
+public interface ITransaction
{
+ public string Address { get; }
+ public decimal Amount { get; }
+ public string Path { get; }
+ public int UtxoCount { get; }
+ public string ViewRawJson { get; }
}
\ No newline at end of file
diff --git a/src/Angor/Avalonia/AngorApp/Styles.axaml b/src/Angor/Avalonia/AngorApp/Styles.axaml
index 78e7b933..27b1e4fb 100644
--- a/src/Angor/Avalonia/AngorApp/Styles.axaml
+++ b/src/Angor/Avalonia/AngorApp/Styles.axaml
@@ -1,7 +1,7 @@
+ xmlns:avalonia="https://github.com/projektanker/icons.avalonia"
+ xmlns:z="clr-namespace:Zafiro.Avalonia.Controls.SlimDataGrid;assembly=Zafiro.Avalonia">
#F5FDFF
@@ -24,6 +24,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -36,8 +51,6 @@
-
-
diff --git a/src/Angor/Avalonia/Directory.Packages.props b/src/Angor/Avalonia/Directory.Packages.props
index 086480c7..76b0c6a5 100644
--- a/src/Angor/Avalonia/Directory.Packages.props
+++ b/src/Angor/Avalonia/Directory.Packages.props
@@ -20,10 +20,11 @@
+
-
+
\ No newline at end of file