{{!
  Copyright (c) HashiCorp, Inc.
  SPDX-License-Identifier: MPL-2.0
~}}

{{#if this.noConnection}}
  <div data-test-connection-error class="notification is-error">
    <h3 class="title is-4">Cannot fetch file</h3>
    <p>The files for this {{if this.task 'task' 'allocation'}} are inaccessible. Check the condition of the client the allocation is on.</p>
  </div>
{{/if}}
<div data-test-header class="boxed-section-head">
  {{yield}}
  <span class="pull-right">

    {{#unless this.fileTypeIsUnknown}}
      <button data-test-log-action="raw" class="button is-white is-compact" onclick={{action "downloadFile"}} type="button">View Raw File</button>
    {{/unless}}
    {{#if (and this.isLarge this.isStreamable)}}
      <button data-test-log-action="head" class="button is-white is-compact" onclick={{action "gotoHead"}} type="button">Head</button>
      <button data-test-log-action="tail" class="button is-white is-compact" onclick={{action "gotoTail"}} type="button">Tail</button>
    {{/if}}
    {{#if this.isStreamable}}
      <button data-test-log-action="toggle-stream" class="button is-white is-compact" onclick={{action "toggleStream"}} type="button" title="{{if this.logger.isStreaming "Pause" "Start"}} streaming">
        {{x-icon (if this.logger.isStreaming "media-pause" "media-play") class="is-text"}}
      </button>
    {{/if}}
  </span>
</div>
<div data-test-file-box class="boxed-section-body {{if (eq this.fileComponent "stream") "is-dark is-full-bleed"}}">
  {{#if (eq this.fileComponent "stream")}}
    <StreamingFile @logger={{this.logger}} @mode={{this.mode}} @isStreaming={{this.isStreaming}} />
  {{else if (eq this.fileComponent "image")}}
    <ImageFile @src={{this.catUrl}} @alt={{this.stat.Name}} @size={{this.stat.Size}} />
  {{else}}
    <div data-test-unsupported-type class="empty-message is-hollow">
      <h3 class="empty-message-headline">Unsupported File Type</h3>
      <p class="empty-message-body message">The Nomad UI could not render this file, but you can still view the file directly.</p>
      <p class="empty-message-body">
        <button data-test-log-action="raw" class="button is-light" onclick={{action "downloadFile"}} type="button">View Raw File</button>
      </p>
    </div>
  {{/if}}
</div>
