diff --git a/Bookmarkly.App/Assets/SignInBackground.png b/Bookmarkly.App/Assets/SignInBackground.png
new file mode 100644
index 0000000..cda59c9
Binary files /dev/null and b/Bookmarkly.App/Assets/SignInBackground.png differ
diff --git a/Bookmarkly.App/Bookmarkly.App.csproj b/Bookmarkly.App/Bookmarkly.App.csproj
index a149e34..2556ed8 100644
--- a/Bookmarkly.App/Bookmarkly.App.csproj
+++ b/Bookmarkly.App/Bookmarkly.App.csproj
@@ -18,6 +18,7 @@
+
diff --git a/Bookmarkly.App/MainWindow.xaml b/Bookmarkly.App/MainWindow.xaml
index 569bc75..14af99b 100644
--- a/Bookmarkly.App/MainWindow.xaml
+++ b/Bookmarkly.App/MainWindow.xaml
@@ -14,6 +14,6 @@
-
+
diff --git a/Bookmarkly.App/MainWindow.xaml.cs b/Bookmarkly.App/MainWindow.xaml.cs
index 8790a3f..5de3282 100644
--- a/Bookmarkly.App/MainWindow.xaml.cs
+++ b/Bookmarkly.App/MainWindow.xaml.cs
@@ -1,4 +1,3 @@
-using System.Collections.ObjectModel;
using Cyclotron.Extensions.DependencyInjection;
using Cyclotron.Telemetry.Logging;
using Microsoft.Extensions.DependencyInjection;
@@ -8,22 +7,12 @@
namespace Bookmarkly.App;
///
-/// An empty window that can be used on its own or navigated to within a Frame.
+/// Main application window that hosts page navigation.
///
public sealed partial class MainWindow : Window
{
- private readonly ObservableCollection _datas = [];
public MainWindow()
{
- _datas.Add(1);
- _datas.Add(1);
- _datas.Add(1);
- _datas.Add(1);
- _datas.Add(1);
- _datas.Add(1);
- _datas.Add(1);
- _datas.Add(1);
- _datas.Add(1);
InitializeComponent();
}
@@ -47,5 +36,7 @@ private void OnWindowLoaded(object sender, RoutedEventArgs e)
var logger = provider.GetRequiredService().ForModule("Instapaper");
logger.LogInformation("Starting operation"); // Caller info auto-captured!
+
+ RootFrame.Navigate(typeof(SignInPage));
}
}
diff --git a/Bookmarkly.App/SignInPage.xaml b/Bookmarkly.App/SignInPage.xaml
new file mode 100644
index 0000000..4cac9cf
--- /dev/null
+++ b/Bookmarkly.App/SignInPage.xaml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Bookmarkly.App/SignInPage.xaml.cs b/Bookmarkly.App/SignInPage.xaml.cs
new file mode 100644
index 0000000..74342ca
--- /dev/null
+++ b/Bookmarkly.App/SignInPage.xaml.cs
@@ -0,0 +1,25 @@
+using Microsoft.UI.Xaml;
+using Microsoft.UI.Xaml.Controls;
+
+namespace Bookmarkly.App;
+
+///
+/// Sign-in page that allows users to authenticate with FreshRSS or Instapaper.
+///
+public sealed partial class SignInPage : Page
+{
+ public SignInPage()
+ {
+ InitializeComponent();
+ }
+
+ private void OnFreshRssSignInClick(object sender, RoutedEventArgs e)
+ {
+ // TODO: Implement FreshRSS sign-in flow
+ }
+
+ private void OnInstapaperSignInClick(object sender, RoutedEventArgs e)
+ {
+ // TODO: Implement Instapaper sign-in flow
+ }
+}
diff --git a/Bookmarkly.App/Strings/en-us/Resources.resw b/Bookmarkly.App/Strings/en-us/Resources.resw
new file mode 100644
index 0000000..34f7bda
--- /dev/null
+++ b/Bookmarkly.App/Strings/en-us/Resources.resw
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Welcome to Bookmarkly
+ Title shown on the sign-in page
+
+
+ Sign in to sync your bookmarks
+ Subtitle shown on the sign-in page
+
+
+ Sign in with FreshRSS
+ Button text for FreshRSS sign-in
+
+
+ Sign in with Instapaper
+ Button text for Instapaper sign-in
+
+
diff --git a/docs/signin-page-mockup.png b/docs/signin-page-mockup.png
new file mode 100644
index 0000000..ea49de1
Binary files /dev/null and b/docs/signin-page-mockup.png differ