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

Fix QR share screen for community channel #19792

Merged
merged 13 commits into from
Apr 30, 2024

Conversation

seanstrom
Copy link
Member

fixes #19608

Summary

  • This PR attempts to fix the alignment issues and add missing UI elements when opening the QR share screen for a community channel.

Platforms

  • Android
  • iOS

Areas that maybe impacted

Functional
  • Sharing QR code for community channel

Steps to test

Reproduction steps are described in #19608

Before and after screenshots comparison

Before

Screen.Recording.2024-04-25.at.10.22.22.mov

After

Screen.Recording.2024-04-25.at.10.21.28.mov

status: ready

@seanstrom seanstrom self-assigned this Apr 25, 2024
@status-im-auto
Copy link
Member

status-im-auto commented Apr 25, 2024

Jenkins Builds

Click to see older builds (21)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 43af11f #1 2024-04-25 08:32:48 ~8 min tests 📄log
✔️ 43af11f #1 2024-04-25 08:34:12 ~10 min ios 📱ipa 📲
✔️ 43af11f #1 2024-04-25 08:38:08 ~14 min android-e2e 🤖apk 📲
✔️ 43af11f #1 2024-04-25 08:39:50 ~15 min android 🤖apk 📲
✔️ 48f7c3e #2 2024-04-25 11:27:24 ~6 min tests 📄log
✔️ 48f7c3e #2 2024-04-25 11:29:04 ~8 min ios 📱ipa 📲
✔️ 48f7c3e #2 2024-04-25 11:33:30 ~12 min android-e2e 🤖apk 📲
✔️ 48f7c3e #2 2024-04-25 11:33:40 ~13 min android 🤖apk 📲
✔️ 4dbdcc1 #3 2024-04-29 11:31:58 ~6 min tests 📄log
✔️ 4dbdcc1 #3 2024-04-29 11:33:17 ~8 min ios 📱ipa 📲
✔️ 4dbdcc1 #3 2024-04-29 11:37:25 ~12 min android-e2e 🤖apk 📲
✔️ 4dbdcc1 #3 2024-04-29 11:37:31 ~12 min android 🤖apk 📲
6870f48 #4 2024-04-29 12:06:37 ~4 min tests 📄log
✔️ 6870f48 #4 2024-04-29 12:10:19 ~8 min ios 📱ipa 📲
✔️ 6870f48 #4 2024-04-29 12:13:56 ~12 min android-e2e 🤖apk 📲
✔️ 6870f48 #4 2024-04-29 12:14:02 ~12 min android 🤖apk 📲
b08666d #6 2024-04-29 15:26:44 ~3 min tests 📄log
✔️ fb3c3d7 #7 2024-04-29 15:36:58 ~6 min tests 📄log
✔️ fb3c3d7 #7 2024-04-29 15:38:01 ~7 min ios 📱ipa 📲
✔️ fb3c3d7 #7 2024-04-29 15:42:33 ~12 min android-e2e 🤖apk 📲
✔️ fb3c3d7 #7 2024-04-29 15:42:40 ~12 min android 🤖apk 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 15abe80 #8 2024-04-30 13:43:38 ~6 min tests 📄log
✔️ 15abe80 #8 2024-04-30 13:45:10 ~8 min ios 📱ipa 📲
✔️ 15abe80 #8 2024-04-30 13:48:50 ~12 min android-e2e 🤖apk 📲
✔️ 15abe80 #8 2024-04-30 13:49:04 ~12 min android 🤖apk 📲
✔️ 98babe4 #9 2024-04-30 14:32:02 ~6 min tests 📄log
✔️ 98babe4 #9 2024-04-30 14:33:22 ~8 min ios 📱ipa 📲
✔️ 98babe4 #9 2024-04-30 14:37:27 ~12 min android-e2e 🤖apk 📲
✔️ 98babe4 #9 2024-04-30 14:37:40 ~12 min android 🤖apk 📲

