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

<LinkedBlock
  @params={{array (concat "vault.cluster.secrets.backend." "credentials" (unless @item.id "-root")) @item.id}}
  class="list-item-row"
  data-test-secret-link={{@item.id}}
  @encode={{true}}
>
  <div class="columns is-mobile">
    <div class="column is-10">
      <LinkTo
        @route={{concat "vault.cluster.secrets.backend." "credentials" (unless @item.id "-root")}}
        @model={{@item.id}}
        class="has-text-black has-text-weight-semibold"
      >
        <Icon @name="user" class="has-text-grey-light is-pulled-left" />
        <div class="role-item-details">
          <span class="is-underline">{{if (eq @item.id " ") "(self)" (or @item.keyWithoutParent @item.id)}}</span>
        </div>
      </LinkTo>
    </div>
    <div class="column has-text-right">
      <Hds::Dropdown @isInline={{true}} @listPosition="bottom-right" as |dd|>
        <dd.ToggleIcon
          @icon="more-horizontal"
          @text="manage A-W-S role {{@item.id}}"
          @hasChevron={{false}}
          data-test-popup-menu-trigger
        />
        {{#if @item.generatePath.isPending}}
          <dd.Generic class="has-text-center">
            <LoadingDropdownOption />
          </dd.Generic>
        {{else if @item.canGenerate}}
          <dd.Interactive
            @text="Generate credentials"
            @route="vault.cluster.secrets.backend.credentials"
            @model={{@item.id}}
            data-test-role-aws-link="generate"
          />
        {{/if}}
        {{#if @item.updatePath.isPending}}
          <dd.Generic class="has-text-center">
            <LoadingDropdownOption />
          </dd.Generic>
        {{else}}
          {{#if @item.canRead}}
            <dd.Interactive
              @text="Details"
              @route="vault.cluster.secrets.backend.show"
              @model={{@item.id}}
              data-test-role-ssh-link="show"
            />
          {{/if}}
          {{#if @item.canEdit}}
            <dd.Interactive
              @text="Edit"
              @route="vault.cluster.secrets.backend.edit"
              @model={{@item.id}}
              data-test-role-ssh-link="edit"
            />
          {{/if}}
          {{#if @item.canDelete}}
            <dd.Interactive
              @text="Delete"
              @color="critical"
              {{on "click" (fn (mut this.showConfirmModal) true)}}
              data-test-aws-role-delete={{@item.id}}
            />
          {{/if}}
        {{/if}}
      </Hds::Dropdown>
    </div>
  </div>
</LinkedBlock>

{{#if this.showConfirmModal}}
  <ConfirmModal @color="critical" @onClose={{fn (mut this.showConfirmModal) false}} @onConfirm={{@delete}} />
{{/if}}