Merge pull request 'navigation' (#39) from navigation into master
continuous-integration/drone/push Build is failing Details

Reviewed-on: ShopNCook/ShopNCook#39
xaml/set-filter
Leo TUAILLON 2 years ago
commit d3cf0662b7

@ -1,11 +1,23 @@
namespace ShoopNCook;
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage = new AppShell();
}
}
using ShoopNCook.Pages;
using ShoopNCook.Models;
using ShoopNCook.Models.API;
public partial class App : Application
{
public App()
{
InitializeComponent();
Account account = getUserAccount();
var appShell = new AppShell();
MainPage = appShell;
appShell.GoToAsync("//Splash");
}
private Account getUserAccount()
{
return new Account(new User(new Uri("https://www.pngkey.com/png/full/115-1150152_default-profile-picture-avatar-png-green.png"), "Stub Account"), "test@example.com");
}
}

@ -6,82 +6,96 @@
xmlns:local="clr-namespace:ShoopNCook"
xmlns:pages="clr-namespace:ShoopNCook.Pages"
Shell.FlyoutBehavior="Disabled"
Shell.NavBarIsVisible="False">
Shell.NavBarIsVisible="False"
Shell.TabBarBackgroundColor="White"
Shell.TabBarTitleColor="{StaticResource Selected}"
Shell.TabBarUnselectedColor="{StaticResource TextColorSecondary}">
<ShellContent
x:Name="Splash"
Title="More"
ContentTemplate="{DataTemplate pages:Splash}"
Route="Splash"/>
<ShellContent
x:Name="LoginPage"
Title="Login"
ContentTemplate="{DataTemplate pages:LoginPage}"
Route="LoginPage"/>
<ShellContent
x:Name="RegisterPage"
Title="Register"
ContentTemplate="{DataTemplate pages:RegisterPage}"
Route="RegisterPage"/>
<TabBar>
<ShellContent
Title="Login Page"
ContentTemplate="{DataTemplate pages:LoginPage}"
Route="Login" />
<ShellContent
Title="changePassword"
ContentTemplate="{DataTemplate pages:ChangePassword}"
Route="ChangePassword" />
x:Name="HomeTab"
Title="Home"
ContentTemplate="{DataTemplate pages:HomePage}"
Route="HomePage"
Icon="home.svg"/>
<ShellContent
Title="Profile Page"
ContentTemplate="{DataTemplate pages:ProfilePage}"
Route="Profile" />
x:Name="FavoritesTab"
Title="Favorites"
ContentTemplate="{DataTemplate pages:FavoritesPage}"
Route="Favorites"
Icon="hearth_on.svg"/>
<ShellContent
Title="Home Page"
ContentTemplate="{DataTemplate pages:HomePage}"
Route="HomePage" />
<ShellContent
Title="Search Page"
ContentTemplate="{DataTemplate pages:SearchPage}"
Route="Search" />
x:Name="MyListTab"
Title="MyList"
ContentTemplate="{DataTemplate pages:MyListPage}"
Route="MyList"
Icon="list.svg"/>
<ShellContent
Title="More Page"
x:Name="MoreTab"
Title="More"
ContentTemplate="{DataTemplate pages:MorePage}"
Route="More"/>
Route="More"
Icon="more.svg"/>
</TabBar>
<FlyoutItem Title="Search">
<ShellContent
Title="Register Page"
ContentTemplate="{DataTemplate pages:RegisterPage}"
Route="Register"/>
Title="Search Page"
ContentTemplate="{DataTemplate pages:SearchPage}"
Route="Search"/>
</FlyoutItem>
<FlyoutItem Title="RecipePage">
<ShellContent
Title="Recipe Page"
Title="RecipePage"
ContentTemplate="{DataTemplate pages:RecipePage}"
Route="Recipe" />
<ShellContent
Title="Favorites Page"
ContentTemplate="{DataTemplate pages:FavoritesPage}"
Route="Favorites" />
Route="RecipePage"/>
</FlyoutItem>
<FlyoutItem Title="MyRecipePage">
<ShellContent
Title="MyList Page"
ContentTemplate="{DataTemplate pages:MyListPage}"
Route="MyList" />
Title="MyRecipesPage"
ContentTemplate="{DataTemplate pages:MyRecipesPage}"
Route="MyRecipe"/>
</FlyoutItem>
<FlyoutItem Title="ProfilePage">
<ShellContent
Title="Confirm Email"
ContentTemplate="{DataTemplate pages:ConfirmMail}"
Route="ConfirmMail" />
Title="ProfilePage"
ContentTemplate="{DataTemplate pages:ProfilePage}"
Route="EditProfile"/>
</FlyoutItem>
<FlyoutItem>
<ShellContent
Title="Forgot Password"
x:Name="ForgotPassword"
Title="Login"
ContentTemplate="{DataTemplate pages:ForgotPassword}"
Route="Forgot Password" />
Route="ForgotPassword"/>
</FlyoutItem>
<FlyoutItem>
<ShellContent
Title="My Recipes Page"
ContentTemplate="{DataTemplate pages:MyRecipesPage}"
Route="MyRecipes" />
<ShellContent
Title="Create Recipe Page"
x:Name="CreateRecipe"
Title="CreateRecipe"
ContentTemplate="{DataTemplate pages:CreateRecipePage}"
Route="CreateRecipe" />
<ShellContent
Title="Splash"
ContentTemplate="{DataTemplate pages:Splash}"
Route="Splash" />
</TabBar>
Route="CreateRecipe"/>
</FlyoutItem>
</Shell>

