{% from '_macros/app_tile.html' import app_tile %} {% from '_macros/deferred_icon.html' import deferred_icon %} {% from '_macros/stars.html' import stars %} {% macro feed_app(feed_app) %} {# Don't forget _macros/feed_app_tile is a part of this too. #} {% set feed_app = feed.transformer(feed_app) %} {% set desc = feed_app.description|translate(feed_app) %} {% if feed_app.isIcon or feed_app.isImage %}
{% if feed_app.isIcon %} {% endif %}

{{ feed_app.app.name|translate(feed_app) }}

{{ feed_app.app.author }}

{% else %} {{ app_tile(feed_app.app, feed_app=feed_app, src=feed_app.src) }} {% endif %}
{% endmacro %} {% macro brand_header(brand) %}

{{ brand.name }}

{% endmacro %} {% macro brand(brand) %} {% set brand = feed.transformer(brand) %}
{{ brand_header(brand) }} {% if brand.app_count > brand.maxApps %} {{ _('View all') }} {% endif %}
{% endmacro %} {% macro collection(coll) %} {% set coll = feed.transformer(coll) %} {% if coll.isCollPromo %} {{ collection_promo(coll) }} {% else %} {{ collection_listing(coll) }} {% endif %} {% endmacro %} {% macro collection_promo(coll) %} {% set coll = feed.transformer(coll) %} {% set desc = coll.description|translate(coll) %}
{% if not coll.background_image %} {% endif %} {% if coll.background_image %}
{% else %}
{% endif %}

{{ coll.name|translate(coll)|safe }}

{% if desc %}

{{ desc }}

{% endif %}
{% endmacro %} {% macro collection_listing_header(coll) %}

{{ coll.name|translate(coll)|safe }}

{% if coll.description %}

{{ coll.description|translate(coll)|safe }}

{% endif %} {% endmacro %} {% macro collection_listing(coll) %} {% set coll = feed.transformer(coll) %}
{{ collection_listing_header(coll) }} {% if coll.app_count > coll.maxApps %} {{ _('View all') }} {% endif %}
{% endmacro %} {% macro collection_landing(feed_item) %} {# Used for collections, shelves, and brands. Reduce, reuse, recycle. #} {% set feed_item = feed.transformer(feed_item) %}
{# Reuse the feed representation as the mobile header. #} {% if feed_item.isShelf %} {{ shelf(feed_item, true) }} {% elif feed_item.isBrand %} {{ brand_header(feed_item) }} {% else %} {{ collection_promo(feed_item) if feed_item.isCollPromo else collection_listing_header(feed_item) }} {% endif %}
{% if feed_item.isCollection and not feed_item.background_image %}
    {% for app in feed_item.apps %} {% if loop.index0 < 3 %}
  • {{ deferred_icon(app.icons[64], app.name|translate(feed_app.app)) }}
  • {% endif %} {% endfor %}
{% endif %}
{% if feed_item.isBrand %}

{{ feed_item.name }}

{% else %} {% if feed_item.background_image %} {% endif %}

{{ feed_item.name }}

{% if feed_item.description %}

{{ feed_item.description|translate(feed_item)|safe }}

{% endif %}
{% endif %}
{% if feed_item.apps[0].group %} {# Mega collection. #} {% for group in feed.group_apps(feed_item.apps) %}

{{ group.name }}

    {% for app in group.apps %}
  • {{ app_tile(app, alt_style=True, src=feed_item.src) }}
  • {% endfor %}
{% endfor %} {% else %}
    {% for app in feed_item.apps %}
  • {{ app_tile(app, alt_style=True, src=feed_item.src) }}
  • {% endfor %}
{% endif %}
{% endmacro %} {% macro shelf(shelf, landing) %} {% set shelf = feed.transformer(shelf) %}

{{ shelf.name|translate(shelf)|safe }}

{% endmacro %} {% macro feed_item(obj) %} {% set feed_item = feed.transformer(obj[obj.item_type]) %} {% if feed_item.isApp %} {{ feed_app(feed_item) }} {% elif feed_item.isBrand %} {{ brand(feed_item) }} {% elif feed_item.isCollection %} {{ collection(feed_item) }} {% else %} {{ shelf(feed_item) }} {% endif %} {% endmacro %}