Reactions: Add more button (#1314)

* Add expand/collapse UI for reactions

- Adds a CollapsibleFlowLayout for controlling the layout
- Adds tests for  this layout and some mocks for testing layouts generally
- Improves the rendering of the reaction buttons which were not pixel perfect
- Adds the UI for the expand collapse buttons including the count of hidden items in the collapsed state.

* Add comment for reactionsCollapsed binding.

* Add the add more button and change the layout to be reactions specific and account for the add more button specifics.

* Update CollapsibleReactionLayout.swift

* Rename lines to rows, to hopefully ease the incoming merge.

* Add LayoutValueKey to organise subviews by item type.

- create ReactionLayoutItemType to tag subviews with ReactionLayoutItem
- Add LayoutValueKey support to the layout mocks
- Fix some mistakes in the merge
- Make the test code a bit more DRY
- Make the animation of the addMore and collapse buttons consistent

* Fix naming of the add more button label

* Address comments and fix padding

- Fix typos
- Use pdf/svg for icon
- Fix incorrect padding from a bad merge

* Fix "Add more" button padding to match designs

* Update snapshot test reference images.

* Fix naming, add Preserves Vector Data
This commit is contained in:
David Langley
2023-07-14 17:32:32 +01:00
committed by GitHub
parent a44a60cb0a
commit b31af77686
20 changed files with 415 additions and 141 deletions
@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
@@ -0,0 +1,15 @@
{
"images" : [
{
"filename" : "timeline-reaction-add-more.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
}
@@ -0,0 +1,116 @@
%PDF-1.7
1 0 obj
<< >>
endobj
2 0 obj
<< /Length 3 0 R >>
stream
/DeviceRGB CS
/DeviceRGB cs
q
1.000000 0.000000 -0.000000 1.000000 1.333252 1.333374 cm
0.396078 0.427451 0.466667 scn
12.000000 14.000000 m
11.631810 14.000000 11.333334 13.701523 11.333334 13.333333 c
11.333334 12.000000 l
10.000000 12.000000 l
9.631810 12.000000 9.333334 11.701523 9.333334 11.333334 c
9.333334 10.965144 9.631811 10.666667 10.000001 10.666667 c
11.333334 10.666667 l
11.333334 9.333332 l
11.333334 8.965143 11.631810 8.666666 12.000000 8.666666 c
12.368190 8.666666 12.666666 8.965143 12.666666 9.333333 c
12.666666 10.666667 l
14.000000 10.666667 l
14.368190 10.666667 14.666666 10.965143 14.666666 11.333334 c
14.666666 11.701523 14.368189 12.000000 13.999999 12.000000 c
12.666666 12.000000 l
12.666666 13.333334 l
12.666666 13.701524 12.368190 14.000000 12.000000 14.000000 c
h
3.333333 8.333333 m
3.333333 8.886666 3.780000 9.333333 4.333333 9.333333 c
4.886666 9.333333 5.333333 8.886666 5.333333 8.333333 c
5.333333 7.780000 4.886666 7.333333 4.333333 7.333333 c
3.780000 7.333333 3.333333 7.780000 3.333333 8.333333 c
h
9.000000 7.333333 m
9.553333 7.333333 9.999999 7.780000 9.999999 8.333333 c
9.999999 8.886666 9.553333 9.333333 9.000000 9.333333 c
8.446667 9.333333 8.000000 8.886666 8.000000 8.333333 c
8.000000 7.780000 8.446667 7.333333 9.000000 7.333333 c
h
6.666677 3.000000 m
8.220009 3.000000 9.540010 3.973333 10.073343 5.333334 c
3.260010 5.333334 l
3.793343 3.973333 5.113343 3.000000 6.666677 3.000000 c
h
1.333333 6.666667 m
1.333333 9.612185 3.721148 12.000000 6.666667 12.000000 c
7.073877 12.000000 7.469647 11.954485 7.849466 11.868532 c
8.208576 11.787266 8.565571 12.012502 8.646837 12.371612 c
8.728104 12.730721 8.502867 13.087715 8.143758 13.168982 c
7.668022 13.276641 7.173560 13.333333 6.666667 13.333333 c
2.984768 13.333333 0.000000 10.348565 0.000000 6.666667 c
0.000000 2.984768 2.984768 0.000000 6.666667 0.000000 c
10.348566 0.000000 13.333334 2.984768 13.333334 6.666667 c
13.333334 6.808108 13.328918 6.948606 13.320211 7.088020 c
13.297259 7.455494 12.980757 7.734784 12.613283 7.711831 c
12.245810 7.688879 11.966518 7.372376 11.989471 7.004903 c
11.996452 6.893137 12.000000 6.780360 12.000000 6.666667 c
12.000000 3.721148 9.612185 1.333333 6.666667 1.333333 c
3.721148 1.333333 1.333333 3.721148 1.333333 6.666667 c
h
f*
n
Q
endstream
endobj
3 0 obj
2295
endobj
4 0 obj
<< /Annots []
/Type /Page
/MediaBox [ 0.000000 0.000000 16.000000 16.000000 ]
/Resources 1 0 R
/Contents 2 0 R
/Parent 5 0 R
>>
endobj
5 0 obj
<< /Kids [ 4 0 R ]
/Count 1
/Type /Pages
>>
endobj
6 0 obj
<< /Pages 5 0 R
/Type /Catalog
>>
endobj
xref
0 7
0000000000 65535 f
0000000010 00000 n
0000000034 00000 n
0000002385 00000 n
0000002408 00000 n
0000002581 00000 n
0000002655 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
2714
%%EOF
@@ -449,6 +449,8 @@
"screen_room_details_topic_title" = "Topic";
"screen_room_error_failed_processing_media" = "Failed processing media to upload, please try again.";
"screen_room_retry_send_menu_remove_action" = "Remove";
"screen_room_reactions_show_more" = "Show more";
"screen_room_reactions_show_less" = "Show less";
"screen_session_verification_cancelled_title" = "Verification cancelled";
"screen_session_verification_positive_button_ready" = "Start";
"screen_signout_confirmation_dialog_submit" = "Sign out";