@@ -153,7 +160,7 @@
{:color colors/white-opa-40
:container-style style/watched-account-icon}])]
[share-button {:on-press on-share-press}]]
(when (not= share-qr-type :profile)
(when (not (contains? #{:profile :channel} share-qr-type))
Copy link
Contributor

Choose a reason for hiding this comment

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

If it's easy to determine, have a positive if condition, ie. (when (= % :account)).

If not easy to determine, a more explicit or is preferable. contains? feels fragile.

Copy link
Contributor

Choose a reason for hiding this comment

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

Update: It's not easy to determine an exhaustive list. A negative filter is fine.

image

Copy link
Contributor

@shivekkhurana shivekkhurana left a comment

Choose a reason for hiding this comment

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

Requested some changes and left some comments not related to your work.

Please feel free to ignore the issues you did not introduce.

(let [params (rf/sub [:get-screen-params])
;; NOTE(seanstrom): We need to store these screen params for when the modal closes
;; because the screen params will be cleared.
{:keys [url chat-id]} @(rn/use-ref-atom params)
Copy link
Contributor

Choose a reason for hiding this comment

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

Since the screen params are present in re-frame state, can't we just fetch it from there whenever we need it ?

Why create an extra copy? What's the constraint here ?

Copy link
Member Author

Choose a reason for hiding this comment

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

The screen params are stored and then cleared from re-frame state when this view is animated to a closed state. So what will happen is that the url and chat-id will be set to nil, and this will cause a visual glitch with the QR code for a brief moment.

The above code is trying to prevent this visual glitch by keeping a local copy of the screen params. This way when the screen params are cleared while navigating, the QR code will still visualised with the intended url value.

Copy link
Contributor

Choose a reason for hiding this comment

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

Does this apply only to this QR code (the visual glitch) or all QR codes?

Copy link
Member Author

Choose a reason for hiding this comment

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

Good question, I think most other QR codes are unaffected because we don't the screen-params for passing identifiers, they're sorta implicitly in scope for things like wallet accounts or contacts. But communities and community channels do not always have their identifiers implicitly in scope.

For example, we can navigate directly from the home screen to a community QR code, which leads to us passing the community-id through the screen params manually.

I've updated the PR to include a fix for community QR codes as well 🙏

window-width (rf/sub [:dimensions/window-width])]
on-share-community-channel (rn/use-callback
#(rf/dispatch
[:communities/share-community-channel-url-with-data
Copy link
Contributor

Choose a reason for hiding this comment

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

There is a navigate back somewhere in this component. That can be extracted to the let bind and wrapped in a use-callback.

Not related to your code, but a simple housekeeping win.

@@ -16,7 +16,8 @@
:options [{:key :profile}
{:key :wallet}
{:key :saved-address}
{:key :watched-address}]}])
{:key :watched-address}
{:key :channel}]}])

(def possible-networks [:ethereum :optimism :arbitrum :myNet])
Copy link
Contributor

Choose a reason for hiding this comment

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

what is :myNet 🤔

@shivekkhurana
Copy link
Contributor

shivekkhurana commented Apr 26, 2024

After yesterday's conversation on use-callback and use-memo, navigate back probably doesn't need to be a callback.

Marking as approved as none of my comments are related to your work directly.

@seanstrom seanstrom force-pushed the seanstrom/fix-channel-qr-code-ui branch 2 times, most recently from b08666d to fb3c3d7 Compare April 29, 2024 15:29
@status-im-auto
Copy link
Member

90% of end-end tests have passed

Total executed tests: 52
Failed tests: 3
Expected to fail tests: 2
Passed tests: 47
IDs of failed tests: 727230,727229,702869 
IDs of expected to fail tests: 703495,703503 

