forked from GNUsocial/gnu-social
		
	[CARDS][Note] Note actions are now displayed at the end
Due to space constraint on mobile screens, prior actions placement proved to be a problem. Additionally, note replies are now separated from their parent, allowing more horizontal space to be used if necessary/more reply depth to be presented in a reasonable fashion.
This commit is contained in:
		| @@ -51,7 +51,7 @@ | |||||||
|                         {% else %} |                         {% else %} | ||||||
|                             {{ noteView.note_vanilla(conversation) }} |                             {{ noteView.note_vanilla(conversation) }} | ||||||
|                         {% endif %} |                         {% endif %} | ||||||
|                         <hr tabindex="0" title="{{ 'End of note and replies.' | trans }}"> |                         <hr class="hr-replies-end" tabindex="0" title="{{ 'End of note and replies.' | trans }}"> | ||||||
|                     {% endblock current_note %} |                     {% endblock current_note %} | ||||||
|                 {% endfor %} |                 {% endfor %} | ||||||
|             </section> |             </section> | ||||||
|   | |||||||
| @@ -149,10 +149,13 @@ | |||||||
|     padding: unset; |     padding: unset; | ||||||
| } | } | ||||||
|  |  | ||||||
| .h-entry .replies { | .note-replies { | ||||||
|     border-left: 1px solid var(--border); |     margin-left: var(--xl); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .note-replies-start { | ||||||
|  |     margin-top: var(--s); | ||||||
|     margin-bottom: var(--s); |     margin-bottom: var(--s); | ||||||
|     padding: 0 var(--s); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| .h-entry a:focus { | .h-entry a:focus { | ||||||
| @@ -228,7 +231,6 @@ embed header { | |||||||
|     flex-wrap: wrap; |     flex-wrap: wrap; | ||||||
|     justify-content: space-between; |     justify-content: space-between; | ||||||
|     align-items: center; |     align-items: center; | ||||||
|     background: var(--gradient-backwards); |  | ||||||
| } | } | ||||||
| .note-info-start { | .note-info-start { | ||||||
|     flex: 1; |     flex: 1; | ||||||
| @@ -253,14 +255,16 @@ embed header { | |||||||
|     font-style: italic; |     font-style: italic; | ||||||
| } | } | ||||||
| .note-actions { | .note-actions { | ||||||
|     display: block; |     display: flex; | ||||||
|  |     flex-direction: initial; | ||||||
|  |     justify-content: flex-end; | ||||||
|  |     padding: 4px 8px; | ||||||
|  |     background: var(--gradient-backwards); | ||||||
|  |     border-radius: 0 0 var(--s) 0; | ||||||
| } | } | ||||||
| .note-actions > li { | .note-actions > li { | ||||||
|     display: inline-block; |     display: inline-block; | ||||||
|     margin-left: 4px; |     margin-left: 8px; | ||||||
| } |  | ||||||
| .note-actions-extra-details { |  | ||||||
|     margin-right: 4px; |  | ||||||
| } | } | ||||||
| .note-actions-extra-details ul { | .note-actions-extra-details ul { | ||||||
|     display: flex; |     display: flex; | ||||||
| @@ -278,13 +282,7 @@ embed header { | |||||||
|     font-size: 0.937rem; |     font-size: 0.937rem; | ||||||
|     line-height: 2; |     line-height: 2; | ||||||
| } | } | ||||||
| .note-actions-separator { |  | ||||||
|     background: var(--foreground); |  | ||||||
|     display: inline-block; |  | ||||||
|     height: 1em; |  | ||||||
|     opacity: 0.33; |  | ||||||
|     width: 1px; |  | ||||||
| } |  | ||||||
| .note-actions-set { | .note-actions-set { | ||||||
|     opacity: 1 !important; |     opacity: 1 !important; | ||||||
| } | } | ||||||
| @@ -310,7 +308,7 @@ embed header { | |||||||
| .note-content { | .note-content { | ||||||
|     border-radius: 0 0 var(--s) var(--s); |     border-radius: 0 0 var(--s) var(--s); | ||||||
|     display: block; |     display: block; | ||||||
|     padding: 0 4px 4px 0; |     padding: 0 4px 8px 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| .note-replies-start { | .note-replies-start { | ||||||
| @@ -319,8 +317,13 @@ embed header { | |||||||
|     opacity: .5; |     opacity: .5; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .hr-replies-end { | ||||||
|  |     margin-bottom: var(--xl); | ||||||
|  | } | ||||||
|  |  | ||||||
| .note-sidebar { | .note-sidebar { | ||||||
|     display: flex; |     display: flex; | ||||||
|  |     flex-direction: column; | ||||||
|     padding: var(--s); |     padding: var(--s); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -370,11 +373,7 @@ embed header { | |||||||
|  |  | ||||||
| @media only screen and (max-width: 1280px) { | @media only screen and (max-width: 1280px) { | ||||||
|     .note-sidebar { |     .note-sidebar { | ||||||
|         padding: 8px 2px 0; |         padding: 4px 6px; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     .note-sidebar > * { |  | ||||||
|         max-height: 2rem; |  | ||||||
|         max-width: 2rem; |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| {% block note_actions %} | {% block note_actions %} | ||||||
|     {% if app.user or note_actions_hide is defined %} |     {% if app.user or note_actions_hide is defined %} | ||||||
|         <menu class="note-actions note-info-end"> |         <menu class="note-actions"> | ||||||
|             <li class="note-actions-extra"> |             <li class="note-actions-extra"> | ||||||
|                 <details class="note-actions-extra-details"> |                 <details class="note-actions-extra-details"> | ||||||
|                     <summary> |                     <summary> | ||||||
| @@ -15,7 +15,6 @@ | |||||||
|                     </menu> |                     </menu> | ||||||
|                 </details> |                 </details> | ||||||
|             </li> |             </li> | ||||||
|             <span class="note-actions-separator"></span> |  | ||||||
|             {% for current_action in get_note_actions(note) %} |             {% for current_action in get_note_actions(note) %} | ||||||
|                 <li><a title="{{ current_action["title"] | trans }}" class="{{ current_action["classes"] }}" href="{{ current_action["url"] }}"></a></li> |                 <li><a title="{{ current_action["title"] | trans }}" class="{{ current_action["classes"] }}" href="{{ current_action["url"] }}"></a></li> | ||||||
|             {% endfor %} |             {% endfor %} | ||||||
| @@ -27,14 +26,16 @@ | |||||||
|     {% import '/cards/macros/note.html.twig' as noteView %} |     {% import '/cards/macros/note.html.twig' as noteView %} | ||||||
|  |  | ||||||
|     {% if replies is defined and replies is not empty %} |     {% if replies is defined and replies is not empty %} | ||||||
|         <div class="u-in-reply-to replies"> |         <section class="note-replies"> | ||||||
|             <span class="note-replies-start" |             <div class="note-replies-start" | ||||||
|                   tabindex="0">{{ 'Replies to ' | trans }}{{ nickname }}{{ '\'s note' | trans }}</span> |                   tabindex="0">{{ 'Replies to ' | trans }}{{ nickname }}{{ '\'s note' | trans }}</div> | ||||||
|             {% for conversation in replies %} |             <div class="u-in-reply-to replies"> | ||||||
|                 {{ noteView.note_vanilla(conversation['note'], conversation['replies']) }} |                 {% for conversation in replies %} | ||||||
|                 <hr tabindex="0" title="{{ 'End of reply' | trans }}"> |                     {{ noteView.note_vanilla(conversation['note'], conversation['replies']) }} | ||||||
|             {% endfor %} |                     <hr tabindex="0" title="{{ 'End of reply' | trans }}"> | ||||||
|         </div> |                 {% endfor %} | ||||||
|  |             </div> | ||||||
|  |         </section> | ||||||
|     {% endif %} |     {% endif %} | ||||||
| {% endblock note_replies %} | {% endblock note_replies %} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,10 +10,10 @@ | |||||||
|     <article id="{{ 'note-anchor-' ~ note.getId() }}" |     <article id="{{ 'note-anchor-' ~ note.getId() }}" | ||||||
|              class="h-entry hentry note" lang={{ note.getLanguageLocale() }}> |              class="h-entry hentry note" lang={{ note.getLanguageLocale() }}> | ||||||
|         {{ block('note_sidebar', 'cards/blocks/note.html.twig') }} |         {{ block('note_sidebar', 'cards/blocks/note.html.twig') }} | ||||||
|  |  | ||||||
|         <div class="note-wrapper"> |         <div class="note-wrapper"> | ||||||
|             <header class="note-info"> |             <header class="note-info"> | ||||||
|                 {{ block('note_info', 'cards/blocks/note.html.twig') }} |                 {{ block('note_info', 'cards/blocks/note.html.twig') }} | ||||||
|                 {{ block('note_actions', 'cards/blocks/note.html.twig') }} |  | ||||||
|             </header> |             </header> | ||||||
|  |  | ||||||
|             <section role="dialog" class="e-content entry-content note-content"> |             <section role="dialog" class="e-content entry-content note-content"> | ||||||
| @@ -21,11 +21,12 @@ | |||||||
|                 {{ block('note_attachments', 'cards/blocks/note.html.twig') }} |                 {{ block('note_attachments', 'cards/blocks/note.html.twig') }} | ||||||
|                 {{ block('note_links', 'cards/blocks/note.html.twig') }} |                 {{ block('note_links', 'cards/blocks/note.html.twig') }} | ||||||
|             </section> |             </section> | ||||||
|  |  | ||||||
|             {{ block('note_replies', 'cards/blocks/note.html.twig') }} |  | ||||||
|             {{ block('note_complementary_info', 'cards/blocks/note.html.twig') }} |             {{ block('note_complementary_info', 'cards/blocks/note.html.twig') }} | ||||||
|  |             {{ block('note_actions', 'cards/blocks/note.html.twig') }} | ||||||
|         </div> |         </div> | ||||||
|     </article> |     </article> | ||||||
|  |  | ||||||
|  |     {{ block('note_replies', 'cards/blocks/note.html.twig') }} | ||||||
| {% endmacro note_vanilla %} | {% endmacro note_vanilla %} | ||||||
|  |  | ||||||
| {% macro note_compact(note) %} | {% macro note_compact(note) %} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user