@inherits MSGComponentBase

<MudDialog>
    <DialogContent>
        <MudJustifiedText Typo="Typo.body1" Class="mb-3">
            @T("See how we load your file. Review the content before we process it further.")
        </MudJustifiedText>
        
        @if (this.Document is null)
        {
            <ReadFileContent Text="@T("Load file")" @bind-FileContent="@this.FileContent" EnableDragDrop="true" Layer="@DropLayers.DIALOGS" CatchAllDocuments="true"/>
        }
        else
        {
            <MudTextField
                T="string"
                Text="@this.Document.FilePath"
                AdornmentIcon="@Icons.Material.Filled.FileOpen"
                Adornment="Adornment.Start"
                Immediate="@true"
                Label="@T("File Path")"
                Variant="Variant.Outlined"
                Lines="1"
                MaxLines="3"
                Class="mt-10"
                ReadOnly="true"
                />
        }
        
        @if (!this.Document?.Exists ?? false)
        {
            <MudAlert Severity="Severity.Error" Variant="Variant.Filled" Class="my-2">
                @T("The specified file could not be found. The file have been moved, deleted, renamed, or is otherwise inaccessible.")
            </MudAlert>
        }
        else
        {
            <MudTabs Elevation="0" Rounded="true" ApplyEffectsToContainer="true" Outlined="true" PanelClass="pa-2" Class="mb-2">
                @if (this.Document?.IsImage ?? false)
                {
                    <MudTabPanel Text="@T("Image View")" Icon="@Icons.Material.Filled.Image">
                        <MudImage ObjectFit="ObjectFit.ScaleDown" Style="width: 100%;" Src="@this.Document.FilePathAsUrl"/>
                    </MudTabPanel>
                }
                else
                {
                    <MudTabPanel Text="@T("Markdown View")" Icon="@Icons.Material.Filled.TextSnippet">
                        <MudField
                            Variant="Variant.Outlined"
                            AdornmentIcon="@Icons.Material.Filled.Article"
                            Adornment="Adornment.Start"
                            Label="@T("Loaded Content")"
                            FullWidth="true"
                            Class="ma-2 pe-4"
                            HelperText="@T("This is the content we loaded from your file — including headings, lists, and formatting. Use this to verify your file loads as expected.")">
                            <div style="max-height: 40vh; overflow-y: auto;">
                                <MudMarkdown Value="@this.FileContent" Props="Markdown.DefaultConfig" Styling="@this.MarkdownStyling" MarkdownPipeline="Markdown.SAFE_MARKDOWN_PIPELINE"/>
                            </div>
                        </MudField>
                    </MudTabPanel>
                    <MudTabPanel Text="@T("Simple View")" Icon="@Icons.Material.Filled.Terminal">
                        <MudTextField
                            T="string"
                            @bind-Text="@this.FileContent"
                            AdornmentIcon="@Icons.Material.Filled.Article"
                            Adornment="Adornment.Start"
                            Immediate="@true"
                            Label="@T("Loaded Content")"
                            Variant="Variant.Outlined"
                            Lines="6"
                            AutoGrow="@true"
                            MaxLines="25"
                            ReadOnly="true"
                            Class="ma-2"
                            HelperText="@T("This is the content we loaded from your file — including headings, lists, and formatting. Use this to verify your file loads as expected.")"/>
                    </MudTabPanel>
                }
            </MudTabs>
        }
    </DialogContent>
    <DialogActions>
        <MudButton OnClick="@this.Close" Variant="Variant.Filled" Color="Color.Primary">
            @T("Close")
        </MudButton>
    </DialogActions>
</MudDialog>