@ -1,9 +1,13 @@
namespace ShoopNCook;
using ShoopNCook.Pages;
using Microsoft.Maui.Controls;
public partial class AppShell : Shell
{
public AppShell()
{
InitializeComponent();
}
}
}

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ShoopNCook.Models.API
{
public interface IAccountManager
{
public Account login(string email, string password);
}
}

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ShoopNCook.Models.API
{
public interface IEndpoint
{
public IAccountManager AccountManager { get; }
public ISearchEngine SearchEngine { get; }
}
}

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ShoopNCook.Models.API
{
public interface ISearchEngine
{
//TODO define methods to search recipes
}
}

@ -1,6 +1,6 @@
namespace ShoopNCook.Models
{
internal class Account
public class Account
{
public Account(User usr, string mail)

@ -1,10 +1,9 @@

namespace ShoopNCook.Models
{
internal class Ingredient
public class Ingredient
{
public Ingredient(string name, float amount, Quantity quantity) {
Name = name;
Amount = amount;

@ -2,9 +2,8 @@
namespace ShoopNCook.Models
{
internal class PreparationStep
public class PreparationStep
{
public PreparationStep(string name, string description)
{
this.Name = name;

@ -1,7 +1,7 @@

namespace ShoopNCook.Models
{
internal class Quantity
public class Quantity
{
}
}

@ -1,7 +1,7 @@

namespace ShoopNCook.Models
{
internal class Recipe
public class Recipe
{
public RecipeInfo Info { get; init; }

@ -1,8 +1,7 @@

namespace ShoopNCook.Models
{
internal class RecipeInfo
public class RecipeInfo
{
public string Name { get; init; }
public string Description { get; init; }

@ -1,7 +1,7 @@

namespace ShoopNCook.Models
{
internal class User
public class User
{
public User(Uri profilePicture, string name)

@ -1,9 +0,0 @@
namespace ShoopNCook.Pages;
public partial class HomePage : ContentPage
{
public HomePage()
{
InitializeComponent();
}
}

@ -1,9 +0,0 @@
namespace ShoopNCook.Pages;
public partial class LoginPage : ContentPage
{
public LoginPage()
{
InitializeComponent();
}
}

@ -1,40 +0,0 @@
<?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"
x:Class="ShoopNCook.Pages.MorePage"
BackgroundColor="{StaticResource BackgroundPrimary}"
xmlns:views="clr-namespace:ShoopNCook.Views"
Title="MorePage">
<Grid
RowDefinitions="Auto, *"
Padding="20, 50, 20, 20">
<!-- Profile picture and name -->
<Grid
Grid.Row="0"
ColumnDefinitions="*, 2*"
ColumnSpacing="30">
<Image
x:Name="ProfileImage"/>
<Label
x:Name="ProfileName"
Grid.Column="1"
FontSize="24"
VerticalTextAlignment="Center"
TextColor="{StaticResource TextColorPrimary}"
FontFamily="Poppins"/>
</Grid>
<VerticalStackLayout
Grid.Row="1"
VerticalOptions="Center"
Margin="40, 0, 0, 0">
<views:HeadedButton Text="My Recipes" HeadSource="cookie.svg" HeadColor="#FF5441"/>
<views:HeadedButton Text="Edit Profile" HeadSource="user_fill.svg" HeadColor="#FF5441"/>
<views:HeadedButton Text="Dark Mode" HeadSource="moon_white.svg" HeadColor="#FF5441"/>
<views:HeadedButton Text="Share App" HeadSource="share.svg" HeadColor="#FF5441"/>
<views:HeadedButton Text="Logout" HeadSource="logout_arrow.svg" HeadColor="#FF5441"/>
</VerticalStackLayout>
</Grid>
</ContentPage>

@ -1,15 +0,0 @@
namespace ShoopNCook.Pages;
public partial class MorePage : ContentPage
{
public MorePage(): this("Adom Shafi", ImageSource.FromFile("default_profile_picture.png"))
{
}
public MorePage(string userName, ImageSource userImage)
{
InitializeComponent();
ProfileImage.Source = userImage;
ProfileName.Text = userName;
}
}

@ -1,9 +0,0 @@
namespace ShoopNCook.Pages;
public partial class MyRecipesPage : ContentPage
{
public MyRecipesPage()
{
InitializeComponent();
}
}

@ -1,9 +0,0 @@
namespace ShoopNCook.Pages;
public partial class RegisterPage : ContentPage
{
public RegisterPage()
{
InitializeComponent();
}
}

@ -1,9 +0,0 @@
namespace ShoopNCook.Pages;
public partial class Splash : ContentPage
{
public Splash()
{
InitializeComponent();
}
}

@ -0,0 +1,3 @@
<svg width="95" height="100" viewBox="0 0 95 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M33.174 93.8667V78.5781C33.174 74.6753 36.3609 71.5115 40.2922 71.5115H54.6631C56.551 71.5115 58.3616 72.256 59.6965 73.5813C61.0314 74.9065 61.7814 76.7039 61.7814 78.5781V93.8667C61.7695 95.4892 62.4104 97.0494 63.5619 98.2009C64.7134 99.3524 66.2803 100 67.9148 99.9999H77.7192C82.2982 100.012 86.6938 98.2142 89.9359 95.004C93.178 91.7939 95.0001 87.4349 95.0001 82.8891V39.3343C94.9999 35.6623 93.3604 32.1792 90.5232 29.8233L57.1702 3.37934C51.3684 -1.25719 43.0556 -1.10749 37.427 3.73489L4.83512 29.8233C1.86376 32.1098 0.0878225 35.6032 6.10352e-05 39.3343V82.8447C6.10352e-05 92.3193 7.73697 99.9999 17.2809 99.9999H26.8615C30.2562 100 33.015 97.2811 33.0396 93.9112L33.174 93.8667Z" fill="#A8A8AA"/>
</svg>

After

Width:  |  Height:  |  Size: 825 B

@ -0,0 +1,3 @@
<svg width="136" height="78" viewBox="0 0 136 78" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M37.7778 11.7C36.1722 11.7 34.8264 11.1361 33.7403 10.0084C32.6542 8.8805 32.1111 7.483 32.1111 5.81588C32.1111 4.14863 32.6542 2.7625 33.7403 1.6575C34.8264 0.5525 36.1722 0 37.7778 0H130.333C131.939 0 133.285 0.563873 134.371 1.69162C135.457 2.8195 136 4.217 136 5.88412C136 7.55137 135.457 8.9375 134.371 10.0425C133.285 11.1475 131.939 11.7 130.333 11.7H37.7778ZM37.7778 44.85C36.1722 44.85 34.8264 44.2861 33.7403 43.1584C32.6542 42.0305 32.1111 40.633 32.1111 38.9659C32.1111 37.2986 32.6542 35.9125 33.7403 34.8075C34.8264 33.7025 36.1722 33.15 37.7778 33.15H130.333C131.939 33.15 133.285 33.7139 134.371 34.8416C135.457 35.9695 136 37.367 136 39.0341C136 40.7014 135.457 42.0875 134.371 43.1925C133.285 44.2975 131.939 44.85 130.333 44.85H37.7778ZM37.7778 78C36.1722 78 34.8264 77.4361 33.7403 76.3084C32.6542 75.1805 32.1111 73.783 32.1111 72.1159C32.1111 70.4486 32.6542 69.0625 33.7403 67.9575C34.8264 66.8525 36.1722 66.3 37.7778 66.3H130.333C131.939 66.3 133.285 66.8639 134.371 67.9916C135.457 69.1195 136 70.517 136 72.1841C136 73.8514 135.457 75.2375 134.371 76.3425C133.285 77.4475 131.939 78 130.333 78H37.7778ZM5.63361 11.7C4.01861 11.7 2.67593 11.1361 1.60556 10.0084C0.535185 8.8805 0 7.483 0 5.81588C0 4.14863 0.546204 2.7625 1.63861 1.6575C2.73114 0.5525 4.08485 0 5.69972 0C7.31472 0 8.65741 0.563873 9.72778 1.69162C10.7981 2.8195 11.3333 4.217 11.3333 5.88412C11.3333 7.55137 10.7871 8.9375 9.69472 10.0425C8.60219 11.1475 7.24848 11.7 5.63361 11.7ZM5.63361 44.85C4.01861 44.85 2.67593 44.2861 1.60556 43.1584C0.535185 42.0305 0 40.633 0 38.9659C0 37.2986 0.546204 35.9125 1.63861 34.8075C2.73114 33.7025 4.08485 33.15 5.69972 33.15C7.31472 33.15 8.65741 33.7139 9.72778 34.8416C10.7981 35.9695 11.3333 37.367 11.3333 39.0341C11.3333 40.7014 10.7871 42.0875 9.69472 43.1925C8.60219 44.2975 7.24848 44.85 5.63361 44.85ZM5.63361 78C4.01861 78 2.67593 77.4361 1.60556 76.3084C0.535185 75.1805 0 73.783 0 72.1159C0 70.4486 0.546204 69.0625 1.63861 67.9575C2.73114 66.8525 4.08485 66.3 5.69972 66.3C7.31472 66.3 8.65741 66.8639 9.72778 67.9916C10.7981 69.1195 11.3333 70.517 11.3333 72.1841C11.3333 73.8514 10.7871 75.2375 9.69472 76.3425C8.60219 77.4475 7.24848 78 5.63361 78Z" fill="#A8A8AA"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

@ -0,0 +1,3 @@
<svg width="193" height="30" viewBox="0 0 193 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.0421004 14.3975C0.0536819 10.4148 1.48172 7.02368 4.32619 4.2241C7.17046 1.42452 10.584 0.0305238 14.567 0.0421058C18.5497 0.0536873 21.9408 1.48171 24.7404 4.32619C27.5399 7.17046 28.9339 10.584 28.9224 14.5669C28.9108 18.5496 27.4827 21.9408 24.6383 24.7404C21.794 27.54 18.3804 28.934 14.3975 28.9224C10.4148 28.9108 7.02368 27.4828 4.2241 24.6383C1.42452 21.794 0.0305184 18.3804 0.0421004 14.3975ZM81.8702 14.6355C81.8818 10.6528 83.3098 7.26163 86.1543 4.46205C88.9986 1.66247 92.4122 0.268475 96.3951 0.280057C100.378 0.291639 103.769 1.71966 106.568 4.56414C109.368 7.40841 110.762 10.822 110.75 14.8049C110.739 18.7876 109.311 22.1787 106.466 24.9783C103.622 27.7779 100.209 29.1719 96.2256 29.1603C92.2429 29.1487 88.8518 27.7207 86.0522 24.8762C83.2526 22.032 81.8586 18.6184 81.8702 14.6355ZM163.698 14.8734C163.71 10.8907 165.138 7.49959 167.982 4.70001C170.827 1.90043 174.24 0.506426 178.223 0.518008C182.206 0.52959 185.597 1.95762 188.397 4.80209C191.196 7.64636 192.59 11.0599 192.579 15.0428C192.567 19.0256 191.139 22.4167 188.295 25.2163C185.45 28.0159 182.037 29.4099 178.054 29.3983C174.071 29.3867 170.68 27.9587 167.88 25.1142C165.081 22.2699 163.687 18.8563 163.698 14.8734Z" fill="#A8A8AA"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -84,67 +84,68 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
<PackageReference Include="xunit" Version="2.4.2" />
</ItemGroup>
<ItemGroup>
<Compile Update="Pages\MyListPage.xaml.cs">
<Compile Update="Views\MyListPage.xaml.cs">
<DependentUpon>MyListPage.xaml</DependentUpon>
</Compile>
<Compile Update="Views\IngredientEntry.xaml.cs">
<Compile Update="Views\Components\IngredientEntry.xaml.cs">
<DependentUpon>IngredientEntry.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<MauiXaml Update="Pages\CreateRecipePage.xaml">
<MauiXaml Update="Views\CreateRecipePage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Pages\Splash.xaml">
<MauiXaml Update="Views\Splash.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\CounterView.xaml">
<MauiXaml Update="Views\Components\CounterView.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\HeadedButton.xaml">
<MauiXaml Update="Views\Components\HeadedButton.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\IngredientEntry.xaml">
<MauiXaml Update="Views\Components\IngredientEntry.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\IngredientView.xaml">
<MauiXaml Update="Views\Components\IngredientView.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Pages\FavoritesPage.xaml">
<MauiXaml Update="Views\FavoritesPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Pages\MorePage.xaml">
<MauiXaml Update="Views\MorePage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Pages\ProfilePage.xaml">
<MauiXaml Update="Views\ProfilePage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Pages\RecipePage.xaml">
<MauiXaml Update="Views\RecipePage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\RecipeView.xaml">
<MauiXaml Update="Views\Components\RecipeView.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Pages\RegisterPage.xaml">
<MauiXaml Update="Views\RegisterPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Pages\SearchPage.xaml">
<MauiXaml Update="Views\SearchPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\RecipeView.xaml">
<MauiXaml Update="Views\Components\RecipeView.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\SearchPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\StepEntry.xaml">
<MauiXaml Update="Views\Components\StepEntry.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="Views\StoredRecipeView.xaml">
<MauiXaml Update="Views\Components\StoredRecipeView.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
</ItemGroup>

@ -1,27 +1,27 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31611.283
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ShoopNCook", "ShoopNCook.csproj", "{8ED2FB1D-C04D-478D-9271-CC91FE110396}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Release|Any CPU.Build.0 = Release|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Release|Any CPU.Deploy.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {61F7FB11-1E47-470C-91E2-47F8143E1572}
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31611.283
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ShoopNCook", "ShoopNCook.csproj", "{8ED2FB1D-C04D-478D-9271-CC91FE110396}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Release|Any CPU.Build.0 = Release|Any CPU
{8ED2FB1D-C04D-478D-9271-CC91FE110396}.Release|Any CPU.Deploy.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {61F7FB11-1E47-470C-91E2-47F8143E1572}
EndGlobalSection
EndGlobal

@ -6,20 +6,17 @@
<HorizontalStackLayout>
<Border
x:Name="PrefixBorder"
BackgroundColor="{Binding HeadColor, Source={x:Reference HeadedBtn}}"
Stroke="Transparent"
StrokeShape="RoundRectangle 250"
Padding="10">
<ImageButton
x:Name="PrefixImage"
WidthRequest="25"
HeightRequest="25"
Source="{Binding HeadSource, Source={x:Reference HeadedBtn}}"/>
HeightRequest="25"/>
</Border>
<Label
x:Name="BtnLabel"
Margin="20, 0, 0, 0"
Text="{Binding Text, Source={x:Reference HeadedBtn}}"
VerticalTextAlignment="Center"
FontFamily="Poppins"
FontSize="16"

@ -0,0 +1,26 @@
namespace ShoopNCook.Views;
using Microsoft.Maui.Graphics;
public partial class HeadedButton : ContentView
{
public string Text
{
set => BtnLabel.Text = value;
}
public string HeadColor
{
set => PrefixBorder.BackgroundColor = Color.FromArgb(value);
}
public string HeadSource
{
set => PrefixImage.Source = ImageSource.FromFile(value);
}
public HeadedButton()
{
InitializeComponent();
}
}

@ -14,6 +14,9 @@
MinimumHeightRequest="175"
MinimumWidthRequest="150"
RowDefinitions="*, Auto">
<Grid.GestureRecognizers>
<TapGestureRecognizer Tapped="OnRecipeTapped"/>
</Grid.GestureRecognizers>
<Border
Grid.Row="0"
Stroke="Transparent"

@ -1,3 +1,5 @@
using ShoopNCook.Pages;
namespace ShoopNCook.Views;
public partial class RecipeView : ContentView
@ -43,4 +45,8 @@ public partial class RecipeView : ContentView
else img.Opacity = 1;
}
}
private async void OnRecipeTapped(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new RecipePage());
}
}

@ -1,29 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ShoopNCook.Views.StepEntry">
<VerticalStackLayout>
<HorizontalStackLayout>
<Label
Style="{StaticResource h3}"
Text="Step"
Margin="0, 0, 2, 0"/>
<Label
Style="{StaticResource h3}"
x:Name="OrdinalLabel"/>
</HorizontalStackLayout>
<Border
StrokeShape="RoundRectangle 5"
Stroke="Gray"
BackgroundColor="{StaticResource BackgroundSecondary}">
<Editor
MaxLength="10000"
Style="{StaticResource UserInput}"
AutoSize="TextChanges"
FontSize="15"/>
</Border>
</VerticalStackLayout>
</ContentView>
<?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ShoopNCook.Views.StepEntry">
<VerticalStackLayout>
<HorizontalStackLayout>
<Label
Style="{StaticResource h3}"
Text="Step"
Margin="0, 0, 2, 0"/>
<Label
Style="{StaticResource h3}"
x:Name="OrdinalLabel"/>
</HorizontalStackLayout>
<Border
StrokeShape="RoundRectangle 5"
Stroke="Gray"
BackgroundColor="{StaticResource BackgroundSecondary}">
<Editor
MaxLength="10000"
Style="{StaticResource UserInput}"
AutoSize="TextChanges"
FontSize="15"/>
</Border>
</VerticalStackLayout>
</ContentView>

@ -1,19 +1,19 @@
namespace ShoopNCook.Views;
public partial class StepEntry : ContentView
{
public StepEntry(): this(1)
{}
public StepEntry(uint ordinal)
{
InitializeComponent();
Ordinal = ordinal;
}
public uint Ordinal {
get => uint.Parse(OrdinalLabel.Text);
set => OrdinalLabel.Text = value.ToString();
}
namespace ShoopNCook.Views;
public partial class StepEntry : ContentView
{
public StepEntry(): this(1)
{}
public StepEntry(uint ordinal)
{
InitializeComponent();
Ordinal = ordinal;
}
public uint Ordinal {
get => uint.Parse(OrdinalLabel.Text);
set => OrdinalLabel.Text = value.ToString();
}
}

@ -17,7 +17,8 @@
HeightRequest="50"
WidthRequest="50"
Source="arrow_back.svg"
HorizontalOptions="Start"/>
HorizontalOptions="Start"
Clicked="OnBackButtonClicked"/>
<Label
Text="Create new recipe"

@ -10,12 +10,16 @@ public partial class CreateRecipePage : ContentPage
}
private void OnAddIngredientTapped(object sender, TappedEventArgs e)
{
{
IngredientList.Children.Add(new IngredientEntry());
}
}
private void OnAddStepTapped(object sender, TappedEventArgs e)
{
{
StepList.Children.Add(new StepEntry((uint) StepList.Children.Count() + 1));
}
private async void OnBackButtonClicked(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}

@ -15,12 +15,6 @@
ColumnDefinitions="*"
MaximumHeightRequest="60">
<ImageButton
Grid.Column="0"
HeightRequest="50"
WidthRequest="50"
Source="arrow_back.svg"
HorizontalOptions="Start"/>
<Label
Grid.Column="0"

@ -6,4 +6,5 @@ public partial class FavoritesPage : ContentPage
{
InitializeComponent();
}
}

@ -1,170 +1,171 @@
<?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"
x:Class="ShoopNCook.Pages.ForgotPassword"
Title="ForgotPassword"
BackgroundColor="{StaticResource BackgroundPrimary}">
<ScrollView>
<Grid
Padding="20"
RowDefinitions="Auto, Auto, Auto, *">
<!-- Profile label and return button -->
<Grid
Grid.Row="0"
RowDefinitions="Auto, *"
ColumnDefinitions="*, 1.5*"
Margin="0, 0, 0, 40">
<HorizontalStackLayout>
<ImageButton
Grid.Column="0"
HeightRequest="50"
WidthRequest="50"
Source="arrow_back.svg"/>
</HorizontalStackLayout>
<Label
Margin="-40,10,0,0"
Grid.Column="1"
FontSize="24"
TextColor="{StaticResource TextColorPrimary}"
Text="Forgot Password"
FontFamily="PoppinsBold"
VerticalOptions="Start"/>
</Grid>
<!-- Email entry -->
<Grid
Grid.Row="1"
RowDefinitions="*, Auto, Auto"
>
<Label
Grid.Row="0"
FontSize="15"
TextColor="{StaticResource TextColorSecondary}"
Text="Enter your email here : "
FontFamily="PoppinsBold"
VerticalOptions="Center"/>
<Border
Grid.Row="1"
Style="{StaticResource SecondaryBorder}"
Margin="0,30,0,20">
<Grid
Padding="5"
BackgroundColor="{StaticResource BackgroundSecondary}"
ColumnDefinitions="Auto,Auto,*">
<Image
Grid.Column="1"
Source="email_icon.svg">
</Image>
<Entry
Style="{StaticResource UserInput}"
Grid.Column="2"
Placeholder="User Name"/>
</Grid>
</Border>
<VerticalStackLayout
Grid.Row="2"
VerticalOptions="End">
<Border
Margin="0, 30, 0, 0"
Stroke="{StaticResource BackgroundPrimary}"
StrokeShape="RoundRectangle 12">
<Button
BackgroundColor="{StaticResource ActionButton}"
FontFamily="PoppinsMedium"
TextColor="White"
Text="Recup my Password"/>
</Border>
</VerticalStackLayout>
</Grid>
<Grid>
</Grid>
<!-- Sendmail grid -->
<Grid
Grid.Row="2"
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto"
RowSpacing="10">
<Label
Grid.Row="0"
Margin="20"
Text="A recuperation code as been send to your email address ! "
FontFamily="PoppinsBold"
TextColor="LightGreen"/>
<Label
Grid.Row="1"
Text="Enter the code here"
FontFamily="PoppinsBold"
TextColor="{StaticResource TextColorSecondary}"/>
<Border
Grid.Row="2"
Style="{StaticResource SecondaryBorder}"
>
<Grid
Padding="5"
BackgroundColor="{StaticResource BackgroundSecondary}"
ColumnDefinitions="Auto,Auto,*">
<Image
Grid.Column="1"
Source="code.png">
</Image>
<Entry
Style="{StaticResource UserInput}"
Grid.Column="2"
Placeholder="Code"/>
</Grid>
</Border>
<Label
Grid.Row="3"
Text="Enter new Password here"
FontFamily="PoppinsBold"
TextColor="{StaticResource TextColorSecondary}"/>
<Border
Grid.Row="4"
Style="{StaticResource SecondaryBorderShadow}">
<Entry
Style="{StaticResource UserInput}"
Placeholder="New password"/>
</Border>
<Label
Grid.Row="5"
Text="Confirm your new Password here"
FontFamily="PoppinsBold"
TextColor="{StaticResource TextColorSecondary}"/>
<Border
Grid.Row="6"
Style="{StaticResource SecondaryBorderShadow}">
<Entry
Style="{StaticResource UserInput}"
Placeholder="New password"/>
</Border>
</Grid>
<!-- Save button -->
<VerticalStackLayout
Grid.Row="3"
VerticalOptions="End">
<Border
Margin="0, 30, 0, 0"
Stroke="{StaticResource BackgroundPrimary}"
StrokeShape="RoundRectangle 12">
<Button
BackgroundColor="{StaticResource ActionButton}"
FontFamily="PoppinsMedium"
TextColor="White"
Text="Save Change"/>
</Border>
</VerticalStackLayout>
</Grid>
</ScrollView>
<?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"
x:Class="ShoopNCook.Pages.ForgotPassword"
Title="ForgotPassword"
BackgroundColor="{StaticResource BackgroundPrimary}">
<ScrollView>
<Grid
Padding="20"
RowDefinitions="Auto, Auto, Auto, *">
<!-- Profile label and return button -->
<Grid
Grid.Row="0"
RowDefinitions="Auto, *"
ColumnDefinitions="*, 1.5*"
Margin="0, 0, 0, 40">
<HorizontalStackLayout>
<ImageButton
Grid.Column="0"
HeightRequest="50"
WidthRequest="50"
Source="arrow_back.svg"
Clicked="OnBackButtonClicked"/>
</HorizontalStackLayout>
<Label
Margin="-40,10,0,0"
Grid.Column="1"
FontSize="24"
TextColor="{StaticResource TextColorPrimary}"
Text="Forgot Password"
FontFamily="PoppinsBold"
VerticalOptions="Start"/>
</Grid>
<!-- Email entry -->
<Grid
Grid.Row="1"
RowDefinitions="*, Auto, Auto"
>
<Label
Grid.Row="0"
FontSize="15"
TextColor="{StaticResource TextColorSecondary}"
Text="Enter your email here : "
FontFamily="PoppinsBold"
VerticalOptions="Center"/>
<Border
Grid.Row="1"
Style="{StaticResource SecondaryBorder}"
Margin="0,30,0,20">
<Grid
Padding="5"
BackgroundColor="{StaticResource BackgroundSecondary}"
ColumnDefinitions="Auto,Auto,*">
<Image
Grid.Column="1"
Source="email_icon.svg">
</Image>
<Entry
Style="{StaticResource UserInput}"
Grid.Column="2"
Placeholder="User Name"/>
</Grid>
</Border>
<VerticalStackLayout
Grid.Row="2"
VerticalOptions="End">
<Border
Margin="0, 30, 0, 0"
Stroke="{StaticResource BackgroundPrimary}"
StrokeShape="RoundRectangle 12">
<Button
BackgroundColor="{StaticResource ActionButton}"
FontFamily="PoppinsMedium"
TextColor="White"
Text="Recup my Password"/>
</Border>
</VerticalStackLayout>
</Grid>
<Grid>
</Grid>
<!-- Sendmail grid -->
<Grid
Grid.Row="2"
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto"
RowSpacing="10">
<Label
Grid.Row="0"
Margin="20"
Text="A recuperation code as been send to your email address ! "
FontFamily="PoppinsBold"
TextColor="LightGreen"/>
<Label
Grid.Row="1"
Text="Enter the code here"
FontFamily="PoppinsBold"
TextColor="{StaticResource TextColorSecondary}"/>
<Border
Grid.Row="2"
Style="{StaticResource SecondaryBorder}"
>
<Grid
Padding="5"
BackgroundColor="{StaticResource BackgroundSecondary}"
ColumnDefinitions="Auto,Auto,*">
<Image
Grid.Column="1"
Source="code.png">
</Image>
<Entry
Style="{StaticResource UserInput}"
Grid.Column="2"
Placeholder="Code"/>
</Grid>
</Border>
<Label
Grid.Row="3"
Text="Enter new Password here"
FontFamily="PoppinsBold"
TextColor="{StaticResource TextColorSecondary}"/>
<Border
Grid.Row="4"
Style="{StaticResource SecondaryBorderShadow}">
<Entry
Style="{StaticResource UserInput}"
Placeholder="New password"/>
</Border>
<Label
Grid.Row="5"
Text="Confirm your new Password here"
FontFamily="PoppinsBold"
TextColor="{StaticResource TextColorSecondary}"/>
<Border
Grid.Row="6"
Style="{StaticResource SecondaryBorderShadow}">
<Entry
Style="{StaticResource UserInput}"
Placeholder="New password"/>
</Border>
</Grid>
<!-- Save button -->
<VerticalStackLayout
Grid.Row="3"
VerticalOptions="End">
<Border
Margin="0, 30, 0, 0"
Stroke="{StaticResource BackgroundPrimary}"
StrokeShape="RoundRectangle 12">
<Button
BackgroundColor="{StaticResource ActionButton}"
FontFamily="PoppinsMedium"
TextColor="White"
Text="Save Change"/>
</Border>
</VerticalStackLayout>
</Grid>
</ScrollView>
</ContentPage>

@ -1,9 +1,13 @@
namespace ShoopNCook.Pages;
public partial class ForgotPassword : ContentPage
{
public ForgotPassword()
{
InitializeComponent();
}
namespace ShoopNCook.Pages;
public partial class ForgotPassword : ContentPage
{
public ForgotPassword()
{
InitializeComponent();
}
private async void OnBackButtonClicked(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}

@ -1,37 +0,0 @@
namespace ShoopNCook.Views;
public partial class HeadedButton : ContentView
{
private readonly BindableProperty TextProperty =
BindableProperty.Create(nameof(BtnLabel), typeof(string), typeof(HeadedButton), "No Text Defined.");
private readonly BindableProperty HeadColorProperty =
BindableProperty.Create(nameof(PrefixBorder), typeof(string), typeof(HeadedButton), "#FFFFFF");
private readonly BindableProperty HeadSourceProperty =
BindableProperty.Create(nameof(PrefixImage), typeof(string), typeof(HeadedButton), default(string));
public string Text
{
get => (string)GetValue(TextProperty);
set => SetValue(TextProperty, value);
}
public string HeadColor
{
get => (string)GetValue(HeadColorProperty);
set => SetValue(HeadColorProperty, value);
}
public string HeadSource
{
get => (string)GetValue(HeadSourceProperty);
set => SetValue(HeadSourceProperty, value);
}
public HeadedButton()
{
InitializeComponent();
}
}

@ -5,7 +5,7 @@
xmlns:views="clr-namespace:ShoopNCook.Views"
Title="HomePage"
BackgroundColor="{StaticResource BackgroundPrimary}">
<ScrollView>
<Grid RowDefinitions="Auto,Auto,Auto,*">
<FlexLayout
@ -49,7 +49,8 @@
WidthRequest="65"
HeightRequest="65"
CornerRadius="15"
Margin="0,5,5,0">
Margin="0,5,5,0"
Clicked="OnSyncButtonClicked">
</ImageButton>
</Grid>

@ -0,0 +1,13 @@
namespace ShoopNCook.Pages;
public partial class HomePage : ContentPage
{
public HomePage()
{
InitializeComponent();
}
private async void OnSyncButtonClicked(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new SearchPage());
}
}

@ -70,7 +70,11 @@
TextColor="{StaticResource TextColorSecondary}"
HorizontalOptions="End"
Text="Forgot Password ?"
BackgroundColor="Transparent"/>
BackgroundColor="Transparent">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="ForgotPasswordTapped" />
</Label.GestureRecognizers>
</Label>
<Border
Margin="0, 30, 0, 0"
@ -80,7 +84,8 @@
BackgroundColor="{StaticResource Selected}"
FontFamily="PoppinsMedium"
TextColor="{StaticResource ButtonText}"
Text="LOG IN"/>
Text="LOG IN"
Clicked="OnLoginButtonClicked"/>
</Border>
<HorizontalStackLayout
@ -136,8 +141,12 @@
New User?</Label>
<Label
FontAttributes="Bold"
TextColor="{StaticResource TextColorPrimary}">
Create Account</Label>
TextColor="{StaticResource TextColorPrimary}"
Text="Create Account">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="RegisterLabbelTapped" />
</Label.GestureRecognizers>
</Label>
</HorizontalStackLayout>
</VerticalStackLayout>

@ -0,0 +1,27 @@
namespace ShoopNCook.Pages;
public partial class LoginPage : ContentPage
{
public LoginPage()
{
InitializeComponent();
}
private async void OnLoginButtonClicked(object sender, EventArgs e)
{
// Vérifiez les informations d'identification de l'utilisateur ici
bool isValidUser = true;
if (isValidUser)
{
await Shell.Current.GoToAsync("//HomePage");
}
}
private async void ForgotPasswordTapped(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new ForgotPassword());
}
private async void RegisterLabbelTapped(object sender, EventArgs e)
{
await Shell.Current.GoToAsync("//RegisterPage");
}
}

@ -0,0 +1,62 @@
<?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"
x:Class="ShoopNCook.Pages.MorePage"
BackgroundColor="{StaticResource BackgroundPrimary}"
xmlns:views="clr-namespace:ShoopNCook.Views"
Title="MorePage">
<Grid
RowDefinitions="Auto, *"
Padding="20, 50, 20, 20">
<!-- Profile picture and name -->
<Grid
Grid.Row="0"
ColumnDefinitions="*, 2*"
ColumnSpacing="30">
<Image
x:Name="ProfileImage"/>
<Label
x:Name="ProfileName"
Grid.Column="1"
FontSize="24"
VerticalTextAlignment="Center"
TextColor="{StaticResource TextColorPrimary}"
FontFamily="Poppins"/>
</Grid>
<VerticalStackLayout
Grid.Row="1"
VerticalOptions="Center"
Margin="40, 0, 0, 0">
<Grid>
<Grid.GestureRecognizers>
<TapGestureRecognizer Tapped="OnMyRecipesButtonTapped"/>
</Grid.GestureRecognizers>
<views:HeadedButton Text="My Recipes" HeadSource="cookie.svg" HeadColor="#FF5441"/>
</Grid>
<Grid>
<Grid.GestureRecognizers>
<TapGestureRecognizer Tapped="OnEditProfileButtonTapped"/>
</Grid.GestureRecognizers>
<views:HeadedButton Text="Edit Profile" HeadSource="user_fill.svg" HeadColor="#FF5441"/>
</Grid>
<views:HeadedButton Text="Dark Mode" HeadSource="moon_white.svg" HeadColor="#FFFFFF"/>
<Grid>
<Grid.GestureRecognizers>
<TapGestureRecognizer Tapped="OnShareButtonClicked"/>
</Grid.GestureRecognizers>
<views:HeadedButton Text="Share App" HeadSource="share.svg" HeadColor="#fe33bf"/>
</Grid>
<Grid>
<Grid.GestureRecognizers>
<TapGestureRecognizer Tapped="OnLogoutButtonTapped"/>
</Grid.GestureRecognizers>
<views:HeadedButton Text="Logout" HeadSource="logout_arrow.svg" HeadColor="#FF5441"/>
</Grid>
</VerticalStackLayout>
</Grid>
</ContentPage>

@ -0,0 +1,37 @@
namespace ShoopNCook.Pages;
public partial class MorePage : ContentPage
{
public MorePage(): this("Adom Shafi", ImageSource.FromFile("default_profile_picture.png"))
{
}
public MorePage(string userName, ImageSource userImage)
{
InitializeComponent();
ProfileImage.Source = userImage;
ProfileName.Text = userName;
}
private async void OnMyRecipesButtonTapped(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new MyRecipesPage());
}
private async void OnEditProfileButtonTapped(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new ProfilePage());
}
private async void OnLogoutButtonTapped(object sender, EventArgs e)
{
await Shell.Current.GoToAsync("//LoginPage");
}
private async void OnShareButtonClicked(object sender, EventArgs e)
{
await Share.RequestAsync(new ShareTextRequest
{
Text = "Voici le texte à partager (à changer)",
Title = "Partagez ce texte : (à modifier)"
});
}
}

@ -17,7 +17,8 @@
HeightRequest="50"
WidthRequest="50"
Source="arrow_back.svg"
HorizontalOptions="Start"/>
HorizontalOptions="Start"
Clicked="OnBackButtonClicked"/>
<Label
Grid.Column="0"
@ -59,7 +60,8 @@
<Button
Style="{StaticResource UserButton}"
BackgroundColor="{StaticResource Selected}"
Text="Add a new recipe"/>
Text="Add a new recipe"
Clicked="AddRecipeButtonClicked"/>
</Border>
</Grid>
</ContentPage>

@ -0,0 +1,19 @@
namespace ShoopNCook.Pages;
public partial class MyRecipesPage : ContentPage
{
public MyRecipesPage()
{
InitializeComponent();
}
private async void OnBackButtonClicked(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
private async void AddRecipeButtonClicked(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new CreateRecipePage());
}
}

@ -22,7 +22,8 @@
HeightRequest="50"
WidthRequest="50"
Source="arrow_back.svg"
HorizontalOptions="Start"/>
HorizontalOptions="Start"
Clicked="OnBackButtonClicked"/>
<Label
Grid.Column="0"

@ -6,4 +6,8 @@ public partial class ProfilePage : ContentPage
{
InitializeComponent();
}
private async void OnBackButtonClicked(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}

@ -8,9 +8,10 @@
BackgroundColor="{StaticResource BackgroundPrimary}">
<Grid
RowDefinitions="90*, 10*"
Padding="10">
<!--Main content-->
<ScrollView>
<Grid
@ -24,8 +25,11 @@
AlignItems="Center">
<ImageButton
Source="arrow_back.svg"/>
Source="arrow_back.svg"
Clicked="OnBackButtonClicked"/>
<Label
Style="{StaticResource h1}"
x:Name="RecipeName"

@ -95,5 +95,9 @@ public partial class RecipePage : ContentPage
Favorite.Source = ImageSource.FromFile("hearth_off.svg");
}
}
private async void OnBackButtonClicked(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}

@ -84,11 +84,6 @@
</Grid>
</Border>
<Label
TextColor="{StaticResource TextColorSecondary}"
HorizontalOptions="End">
Forgot Password ?
</Label>
<Border
@ -99,7 +94,8 @@
BackgroundColor="{StaticResource ActionButton}"
FontFamily="PoppinsMedium"
TextColor="White"
Text="SIGN UP"/>
Text="SIGN UP"
Clicked="RegisterTapped"/>
</Border>
<HorizontalStackLayout
@ -155,8 +151,12 @@
Already have an account ?</Label>
<Label
FontAttributes="Bold"
TextColor="{StaticResource TextColorPrimary}">
Log In</Label>
TextColor="{StaticResource TextColorPrimary}"
Text="Log In">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="LoginTapped" />
</Label.GestureRecognizers>
</Label>
</HorizontalStackLayout>
</VerticalStackLayout>

@ -0,0 +1,17 @@
namespace ShoopNCook.Pages;
public partial class RegisterPage : ContentPage
{
public RegisterPage()
{
InitializeComponent();
}
private async void LoginTapped(object sender, EventArgs e)
{
await Shell.Current.GoToAsync("//LoginPage");
}
private async void RegisterTapped(object sender, EventArgs e)
{
await Shell.Current.GoToAsync("//LoginPage");
}
}

@ -22,7 +22,8 @@
HeightRequest="50"
WidthRequest="50"
Source="arrow_back.svg"
HorizontalOptions="Start"/>
HorizontalOptions="Start"
Clicked="OnBackButtonClicked"/>
<Label
Grid.Column="0"

@ -6,4 +6,8 @@ public partial class SearchPage : ContentPage
{
InitializeComponent();
}
private async void OnBackButtonClicked(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}

@ -32,6 +32,7 @@
FontFamily="PoppinsMedium"
TextColor="{StaticResource ButtonText}"
Text="Let's Get Started ➝"
Margin="25"/>
Margin="25"
Clicked="OnGetStartedButtonClicked"/>
</Grid>
</ContentPage>

@ -0,0 +1,16 @@
namespace ShoopNCook.Pages;
public partial class Splash : ContentPage
{
public Splash()
{
InitializeComponent();
NavigationPage.SetHasNavigationBar(this, false);
}
private async void OnGetStartedButtonClicked(object sender, EventArgs e)
{
await Shell.Current.GoToAsync("//LoginPage");
}
}
Loading…
Cancel
Save