diff --git a/components/Collection/templates/collection/notes.html.twig b/components/Collection/templates/collection/notes.html.twig
index b646779490..3e0fe7da7c 100644
--- a/components/Collection/templates/collection/notes.html.twig
+++ b/components/Collection/templates/collection/notes.html.twig
@@ -1,5 +1,5 @@
{% extends 'stdgrid.html.twig' %}
-{% import '/cards/macros/note.html.twig' as noteView %}
+{% import '/cards/macros/note/factory.html.twig' as NoteFactory %}
{% block title %}{% if page_title is defined %}{{ page_title | trans }}{% endif %}{% endblock %}
@@ -39,9 +39,11 @@
{% for conversation in notes %}
{% block current_note %}
{% if conversation is instanceof('array') %}
- {{ noteView.note_vanilla(conversation['note'], conversation['replies'], {'depth': 0}) }}
- {% else %}
- {{ noteView.note_vanilla(conversation) }}
+ {% set args = { 'type': 'vanilla_full', 'note': conversation['note'], 'replies': conversation['replies'] | default, 'extra': { 'depth': 0 } } %}
+ {{ NoteFactory.constructor(args) }}
+{# {% else %}
+ {% set args = { 'type': 'vanilla_full', 'note': conversation, 'extra': { 'depth': 0 } } %}
+ {{ NoteFactory.constructor(args) }}#}
{% endif %}
- {{ block('note_sidebar', 'cards/blocks/note.html.twig') }}
-
-
- {{ block('note_info', 'cards/blocks/note.html.twig') }}
-
-
- {% if extra.parent is defined %}
-
- {{'in reply to' | trans}} {{ extra.parent | raw }}
-
- {% endif %}
- {{ block('note_text', 'cards/blocks/note.html.twig') }}
- {{ block('note_attachments', 'cards/blocks/note.html.twig') }}
- {{ block('note_links', 'cards/blocks/note.html.twig') }}
-
-
- {{ block('note_complementary', 'cards/blocks/note.html.twig') }}
-
-
- {% if replies is defined %}
- {{ block('note_replies', 'cards/blocks/note.html.twig') }}
- {% endif %}
-{% endmacro note_vanilla %}
-
-{% macro note_compact(note) %}
- {% set actor = note.getActor() %}
- {% set nickname = actor.getNickname() %}
- {% set fullname = actor.getFullname() %}
- {% set actor_uri = actor.getUri() %}
- {% set actor_url = actor.getUrl() %}
- {% set mention = mention(actor) %}
-
-
+ {{ block('note_sidebar', 'cards/blocks/note.html.twig') }}
+
+
+ {{ block('note_info', 'cards/blocks/note.html.twig') }}
+
+
+ {% if extra.parent is defined %}
+
+ {{'in reply to' | trans}} {{ extra.parent | raw }}
+
+ {% endif %}
+ {{ block('note_text', 'cards/blocks/note.html.twig') }}
+ {{ block('note_attachments', 'cards/blocks/note.html.twig') }}
+ {{ block('note_links', 'cards/blocks/note.html.twig') }}
+
+
+ {{ block('note_complementary', 'cards/blocks/note.html.twig') }}
+
+
+ {% if replies is defined %}
+ {{ block('note_replies', 'cards/blocks/note.html.twig') }}
+ {% endif %}
+{% endmacro vanilla_full %}
+
+
+{# args: { 'type': { 'vanilla_compact' }, 'note': note, ?'extra': { 'foo': bar } } #}
+{% macro vanilla_compact(args) %}
+ {% set note = args.note %}
+ {% if args.extra is defined %}{% set extra = args.extra %}{% else %}{% set extra = null %}{% endif %}
+
+ {% set actor = note.getActor() %}
+ {% set nickname = actor.getNickname() %}
+ {% set fullname = actor.getFullname() %}
+ {% set actor_uri = actor.getUri() %}
+ {% set actor_url = actor.getUrl() %}
+ {% set mention = mention(actor) %}
+
+
+ {{ block('note_sidebar', 'cards/blocks/note.html.twig') }}
+
+
+ {{ block('note_info', 'cards/blocks/note.html.twig') }}
+
+
+ {% if extra.parent is defined %}
+
+ {{'in reply to' | trans}} {{ extra.parent | raw }}
+
+ {% endif %}
+ {{ block('note_text', 'cards/blocks/note.html.twig') }}
+ {{ block('note_attachments', 'cards/blocks/note.html.twig') }}
+ {{ block('note_links', 'cards/blocks/note.html.twig') }}
+
+
+ {{ block('note_complementary', 'cards/blocks/note.html.twig') }}
+
+
+ {% if replies is defined %}
+ {{ block('note_replies', 'cards/blocks/note.html.twig') }}
+ {% endif %}
+{% endmacro page_full %}
+
+
+{# args: { 'type': { 'page_compact' }, 'note': note, ?'extra': { 'foo': bar } } #}
+{% macro page_compact(args) %}
+ {% set note = args.note %}
+ {% if args.extra is defined %}{% set extra = args.extra %}{% else %}{% set extra = null %}{% endif %}
+
+ {% set actor = note.getActor() %}
+ {% set nickname = actor.getNickname() %}
+ {% set fullname = actor.getFullname() %}
+ {% set actor_uri = actor.getUri() %}
+ {% set actor_url = actor.getUrl() %}
+ {% set mention = mention(actor) %}
+
+