{% from "./requested/view.njk" import dprAsyncRequestList %}
{% from "./viewed/view.njk" import dprRecentlyViewedList %}
{% from "./bookmarks/view.njk" import dprBookmarksList %}
{% from "govuk/components/tabs/macro.njk" import govukTabs %}

{% macro dprUserReports(args) %}

    {% set items = [] %}
    {% set requestedReports = args.requestedReports %}
    {% set viewedReports = args.viewedReports %}
    {% set bookmarks = args.bookmarks %}

    {% if bookmarks %}
      {% set bookmarksHtml %}
        {{ dprBookmarksList({
          head: bookmarks.head,
          tableData: bookmarks.tableData,
          total: bookmarks.total
        }) }}
      {% endset -%}
      
      {% set items = (items.push({
        label: "Bookmarks (" + bookmarks.total.amount + ")",
        id: "my-bookmarks-tab",
        panel: {
          html: bookmarksHtml
        }
      }), items) %}
    {% endif %}

    {% if requestedReports %}
      {% set requestedReportsHtml %}
        {{ dprAsyncRequestList({
          head: requestedReports.head,
          tableData: requestedReports.tableData,
          total: requestedReports.total,
          meta: requestedReports.meta,
          csrfToken: requestedReports.csrfToken
        })}}
      {% endset -%}

      {% set items = (items.push({
        label: "Requested (" + requestedReports.total.amount + ")",
        id: "requested-reports-tab",
        panel: {
          html: requestedReportsHtml
        }
      }), items) %}
    {% endif %}

    {% if viewedReports %}

      {% set recentlyViewedHtml %} 
        {{ dprRecentlyViewedList({
          head: viewedReports.head,
          tableData: viewedReports.tableData,
          total: viewedReports.total,
          meta: viewedReports.meta,
          csrfToken: viewedReports.csrfToken
        }) }}
      {% endset -%}

      {% set items = (items.push({
        label: "Viewed (" + viewedReports.total.amount + ")",
        id: "recently-viewed-tab",
        panel: {
          html: recentlyViewedHtml
        }
      }), items) %}
    {% endif %}

    {{ govukTabs({ items: items}) }}
{% endmacro %}
