Converting Tests back to C# but still with Playwright
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
@inject HttpClient httpClient
|
||||
|
||||
@if (content == null)
|
||||
{
|
||||
<LoadingComponent/>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="note">
|
||||
<div class="noteHeader">
|
||||
<h1 class="noteTitle">@noteFrontMatter.Title</h1>
|
||||
<div class="noteDates">
|
||||
<div class="noteDateUpdated"><b>Updated</b>: @noteFrontMatter.UpdatedDate.ToString("MM/dd/yyyy")</div>
|
||||
<div class="noteDateCreated"><b>Created</b>: @noteFrontMatter.CreatedDate.ToString("MM/dd/yyyy")</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="noteContent">@((MarkupString)Markdown.ToHtml(content, Pipeline))</div>
|
||||
<div class="noteFooter">
|
||||
<LinkButtonComponent Href="@GitUrl">
|
||||
Edit on GitHub <i class="fa-brands fa-github" style="font-size: 24px; margin-left: 5px;"></i>
|
||||
</LinkButtonComponent>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<style>
|
||||
.noteTitle {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.noteHeader {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.noteDates {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
|
||||
.noteFooter {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter] public NoteContentModel NoteContentModel { get; set; } = default!;
|
||||
|
||||
NoteFrontMatterModel noteFrontMatter = null!;
|
||||
private string? content;
|
||||
|
||||
private string Filepath => $"content/notes/{NoteContentModel.Content}.md";
|
||||
private string GitUrl => $"{Project.GitResourcesUrl}/{Filepath}";
|
||||
private MarkdownPipeline Pipeline => MarkdownFiles.Pipeline;
|
||||
|
||||
private async Task<NoteFrontMatterModel> LoadContent()
|
||||
{
|
||||
content = await MarkdownFiles.LoadMarkdown(httpClient, Filepath);
|
||||
|
||||
return noteFrontMatter =
|
||||
await MarkdownFiles.LoadFrontMatter<NoteFrontMatterModel>(httpClient, Filepath);
|
||||
}
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
await LoadContent();
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await LoadContent();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
@if (Note!.NoteContentModels.Count > 0)
|
||||
{
|
||||
<div class="noteInnerNavContainer">
|
||||
@foreach (var innerNote in Note.NoteContentModels)
|
||||
{
|
||||
var linkStyle = $"noteInnerNavButton inner_{Layers}";
|
||||
<NavLink class="@linkStyle" href="@innerNote.GetNoteLink()">@innerNote.Name</NavLink>
|
||||
<NoteInnerNavComponent Note="@innerNote" Layers="@IncrementLayers()"/>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
<style>
|
||||
|
||||
.noteInnerNavContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.noteInnerNavButton a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.noteInnerNavButton a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.noteInnerNavButton {
|
||||
padding: 8px;
|
||||
margin-left: 8px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.noteInnerNavButton:hover {
|
||||
|
||||
}
|
||||
|
||||
|
||||
.inner_1 {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.inner_2 {
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.inner_3 {
|
||||
margin-left: 24px;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter] public NoteContentModel? Note { get; set; }
|
||||
|
||||
[Parameter] public int Layers { get; set; } = 1;
|
||||
|
||||
public int IncrementLayers()
|
||||
{
|
||||
return Layers + 1;
|
||||
}
|
||||
|
||||
|
||||
private string GetLink(NoteContentModel note)
|
||||
{
|
||||
return $"notes/{note.Href}";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<div class="noteNavContainer">
|
||||
@foreach (var note in Notes)
|
||||
{
|
||||
if (note.Parent == null)
|
||||
{
|
||||
<NavLink class="noteNavButton" href="@note.GetNoteLink()">@note.Name</NavLink>
|
||||
<NoteInnerNavComponent Note="@note"/>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.noteNavContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.noteNavButton a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.noteNavButton a:hover {
|
||||
color: white;
|
||||
background-color: var(--primary-hover);
|
||||
|
||||
}
|
||||
|
||||
.noteNavButton {
|
||||
padding: 8px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter] public List<NoteContentModel> Notes { get; set; } = default!;
|
||||
|
||||
[Parameter] public List<NoteConnectionModel> Connections { get; set; } = default!;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user