@page "/{boardName}/thread/{threadId}"
@using System.ComponentModel.DataAnnotations
@using ImageBoardServerApp.Data.Repository
@inject NavigationManager NavigationManager

<h3>Thread #@threadId on /@boardName/</h3>
<Post post="@post" showOpenThread="false"/>
<hr/>

@foreach (var comment in post.Comments)
{
    <Comment comment="comment"/>
    <hr/>
}
<CommentForm post="post"/>

@code {
    [Parameter]
    [Required]
    public string boardName { get; set; }
    
    [Parameter]
    [Required]
    public string threadId { get; set; }
    
    private PostData post;

    protected override async Task OnInitializedAsync()
    {
        try
        {
            post = await PostsRepository.getPostByIdAsync(int.Parse(threadId));
        }
        catch (FormatException fe)
        {
            NavigationManager.NavigateTo("/notfound");
            return;
        }
        if(post.Board != boardName)
            NavigationManager.NavigateTo("/notfound");
        if(post == null)
            NavigationManager.NavigateTo("/notfound");
    }
}