<?xml version="1.0" encoding="utf-8"?>
<Page
    x:Class="HaloPixelToolBox.Backend.Views.AppShellPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:HaloPixelToolBox.Backend.Views"
    xmlns:add="using:XFEExtension.NetCore.WinUIHelper.Utilities.Additions"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" Loaded="Page_Loaded">

    <Grid>
        <TitleBar x:Name="appTitleBar" Title="HaloPixelToolBox" Subtitle="HaloPixelToolBox.SubTitle" Height="{Binding ElementName=navigationView, Path=CompactPaneLength}" VerticalAlignment="Top">
            <TitleBar.IconSource>
                <ImageIconSource ImageSource="/Assets/icon.png"/>
            </TitleBar.IconSource>
            <TitleBar.RightHeader>
                <StackPanel VerticalAlignment="Center" HorizontalAlignment="Right" Orientation="Horizontal" Spacing="20">
                    <Button Background="{ThemeResource SubtleFillColorSecondaryBrush}" BorderThickness="0" Padding="10,3" CornerRadius="8">
                        <StackPanel Orientation="Horizontal" Spacing="10">
                            <PersonPicture Width="36" Height="36" ProfilePicture="{x:Bind ViewModel.UserName, Mode=OneWay, Converter={StaticResource SurnameToAvatarConverter}}"/>
                            <TextBlock Text="{x:Bind ViewModel.UserName, Mode=OneWay}" VerticalAlignment="Center"/>
                        </StackPanel>
                    </Button>
                </StackPanel>
            </TitleBar.RightHeader>
        </TitleBar>
        <Grid x:Name="rightPanelGrid" Canvas.ZIndex="2" Margin="0,50,0,0">
            <Grid.TranslationTransition>
                <Vector3Transition/>
            </Grid.TranslationTransition>
            <StackPanel x:Name="messageStackPanel" Margin="0,5,0,0" VerticalAlignment="Top" HorizontalAlignment="Center"/>
        </Grid>
        <Grid x:Name="globalLoadingGrid" Canvas.ZIndex="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="{ThemeResource SmokeFillColorDefaultBrush}" Visibility="Collapsed">
            <Grid VerticalAlignment="Center" HorizontalAlignment="Center" CornerRadius="15" Padding="100">
                <Grid.Background>
                    <SolidColorBrush Color="Black" Opacity="0.5"/>
                </Grid.Background>
                <StackPanel Spacing="30">
                    <TextBlock x:Name="globalLoadingTextBlock" Text="加载中..." Foreground="White" FontSize="34" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                    <ProgressRing IsActive="True" Width="60" Height="60" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                </StackPanel>
            </Grid>
        </Grid>
        <NavigationView x:Name="navigationView" IsBackButtonVisible="Visible" Canvas.ZIndex="0" IsBackEnabled="{x:Bind ViewModel.CanGoBack, Mode=OneWay}" IsSettingsVisible="False" DisplayModeChanged="NavigationView_DisplayModeChanged" PaneOpening="NavigationView_PaneOpening" PaneOpened="NavigationView_PaneOpened" PaneClosing="NavigationView_PaneClosing" PaneClosed="NavigationView_PaneClosed">
            <NavigationView.MenuItems>
                <NavigationViewItem Content="主页" add:NavigationAddition.NavigateTo="HaloPixelToolBox.Backend.Views.MainPage" add:NavigationAddition.NavigateParameter="MyParameter">
                    <NavigationViewItem.Icon>
                        <FontIcon Glyph="&#xE7C3;"/>
                    </NavigationViewItem.Icon>
                </NavigationViewItem>
                <NavigationViewItem Content="解析地址" add:NavigationAddition.NavigateTo="HaloPixelToolBox.Backend.Views.AddressResolveManagePage">
                    <NavigationViewItem.Icon>
                        <FontIcon Glyph="&#xE8B7;"/>
                    </NavigationViewItem.Icon>
                </NavigationViewItem>
                <NavigationViewItem Content="IP 封禁" add:NavigationAddition.NavigateTo="HaloPixelToolBox.Backend.Views.IPBanManagePage">
                    <NavigationViewItem.Icon>
                        <FontIcon Glyph="&#xE72E;"/>
                    </NavigationViewItem.Icon>
                </NavigationViewItem>
                <NavigationViewItem Content="日志" add:NavigationAddition.NavigateTo="HaloPixelToolBox.Backend.Views.LogViewPage">
                    <NavigationViewItem.Icon>
                        <FontIcon Glyph="&#xE8FD;"/>
                    </NavigationViewItem.Icon>
                </NavigationViewItem>
                <!--在此处添加导航栏页面-->
            </NavigationView.MenuItems>

            <NavigationView.FooterMenuItems>
                <NavigationViewItem Content="设置" add:NavigationAddition.NavigateTo="HaloPixelToolBox.Backend.Views.SettingPage">
                    <NavigationViewItem.Icon>
                        <FontIcon Glyph="&#xE713;"/>
                    </NavigationViewItem.Icon>
                </NavigationViewItem>
            </NavigationView.FooterMenuItems>
            <Grid x:Name="loadingGrid">
                <Frame Padding="56,24,56,0" x:Name="navigationFrame"/>
            </Grid>
        </NavigationView>
    </Grid>
</Page>
