Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement context action share community QR code #19700

Merged
merged 16 commits into from
Apr 25, 2024
Merged

Implement context action share community QR code #19700

merged 16 commits into from
Apr 25, 2024

Conversation

ibrkhalil
Copy link
Contributor

@ibrkhalil ibrkhalil commented Apr 18, 2024

fixes #19645

Summary

Implements context action share community QR code
CleanShot 2024-04-18 at 11 57 59@2x

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented Apr 18, 2024

Jenkins Builds

Click to see older builds (57)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ de0ba3e #1 2024-04-18 07:06:26 ~4 min tests 📄log
✔️ de0ba3e #1 2024-04-18 07:07:58 ~6 min android-e2e 🤖apk 📲
✔️ de0ba3e #1 2024-04-18 07:09:11 ~7 min android 🤖apk 📲
✔️ de0ba3e #1 2024-04-18 07:10:57 ~8 min ios 📱ipa 📲
✔️ 1e28c03 #2 2024-04-18 09:33:30 ~4 min tests 📄log
✔️ 1e28c03 #2 2024-04-18 09:35:50 ~6 min android-e2e 🤖apk 📲
✔️ 1e28c03 #2 2024-04-18 09:36:11 ~7 min android 🤖apk 📲
✔️ 1e28c03 #2 2024-04-18 09:39:39 ~10 min ios 📱ipa 📲
✔️ d049ccc #3 2024-04-18 09:57:00 ~4 min tests 📄log
✔️ d049ccc #3 2024-04-18 09:58:24 ~5 min android-e2e 🤖apk 📲
✔️ d049ccc #3 2024-04-18 09:59:41 ~7 min android 🤖apk 📲
✔️ 5815ca0 #4 2024-04-18 10:06:07 ~5 min tests 📄log
✔️ 5815ca0 #4 2024-04-18 10:07:35 ~7 min android-e2e 🤖apk 📲
✔️ 5815ca0 #4 2024-04-18 10:08:20 ~7 min android 🤖apk 📲
✔️ 5815ca0 #4 2024-04-18 10:10:51 ~10 min ios 📱ipa 📲
✔️ 46361bd #6 2024-04-18 15:25:39 ~4 min tests 📄log
✔️ 46361bd #6 2024-04-18 15:27:43 ~6 min android 🤖apk 📲
✔️ 46361bd #6 2024-04-18 15:28:12 ~7 min android-e2e 🤖apk 📲
✔️ 46361bd #6 2024-04-18 15:42:33 ~21 min ios 📱ipa 📲
✔️ bc60bd5 #7 2024-04-19 05:20:14 ~4 min tests 📄log
✔️ bc60bd5 #7 2024-04-19 05:22:42 ~6 min android 🤖apk 📲
✔️ bc60bd5 #7 2024-04-19 05:22:52 ~6 min android-e2e 🤖apk 📲
✔️ bc60bd5 #7 2024-04-19 05:24:32 ~8 min ios 📱ipa 📲
✔️ 599ab4c #8 2024-04-19 05:39:47 ~3 min tests 📄log
✔️ 599ab4c #8 2024-04-19 05:42:37 ~6 min android-e2e 🤖apk 📲
✔️ 599ab4c #8 2024-04-19 05:42:39 ~6 min android 🤖apk 📲
✔️ 599ab4c #8 2024-04-19 05:44:03 ~8 min ios 📱ipa 📲
✔️ 02697c6 #9 2024-04-19 15:10:21 ~3 min tests 📄log
✔️ 02697c6 #9 2024-04-19 15:12:13 ~5 min android 🤖apk 📲
✔️ 02697c6 #9 2024-04-19 15:12:44 ~6 min android-e2e 🤖apk 📲
✔️ 02697c6 #9 2024-04-19 15:14:43 ~8 min ios 📱ipa 📲
1d97561 #10 2024-04-21 10:38:19 ~2 min tests 📄log
✔️ 1d97561 #10 2024-04-21 10:41:45 ~5 min android 🤖apk 📲
✔️ 1d97561 #10 2024-04-21 10:42:34 ~6 min android-e2e 🤖apk 📲
✔️ 1d97561 #10 2024-04-21 10:46:46 ~10 min ios 📱ipa 📲
8929d15 #12 2024-04-21 10:54:39 ~2 min tests 📄log
7f1e2b7 #13 2024-04-21 11:00:11 ~2 min tests 📄log
✔️ 7f1e2b7 #13 2024-04-21 11:04:27 ~6 min android-e2e 🤖apk 📲
✔️ 7f1e2b7 #13 2024-04-21 11:04:28 ~6 min android 🤖apk 📲
✔️ 7f1e2b7 #13 2024-04-21 11:05:56 ~8 min ios 📱ipa 📲
ce9abd1 #14 2024-04-23 09:58:08 ~3 min tests 📄log
✔️ ce9abd1 #14 2024-04-23 10:00:38 ~6 min android 🤖apk 📲
✔️ ce9abd1 #14 2024-04-23 10:02:16 ~7 min android-e2e 🤖apk 📲
✔️ ce9abd1 #14 2024-04-23 10:02:54 ~8 min ios 📱ipa 📲
39e0493 #15 2024-04-24 07:02:52 ~3 min tests 📄log
effe935 #16 2024-04-24 07:07:18 ~2 min tests 📄log
✔️ effe935 #16 2024-04-24 07:10:44 ~5 min android-e2e 🤖apk 📲
✔️ effe935 #16 2024-04-24 07:13:25 ~8 min android 🤖apk 📲
✔️ effe935 #16 2024-04-24 07:13:45 ~8 min ios 📱ipa 📲
✔️ 0f75368 #18 2024-04-24 08:39:18 ~4 min tests 📄log
✔️ 0f75368 #18 2024-04-24 08:41:01 ~6 min android-e2e 🤖apk 📲
✔️ 0f75368 #18 2024-04-24 08:45:25 ~10 min android 🤖apk 📲
✔️ 0f75368 #18 2024-04-24 08:45:57 ~11 min ios 📱ipa 📲
✔️ 34b1f23 #19 2024-04-24 10:30:12 ~4 min tests 📄log
✔️ 34b1f23 #19 2024-04-24 10:31:55 ~5 min android-e2e 🤖apk 📲
✔️ 34b1f23 #19 2024-04-24 10:34:50 ~8 min android 🤖apk 📲
✔️ 34b1f23 #19 2024-04-24 10:35:09 ~9 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 3976791 #20 2024-04-25 07:47:55 ~4 min tests 📄log
✔️ 3976791 #20 2024-04-25 07:51:22 ~8 min android 🤖apk 📲
✔️ 3976791 #20 2024-04-25 07:52:39 ~9 min ios 📱ipa 📲
✔️ 3976791 #20 2024-04-25 07:54:07 ~11 min android-e2e 🤖apk 📲
✔️ 4ec59c5 #21 2024-04-25 11:36:54 ~3 min tests 📄log
✔️ 4ec59c5 #21 2024-04-25 11:39:06 ~6 min android-e2e 🤖apk 📲
✔️ 4ec59c5 #21 2024-04-25 11:40:22 ~7 min android 🤖apk 📲
✔️ 4ec59c5 #21 2024-04-25 11:42:08 ~9 min ios 📱ipa 📲

