Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MAUI Controls #214

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions Firebase.Auth.sln
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Auth.UI.WinUI3", "src\Auth.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Auth.WinUI3.Sample", "samples\WinUI3\Auth.WinUI3.Sample.csproj", "{4D7E8D5F-9DB9-46B3-99F3-2D768BBAA92D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Auth.UI.MAUI", "src\Auth.UI.MAUI\Auth.UI.MAUI.csproj", "{08B76970-ACB8-4823-AEEA-4E2F32CADD47}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Auth.MAUI.Sample", "samples\MAUI\Auth.MAUI.Sample.csproj", "{249C7854-09D3-4137-BFF1-D32FE972488A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -299,6 +303,56 @@ Global
{4D7E8D5F-9DB9-46B3-99F3-2D768BBAA92D}.Release|x86.ActiveCfg = Release|x86
{4D7E8D5F-9DB9-46B3-99F3-2D768BBAA92D}.Release|x86.Build.0 = Release|x86
{4D7E8D5F-9DB9-46B3-99F3-2D768BBAA92D}.Release|x86.Deploy.0 = Release|x86
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|Any CPU.Build.0 = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|ARM.ActiveCfg = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|ARM.Build.0 = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|ARM64.Build.0 = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|x64.ActiveCfg = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|x64.Build.0 = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|x86.ActiveCfg = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Debug|x86.Build.0 = Debug|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|Any CPU.ActiveCfg = Release|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|Any CPU.Build.0 = Release|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|ARM.ActiveCfg = Release|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|ARM.Build.0 = Release|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|ARM64.ActiveCfg = Release|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|ARM64.Build.0 = Release|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|x64.ActiveCfg = Release|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|x64.Build.0 = Release|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|x86.ActiveCfg = Release|Any CPU
{08B76970-ACB8-4823-AEEA-4E2F32CADD47}.Release|x86.Build.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|ARM.ActiveCfg = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|ARM.Build.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|ARM.Deploy.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|ARM64.Build.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|ARM64.Deploy.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|x64.ActiveCfg = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|x64.Build.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|x64.Deploy.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|x86.ActiveCfg = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|x86.Build.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Debug|x86.Deploy.0 = Debug|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|Any CPU.Build.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|Any CPU.Deploy.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|ARM.ActiveCfg = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|ARM.Build.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|ARM.Deploy.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|ARM64.ActiveCfg = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|ARM64.Build.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|ARM64.Deploy.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|x64.ActiveCfg = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|x64.Build.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|x64.Deploy.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|x86.ActiveCfg = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|x86.Build.0 = Release|Any CPU
{249C7854-09D3-4137-BFF1-D32FE972488A}.Release|x86.Deploy.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -310,6 +364,7 @@ Global
{31FAEF42-D294-4269-94B8-D5AE76CDF964} = {5528D6EA-402F-4FD9-9A01-0B799AFFC14B}
{69BFF1A9-8384-4DD8-BD23-31E384D57499} = {5528D6EA-402F-4FD9-9A01-0B799AFFC14B}
{4D7E8D5F-9DB9-46B3-99F3-2D768BBAA92D} = {CF8B7ECC-0E53-4B26-ABB3-0D74BDBB642F}
{249C7854-09D3-4137-BFF1-D32FE972488A} = {CF8B7ECC-0E53-4B26-ABB3-0D74BDBB642F}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {EBE8EC40-A988-4401-8C7E-61E1165C7D46}
Expand Down
3 changes: 2 additions & 1 deletion build/build-libs.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
dotnet build --configuration release .\src\Auth.UI\Auth.UI.csproj
dotnet build --configuration release .\src\Auth.UI.WPF\Auth.UI.WPF.csproj
dotnet build --configuration release .\src\Auth.UI.WinUI3\Auth.UI.WinUI3.csproj
msbuild /restore /p:Configuration=Release .\src\Auth.UI.UWP\Auth.UI.UWP.csproj
msbuild /restore /p:Configuration=Release .\src\Auth.UI.UWP\Auth.UI.UWP.csproj
dotnet build --configuration release .\src\Auth.UI.MAUI\Auth.UI.MAUI.csproj
3 changes: 2 additions & 1 deletion build/build-samples.ps1
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
dotnet build --configuration release .\samples\Console\Auth.Console.Sample.csproj
dotnet build --configuration release .\samples\WPF\Auth.WPF.Sample.csproj
dotnet build --configuration release .\samples\WinUI3\Auth.WinUI3.Sample.csproj
msbuild /restore /p:Configuration=Debug .\samples\UWP\Auth.UWP.Sample.csproj
msbuild /restore /p:Configuration=Debug .\samples\UWP\Auth.UWP.Sample.csproj
dotnet build --configuration release .\samples\MAUI\Auth.MAUI.Sample.csproj
2 changes: 2 additions & 0 deletions build/run-pack.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ if ($preview) {
dotnet pack --configuration release --output $output --version-suffix=$suffix .\src\Auth.UI.WPF\Auth.UI.WPF.csproj
dotnet pack --configuration release --output $output --version-suffix=$suffix .\src\Auth.UI.WinUI3\Auth.UI.WinUI3.csproj
msbuild /t:restore,pack /p:Configuration=Release /p:PackageOutputPath=$output /p:VersionSuffix=$suffix .\src\Auth.UI.UWP\Auth.UI.UWP.csproj
dotnet pack --configuration release --output $output --version-suffix=$suffix .\src\Auth.UI.MAUI\Auth.UI.MAUI.csproj
} else {
$version = $(git describe --tags --abbrev=0).substring(1)
write "Creating packages with tag version $version"
dotnet pack --configuration release --output $output -p:version=$version .\src\Auth\Auth.csproj
dotnet pack --configuration release --output $output -p:version=$version .\src\Auth.UI.WPF\Auth.UI.WPF.csproj
dotnet pack --configuration release --output $output -p:version=$version .\src\Auth.UI.WinUI3\Auth.UI.WinUI3.csproj
msbuild /t:restore,pack /p:Configuration=Release /p:PackageOutputPath=$output /p:Version=$version .\src\Auth.UI.UWP\Auth.UI.UWP.csproj
dotnet pack --configuration release --output $output -p:version=$version .\src\Auth.UI.MAUI\Auth.UI.MAUI.csproj
}
14 changes: 14 additions & 0 deletions samples/MAUI/App.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version = "1.0" encoding = "UTF-8" ?>
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Auth.MAUI.Sample"
x:Class="Auth.MAUI.Sample.App">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Styles/Colors.xaml" />
<ResourceDictionary Source="Resources/Styles/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
47 changes: 47 additions & 0 deletions samples/MAUI/App.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
using Firebase.Auth;
using Firebase.Auth.UI;
using Firebase.Auth.UI.MAUI;

namespace Auth.MAUI.Sample
{
public partial class App : Application
{
public App()
{
InitializeComponent();
// Use Direct Navigation
UseDirectNavigation();
// Use APP Shell
//MainPage = new AppShell();
// Use Navigation Page
//MainPage = new AppNavigation();
}

private void UseDirectNavigation()
{
Router.RegisterMainType<LoginPage>(Router.NavigationModeEnum.Direct);
MainPage = new LoginPage();
FirebaseUI.Instance.Client.AuthStateChanged += this.AuthStateChanged;
}
private void AuthStateChanged(object sender, UserEventArgs e)
{
Application.Current.Dispatcher.DispatchAsync(async () =>
{
if (e.User == null)
{
if (this.MainPage?.GetType() != Router.MainType)
await Router.NavigateToMain();
}
else if (e.User.IsAnonymous)
{
if (this.MainPage?.GetType() != typeof(MainPage))
MainPage = new MainPage();
}
else if (this.MainPage?.GetType() != typeof(MainPage))
{
MainPage = new MainPage();
}
});
}
}
}
6 changes: 6 additions & 0 deletions samples/MAUI/AppNavigation.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<NavigationPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Auth.MAUI.Sample.AppNavigation"
Title="AppNavigation" NavigationPage.HasBackButton="False" NavigationPage.HasNavigationBar="False">
</NavigationPage>
39 changes: 39 additions & 0 deletions samples/MAUI/AppNavigation.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using Firebase.Auth;
using Firebase.Auth.UI;
using Firebase.Auth.UI.MAUI;

namespace Auth.MAUI.Sample;

public partial class AppNavigation : NavigationPage
{
public AppNavigation()
{
Router.RegisterMainType<LoginPage>(Router.NavigationModeEnum.Stack);
InitializeComponent();

FirebaseUI.Instance.Client.AuthStateChanged += this.AuthStateChanged;
}

private void AuthStateChanged(object sender, UserEventArgs e)
{
Application.Current.Dispatcher.DispatchAsync(async () =>
{
Shell.SetBackButtonBehavior(this, new BackButtonBehavior() { IsVisible = false });

if (e.User == null)
{
if (this.Navigation.NavigationStack.LastOrDefault()?.GetType() != Router.MainType)
await Router.NavigateToMain();
}
else if (e.User.IsAnonymous)
{
if (this.Navigation.NavigationStack.LastOrDefault()?.GetType() != typeof(MainPage))
await Router.NavigateToMain();
}
else if (this.Navigation.NavigationStack.LastOrDefault()?.GetType() != typeof(MainPage))
{
await this.Navigation.PushAsync(new MainPage());
}
});
}
}
14 changes: 14 additions & 0 deletions samples/MAUI/AppShell.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="Auth.MAUI.Sample.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Auth.MAUI.Sample"
Shell.FlyoutBehavior="Disabled"
Title="Auth.MAUI.Sample">

<ShellContent x:Name="ShellContent"
Title="Home"
Route="MainPage"
ContentTemplate="{DataTemplate local:MainPage}" />
</Shell>
39 changes: 39 additions & 0 deletions samples/MAUI/AppShell.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using Firebase.Auth.UI;
using Firebase.Auth;
using Firebase.Auth.UI.MAUI;

namespace Auth.MAUI.Sample
{
public partial class AppShell : Shell
{
public AppShell()
{
Router.RegisterShellRoutes<LoginPage>();
Router.RegisterMainType<LoginPage>(Router.NavigationModeEnum.StackModal);
InitializeComponent();

FirebaseUI.Instance.Client.AuthStateChanged += this.AuthStateChanged;
}

private void AuthStateChanged(object sender, UserEventArgs e)
{
Application.Current.Dispatcher.DispatchAsync(async () =>
{
if (e.User == null)
{
if (this.CurrentPage.GetType() != Router.MainType)
await Router.NavigateToMain();
}
else if (e.User.IsAnonymous)
{
if (this.CurrentPage.GetType() != typeof(MainPage))
await GoToAsync(nameof(MainPage));
}
else if (this.CurrentPage.GetType() != typeof(MainPage))
{
await GoToAsync(nameof(MainPage));
}
});
}
}
}
77 changes: 77 additions & 0 deletions samples/MAUI/Auth.MAUI.Sample.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0</TargetFrameworks>
<!-- Uncomment to also build the tizen app. You will need to install tizen by following this: https://github.com/Samsung/Tizen.NET -->
<!-- <TargetFrameworks>$(TargetFrameworks);net8.0-tizen</TargetFrameworks> -->

<!-- Note for MacCatalyst:
The default runtime is maccatalyst-x64, except in Release config, in which case the default is maccatalyst-x64;maccatalyst-arm64.
When specifying both architectures, use the plural <RuntimeIdentifiers> instead of the singular <RuntimeIdentifier>.
The Mac App Store will NOT accept apps with ONLY maccatalyst-arm64 indicated;
either BOTH runtimes must be indicated or ONLY macatalyst-x64. -->
<!-- For example: <RuntimeIdentifiers>maccatalyst-x64;maccatalyst-arm64</RuntimeIdentifiers> -->

<OutputType>Exe</OutputType>
<RootNamespace>Auth.MAUI.Sample</RootNamespace>
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>

<!-- Display name -->
<ApplicationTitle>Auth.MAUI.Sample</ApplicationTitle>

<!-- App Identifier -->
<ApplicationId>com.companyname.auth.maui.sample</ApplicationId>

<!-- Versions -->
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<ApplicationVersion>1</ApplicationVersion>

<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">13.1</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.17763.0</TargetPlatformMinVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
</PropertyGroup>

<ItemGroup>
<!-- App Icon -->
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" />

<!-- Splash Screen -->
<MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" />

<!-- Images -->
<MauiImage Include="Resources\Images\*" />

<!-- Custom Fonts -->
<MauiFont Include="Resources\Fonts\*" />

<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\Auth.UI.MAUI\Auth.UI.MAUI.csproj" />
<ProjectReference Include="..\..\src\Auth.UI\Auth.UI.csproj" />
</ItemGroup>

<ItemGroup>
<MauiXaml Update="AppNavigation.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="LoginPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
</ItemGroup>

</Project>
28 changes: 28 additions & 0 deletions samples/MAUI/LoginPage.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:UI="clr-namespace:Firebase.Auth.UI.MAUI;assembly=Auth.UI.MAUI"
x:Class="Auth.MAUI.Sample.LoginPage" Shell.NavBarIsVisible="False" Shell.TabBarIsVisible="False">
<Shell.BackButtonBehavior>
<BackButtonBehavior IsVisible="False" />
</Shell.BackButtonBehavior>
<ContentPage.Content>
<Grid>
<UI:FirebaseUIControl>
<UI:FirebaseUIControl.Header>
<StackLayout>
<Image HeightRequest="150" Source="firebase.png" Aspect="AspectFit" />

<Label HorizontalOptions="Center"
VerticalOptions="CenterAndExpand"
FontSize="16"
Margin="12"
HorizontalTextAlignment="Center"
VerticalTextAlignment="Center"
Text="Don't forget to add your API Key &amp; Domain in MauiProgram.cs" />
</StackLayout>
</UI:FirebaseUIControl.Header>
</UI:FirebaseUIControl>
</Grid>
</ContentPage.Content>
</ContentPage>
9 changes: 9 additions & 0 deletions samples/MAUI/LoginPage.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Auth.MAUI.Sample;

public partial class LoginPage : ContentPage
{
public LoginPage()
{
InitializeComponent();
}
}
Loading