Failed tests (3)

Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    Device 1: Find `Text` by `xpath`: `//android.view.ViewGroup[@content-desc='container']/android.widget.TextView[@text='Ether']/../android.widget.TextView[3]`
    Device 1: `Text` is `0.04064 ETH`

    critical/test_wallet.py:127: in test_wallet_send_asset_from_drawer
        self._check_balances_after_tx(amount_to_send, sender_balance, receiver_balance, eth_amount_sender,
    critical/test_wallet.py:98: in _check_balances_after_tx
        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))]))
     Eth amount in the receivers wallet is 0.0312 but should be 0.0313
    E    Eth amount in the senders wallet is 0.0406 but should be 0.0405
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Find Text by xpath: //android.view.ViewGroup[@content-desc='container']/android.widget.TextView[@text='Ether']/../android.widget.TextView[3]
    Device 1: Text is 0.04064 ETH

    critical/test_wallet.py:112: in test_wallet_send_eth
        self._check_balances_after_tx(amount_to_send, sender_balance, receiver_balance, eth_amount_sender,
    critical/test_wallet.py:98: in _check_balances_after_tx
        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))]))
     Eth amount in the receivers wallet is 0.0312 but should be 0.0313
    E    Eth amount in the senders wallet is 0.0406 but should be 0.0405
    



    Class TestCommunityOneDeviceMerged:

    1. test_community_undo_delete_message, id: 702869

    Device 1: Tap on found: Button
    Device 1: Find Button by xpath: //*[@text="Undo"]

    critical/chats/test_public_chat_browsing.py:112: in test_community_undo_delete_message
        self.channel.element_by_text("Undo").click()
    ../views/base_element.py:92: in click
        element.click()
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py:94: in click
        self._execute(Command.CLICK_ELEMENT)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py:395: in _execute
        return self._parent.execute(command, params)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     The element 'By.xpath: //*[@text="Undo"]' does not exist in DOM anymore; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#stale-element-reference-exception
    E   Stacktrace:
    E   io.appium.uiautomator2.common.exceptions.StaleElementReferenceException: The element 'By.xpath: //*[@text="Undo"]' does not exist in DOM anymore
    E   	at io.appium.uiautomator2.model.ElementsCache.restore(ElementsCache.java:117)
    E   	at io.appium.uiautomator2.model.ElementsCache.get(ElementsCache.java:153)
    E   	at io.appium.uiautomator2.handler.Click.safeHandle(Click.java:36)
    E   	at io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:59)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:277)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:271)
    E   	at io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:68)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:435)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
    E   	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:250)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
    E   	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:611)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:552)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:466)
    E   	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438)
    E   	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
    E   	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
    E   	at java.lang.Thread.run(Thread.java:1012)
    
    During handling of the above exception, another exception occurred:
    critical/chats/test_public_chat_browsing.py:114: in test_community_undo_delete_message
        pytest.fail("Can't press Undo button, not enough time")
    E   Failed: Can't press Undo button, not enough time
    



    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 (47)

    Click to expand

    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 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_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    4. test_community_mute_community_and_channel, id: 703382
    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 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 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 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 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 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 TestActivityMultipleDevicePR:

    1. test_navigation_jump_to, id: 702936
    Device sessions

    2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    @mariia-skrypnyk
    Copy link

    Hi @seanstrom !🙌

    I am moving back your PR to the corresponding column as it doesn't meet the requirements outlined here:
    https://github.com/status-im/status-mobile/blob/develop/doc/pipeline_process.md

    Please, make sure your PR contains all necessary labels + information to PR's description.
    Thanks!🙏

    @seanstrom
    Copy link
    Member Author

    seanstrom commented Apr 30, 2024

    @mariia-skrypnyk sorry about that 🙏
    I've updated the PR with request-manual-qa, but I'm wondering since this is mostly visual fixes, if this is a good candidate for skip-manual-qa. thoughts?

    @status-im-auto
    Copy link
    Member

    96% of end-end tests have passed

    Total executed tests: 52
    Failed tests: 0
    Expected to fail tests: 2
    Passed tests: 50
    
    IDs of expected to fail tests: 703495,703503 
    

    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 (50)

    Click to expand

    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 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 TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    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 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

    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 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 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 TestWalletMultipleDevice:

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

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    @mariia-skrypnyk mariia-skrypnyk self-assigned this Apr 30, 2024
    @mariia-skrypnyk
    Copy link

    @seanstrom yes, it's a tiny issue but I'll check it as PR queue is not so big at the moment.
    Thanks for highlighting it!
    Good catch!

    @mariia-skrypnyk mariia-skrypnyk force-pushed the seanstrom/fix-channel-qr-code-ui branch from fb3c3d7 to 15abe80 Compare April 30, 2024 13:36
    @mariia-skrypnyk
    Copy link

    @seanstrom your fix is checked!
    Looks good from my side.
    Ready to be merged!

    @seanstrom seanstrom force-pushed the seanstrom/fix-channel-qr-code-ui branch from 15abe80 to 98babe4 Compare April 30, 2024 14:24
    @seanstrom seanstrom merged commit 6a1fdc5 into develop Apr 30, 2024
    6 checks passed
    @seanstrom seanstrom deleted the seanstrom/fix-channel-qr-code-ui branch April 30, 2024 15:10
    codemaster115 pushed a commit that referenced this pull request Apr 30, 2024
    * tweak: add support for displaying channel qr codes with quo/share-qr-code component
    
    * chore: add channel qr-code example to quo preview components
    
    * tweak: integrate common/qr-code component for sharing community channel qr-code
    
    * tweak: add support for showing community channel avatar in share-qr-code header
    
    * tweak: hide wallet tabs for channel qr-code
    
    * tweak: integrate share handler for community channel qr-code
    
    * fix: prevent accidentally rendering the community channel qr-code with nil while closing the share-qr modal
    
    * tidy: extract navigate-back dispatch function
    
    * tidy: use styles namespace
    
    * tidy: use case statement to determine which qr-code components have a header
    
    * tweak: check for share-qr-types that support headers
    
    * tidy: extract navigate-back into static function
    
    * fix: prevent community qr-code from glitching when closing modal
    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.

    Community Channel QR code coloured background moved to the left
    5 participants