@ibrkhalil ibrkhalil self-assigned this Apr 18, 2024
@ibrkhalil ibrkhalil marked this pull request as ready for review April 18, 2024 10:00
Copy link
Contributor

@ajayesivan ajayesivan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link
Member

@flexsurfer flexsurfer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you

@status-im-auto
Copy link
Member

94% of end-end tests have passed

Total executed tests: 52
Failed tests: 1
Expected to fail tests: 2
Passed tests: 49
IDs of failed tests: 702839 
IDs of expected to fail tests: 703495,703503 

Failed tests (1)

Click to expand
  • Rerun failed tests

  • Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_delete, id: 702839

    Device 2: Tap on found: SendMessageButton
    Device 1: Looking for a message by text: delete for me

    critical/chats/test_public_chat_browsing.py:376: in test_community_message_delete
        self.channel_1.chat_element_by_text(message_to_delete_for_me).wait_for_element(120)
    ../views/base_element.py:129: in wait_for_element
        raise TimeoutException(
     Device `1`: `ChatElementByText` by` xpath`: `//*[starts-with(@text,'delete for me')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']` is not found on the screen after wait_for_element
    



    Device sessions

    Expected to fail tests (2)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    # STEP: Change device time so chat will be unmuted by timer
    Device 2: Long press on ChatElement

    critical/chats/test_group_chat.py:464: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Chat is still muted after timeout 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Passed tests (49)

    Click to expand

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_one_image_send_reply, id: 702859
    Device sessions

    3. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    4. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    5. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    6. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    7. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    8. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    9. test_community_message_edit, id: 702843
    Device sessions

    10. test_community_unread_messages_badge, id: 702841
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    3. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    3. test_community_mentions_push_notification, id: 702786
    Device sessions

    4. test_community_leave, id: 702845
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_undo_delete_message, id: 702869
    Device sessions

    4. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    2. test_wallet_add_remove_watch_only_account, id: 727232
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    2. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    3. test_group_chat_reactions, id: 703202
    Device sessions

    4. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    5. test_group_chat_offline_pn, id: 702808
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    3. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    5. test_1_1_chat_edit_message, id: 702855
    Device sessions

    6. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    7. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    8. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_navigation_jump_to, id: 702936
    Device sessions

    2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    @churik
    Copy link
    Member

    churik commented Apr 19, 2024

    Hello!
    The e2e results are reviewed, the failed tests are not related to the PR.
    PR can proceed to the next stage. Doesn't need manual QA, was tested by developer, but should pass the design review

    @churik
    Copy link
    Member

    churik commented Apr 19, 2024

    @Francesca-G can you please review it?

    @status-im-auto
    Copy link
    Member

    94% of end-end tests have passed

    Total executed tests: 52
    Failed tests: 1
    Expected to fail tests: 2
    Passed tests: 49
    
    IDs of failed tests: 702732 
    
    IDs of expected to fail tests: 703495,703503 
    

    Failed tests (1)

    Click to expand
  • Rerun failed tests

  • Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732

    Device 2: Find `Text` by `xpath`: `//*[@content-desc='pinned-messages-menu']//*[starts-with(@text,'Message 4')]/../../*[@content-desc='pinned-by']/android.widget.TextView`
    Device 2: `Text` is `user admin`

    critical/chats/test_group_chat.py:404: in test_group_chat_pin_messages
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Pinned messages count 4 doesn't match expected 3 for user 2
    



    Device sessions

    Expected to fail tests (2)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    # STEP: Change device time so chat will be unmuted by timer
    Device 2: Long press on ChatElement

    critical/chats/test_group_chat.py:464: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Chat is still muted after timeout 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    Device sessions

    Passed tests (49)

    Click to expand

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    2. test_group_chat_reactions, id: 703202
    Device sessions

    3. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    4. test_group_chat_offline_pn, id: 702808
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_one_image_send_reply, id: 702859
    Device sessions

    3. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    4. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    5. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    6. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    7. test_community_message_delete, id: 702839
    Device sessions

    8. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    9. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    10. test_community_message_edit, id: 702843
    Device sessions

    11. test_community_unread_messages_badge, id: 702841
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_navigation_jump_to, id: 702936
    Device sessions

    2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    3. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    5. test_1_1_chat_edit_message, id: 702855
    Device sessions

    6. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    7. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    8. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    3. test_community_undo_delete_message, id: 702869
    Device sessions

    4. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    3. test_community_mentions_push_notification, id: 702786
    Device sessions

    4. test_community_leave, id: 702845
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    2. test_wallet_add_remove_watch_only_account, id: 727232
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    3. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    @mariia-skrypnyk
    Copy link

    Hi @ibrkhalil !
    Thanks for your PR.

    The last e2e fail is not related to your work so PR will be moved to the next stage for Design Review.

    window-width (rf/sub [:dimensions/window-width])
    {{:keys [thumbnail]} :images
    color :color
    community-name :name} (rf/sub [:communities/community community-id])
    Copy link
    Contributor

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    @ibrkhalil, I would recommend against subscribing to :communities/community if we can because a community instance is updated very frequently and for numerous reasons that are usually unrelated to what is being rendered on screen. For example, if a timestamp in the community is updated, this will force re-frame to do a lot more work to diff the previous and new community map because :communities/community has the entire community as an input signal (in re-frame's words).

    Since it's very common to subscribe to a community name, its thumbnail URI and its color to render community avatars, I created some time ago the sub :communities/for-context-tag. The only difference for you is that you will get this map back. Code in the view will be slightly simpler too.

    {:name  name
     :logo  (get-in images [:thumbnail :uri])
     :color color}
    

    Copy link
    Contributor Author

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    I agree, It has exactly the info needed to render the component.
    And thank you so much for pointing out the cost of listening to every change on the community map.
    It makes total sense to minimize the re-renders.

    community-name :name} (rf/sub [:communities/community community-id])
    navigate-back (rn/use-callback #(rf/dispatch [:navigate-back]))
    on-press-share (rn/use-callback
    #(rf/dispatch
    Copy link
    Contributor

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    We've been generally using #() only in one-liners or very short functions. It's a readability thing. (fn []) instantly informs the dev that there's no argument to worry about.

    Copy link
    Contributor Author

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Makes total sense, Updating it to be the (fn [] ...) syntax.

    #(rf/dispatch
    [:open-share
    {:options (if platform/ios?
    {:activityItemSources
    Copy link
    Contributor

    @ilmotta ilmotta Apr 19, 2024

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    At some point I think we should better abstract this share API. Nothing fancy, but the current way is rather verbose and forces all of us to copy and paste since nobody can remember from the top of their heads the exact shape of the args to pass. Additionally, the checks for iOS should be abstracted away if we can from the view layer once we develop such abstraction.

    Copy link
    Contributor Author

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    100%, Creating a followup to abstract this later and to make it more reusable.
    Copying and pasting lines for no reason is not optimal.

    Copy link
    Contributor Author

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Issue created here
    #19749

    Copy link
    Contributor

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Thanks for taking the time to create the issue @ibrkhalil!

    :t/share-community)}}]}
    {:title (i18n/label :t/share-community)
    :subject (i18n/label :t/share-community)
    :message url
    Copy link
    Contributor

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    It's probably fine to not pass url as a dependency to use-callback here because probably url won't change while this view is mounted. But it's a bit like playing with fire and I prefer to always pass dependencies. One of the pain points of embracing these React hooks...

    Copy link
    Contributor Author

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Adding it to the dependency array.

    (def qr-top-wrapper
    {:margin 12
    :margin-bottom 0
    :flex-direction (:flex-direction flex-direction-row)
    Copy link
    Contributor

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    This is a bit odd. Could be just :flex-direction :row because you're already using a var with the word row in it, so the abstraction to get the flex direction from the var is unnecessary.

    Copy link

    @Francesca-G Francesca-G left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Looks nice!

    here's the review with a couple of small issues to fix 🙏

    @ibrkhalil
    Copy link
    Contributor Author

    ibrkhalil commented Apr 24, 2024

    Looks nice!

    here's the review with a couple of small issues to fix 🙏

    Thank you so much for the review Francesca, I centered the text and I created a follow up for the QR code padding.
    Here: #19772

    @ibrkhalil ibrkhalil merged commit 03f813c into develop Apr 25, 2024
    6 checks passed
    @ibrkhalil ibrkhalil deleted the 19645 branch April 25, 2024 11:49
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Archived in project
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    Implement Share QR code action for communities
    8 participants