Files
YouTube-Manager/Manager.App/Components/Dialogs/AccountDialog.razor

102 lines
4.9 KiB
Plaintext

@inject ISnackbar SnackbarService
<ForcedLoadingOverlay Visible="_isLoading"/>
<MudDialog>
<TitleContent>
<MudText Typo="Typo.h6">Add new account</MudText>
</TitleContent>
<DialogContent>
<MudStack Spacing="2">
<MudStack Row Spacing="2" AlignItems="AlignItems.Start" Justify="Justify.SpaceEvenly" StretchItems="StretchItems.All">
<MudStack Spacing="2">
<MudTextField Label="UserAgent" Required @bind-Value="@Client.UserAgent"/>
</MudStack>
<MudSimpleTable Bordered Dense Elevation="0" Outlined Square Hover>
<tbody>
<tr>
<td>Account id:</td>
<td>@Client.Id</td>
</tr>
<tr>
<td>Account name:</td>
<td>@Client.External.Information.AccountName</td>
</tr>
<tr>
<td>Account handle:</td>
<td>@Client.External.Information.AccountHandle</td>
</tr>
<tr>
<td>User agent:</td>
<td>@Client.UserAgent</td>
</tr>
<tr>
<td>Logged in:</td>
<td style="@($"color: {(Client.External.State?.LoggedIn ?? false ? "green" : "red")}")">@Client.External.State?.LoggedIn</td>
</tr>
<tr>
<td>InnerTube API key:</td>
<td>@Client.External.State?.InnertubeApiKey</td>
</tr>
<tr>
<td>InnerTube client version:</td>
<td>@Client.External.State?.InnerTubeClientVersion</td>
</tr>
<tr>
<td>Language:</td>
<td>@Client.External.State?.InnerTubeContext?.InnerTubeClient?.HLanguage</td>
</tr>
</tbody>
</MudSimpleTable>
@*@if (!string.IsNullOrWhiteSpace(Client.AccountImage))
{
<MudImage Src="@Client.AccountImage" Elevation="0" ObjectFit="ObjectFit.Contain"/>
}*@
</MudStack>
<MudPaper Elevation="0" Outlined Class="pa-2">
<MudText>Import cookies</MudText>
<MudForm @bind-IsValid="@_cookieTextValid" Disabled="@(Client.CookieContainer.Count != 0)">
<MudTextField @bind-Value="@_cookieDomain" Immediate Required Label="Domain" RequiredError="Domain is required."/>
<MudTextField Class="my-2" Lines="4" AutoGrow @bind-Value="@_cookieText" Immediate Required Label="Cookies" Placeholder="EXAMPLE: Cookie1=Value1; Cookie2=Value2;"
Validation="@(new Func<string, string?>(ValidateCookieText))"/>
<MudButton Variant="Variant.Outlined" Disabled="@(!_cookieTextValid)" OnClick="ParseCookies">Load</MudButton>
</MudForm>
</MudPaper>
<MudDataGrid Items="Client.CookieContainer.GetAllCookies()" Dense Elevation="0" Outlined>
<Header>
<MudStack Class="ma-2">
<MudText>Cookies</MudText>
</MudStack>
</Header>
<Columns>
<TemplateColumn Title="Name">
<CellTemplate>
<MudTextField Variant="Variant.Text" @bind-Value="@context.Item.Name" Immediate/>
</CellTemplate>
</TemplateColumn>
<TemplateColumn Title="Domain">
<CellTemplate>
<MudTextField Variant="Variant.Text" @bind-Value="@context.Item.Domain" Immediate/>
</CellTemplate>
</TemplateColumn>
<TemplateColumn Title="Value">
<CellTemplate>
<MudTextField Variant="Variant.Text" @bind-Value="@context.Item.Value" Immediate/>
</CellTemplate>
</TemplateColumn>
<PropertyColumn Title="Expires" Property="x => x.Expires"/>
</Columns>
</MudDataGrid>
</MudStack>
</DialogContent>
<DialogActions>
<MudStack Spacing="2" Row>
<MudButton Color="Color.Error" OnClick="() => MudDialog?.Cancel()" Variant="Variant.Outlined">Cancel</MudButton>
<MudButton Color="Color.Info" Variant="Variant.Outlined" OnClick="ValidateAccount" Disabled="@(!CanValidate())">Validate</MudButton>
<MudButton Color="Color.Primary" Variant="Variant.Outlined" Disabled="@(!CanSave())" OnClick="OnSave">Save</MudButton>
</MudStack>
</DialogActions>
</MudDialog>