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: Community logo and title animation #19651

Merged
merged 1 commit into from May 16, 2024

Conversation

ajayesivan
Copy link
Contributor

@ajayesivan ajayesivan commented Apr 15, 2024

fixes #19635

Areas that maybe impacted

  • Community overview screen

Steps to test

  • Open any community and check the header (The issue was random, so better to check with different communities & multiple times)

Before and after screenshots comparison

Before After

status: ready

@ajayesivan ajayesivan self-assigned this Apr 15, 2024
@status-github-bot status-github-bot bot added this to REVIEW in Pipeline for QA Apr 15, 2024
@status-im-auto
Copy link
Member

status-im-auto commented Apr 15, 2024

Jenkins Builds

Click to see older builds (26)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 922923d #1 2024-04-15 15:26:40 ~6 min android 🤖apk 📲
✔️ 922923d #1 2024-04-15 15:26:45 ~6 min tests 📄log
✔️ 922923d #1 2024-04-15 15:29:00 ~8 min android-e2e 🤖apk 📲
✔️ 922923d #1 2024-04-15 15:31:30 ~10 min ios 📱ipa 📲
✔️ c345688 #2 2024-04-16 07:42:39 ~4 min tests 📄log
✔️ c345688 #2 2024-04-16 07:45:35 ~7 min android 🤖apk 📲
✔️ c345688 #2 2024-04-16 07:46:10 ~7 min android-e2e 🤖apk 📲
✔️ c345688 #2 2024-04-16 07:47:30 ~9 min ios 📱ipa 📲
✔️ c6e2e9c #3 2024-04-16 08:22:19 ~4 min tests 📄log
✔️ c6e2e9c #3 2024-04-16 08:25:10 ~7 min android-e2e 🤖apk 📲
✔️ c6e2e9c #3 2024-04-16 08:25:14 ~7 min android 🤖apk 📲
✔️ c6e2e9c #3 2024-04-16 08:26:53 ~8 min ios 📱ipa 📲
✔️ 4b1e2bb #4 2024-04-29 09:46:16 ~5 min android 🤖apk 📲
✔️ 4b1e2bb #4 2024-04-29 09:48:58 ~8 min ios 📱ipa 📲
✔️ 4b1e2bb #4 2024-04-29 09:48:59 ~8 min android-e2e 🤖apk 📲
✔️ a9210d4 #5 2024-05-08 15:41:42 ~8 min ios 📱ipa 📲
✔️ a9210d4 #5 2024-05-08 15:43:39 ~10 min android-e2e 🤖apk 📲
✔️ a9210d4 #5 2024-05-08 15:43:57 ~10 min android 🤖apk 📲
✔️ 30d2d85 #6 2024-05-14 08:16:38 ~3 min tests 📄log
✔️ 30d2d85 #6 2024-05-14 08:21:19 ~8 min ios 📱ipa 📲
✔️ 30d2d85 #6 2024-05-14 08:23:19 ~10 min android-e2e 🤖apk 📲
✔️ 30d2d85 #6 2024-05-14 08:23:24 ~10 min android 🤖apk 📲
✔️ d871bef #8 2024-05-14 09:08:00 ~5 min tests 📄log
✔️ d871bef #8 2024-05-14 09:08:51 ~6 min android 🤖apk 📲
✔️ d871bef #8 2024-05-14 09:10:25 ~7 min android-e2e 🤖apk 📲
✔️ d871bef #8 2024-05-14 09:12:40 ~9 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 2cc3d20 #9 2024-05-16 06:13:34 ~5 min android-e2e 🤖apk 📲
✔️ 2cc3d20 #9 2024-05-16 06:14:20 ~6 min tests 📄log
✔️ 2cc3d20 #9 2024-05-16 06:16:21 ~8 min ios 📱ipa 📲
✔️ 2cc3d20 #9 2024-05-16 06:17:07 ~9 min android 🤖apk 📲
✔️ edb5b40 #10 2024-05-16 13:02:46 ~4 min tests 📄log
✔️ edb5b40 #10 2024-05-16 13:04:16 ~5 min android-e2e 🤖apk 📲
✔️ edb5b40 #10 2024-05-16 13:05:38 ~7 min android 🤖apk 📲
✔️ edb5b40 #10 2024-05-16 13:07:36 ~9 min ios 📱ipa 📲

@ajayesivan ajayesivan force-pushed the 19635-community-logo-and-title-animation-fix branch 2 times, most recently from c345688 to c6e2e9c Compare April 16, 2024 08:17
@ajayesivan ajayesivan marked this pull request as ready for review April 16, 2024 08:31
@ajayesivan ajayesivan force-pushed the 19635-community-logo-and-title-animation-fix branch from c6e2e9c to 4b1e2bb Compare April 29, 2024 09:40
@ajayesivan ajayesivan force-pushed the 19635-community-logo-and-title-animation-fix branch from 4b1e2bb to a9210d4 Compare May 8, 2024 15:33
{:opacity center-opacity}
nil)
(style/center-content-container
(if (= type :title) (= text-align :center) false)))
Copy link
Member

Choose a reason for hiding this comment

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

center-content-container (and (= type :title) (= text-align :center))?

Comment on lines 261 to 266
(let [center-content-container-style (reanimated/apply-animations-to-style
(if center-opacity
{:opacity center-opacity}
nil)
(style/center-content-container
(if (= type :title) (= text-align :center) false)))
Copy link
Member

@seanstrom seanstrom May 9, 2024

Choose a reason for hiding this comment

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

Hey @ajayesivan 👋 Thanks for the PR 🙏

I have some questions around this refactor, and I want to make sure I understand the code:

  • I was noticing that some components like wallet-networks-center and dropdown-center were always passing centered? as true. Should they continue to do that?
  • I was also noticing that most of the other components like channel-center always passed centered? as false. And that title-center was the only one that checked for (= text-align :center). Should they all now only be centered based on text-align?

I suppose it makes sense that we have a standard way of determining when something should be centered, though I wonder if the code had some special assumptions by always passing false or true.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi @seanstrom, yes, it is a bit confusing and maybe not the ideal solution for this. But first of all, I'm not trying to fix that in this PR. My goal in this PR is to fix the animation.

In this component, only the type title has two alignments: center and left. So the text-align property is only considered when the type is title.

Design: https://www.figma.com/design/WQZcp6S0EnzxdTL4taoKDv/Design-System-for-Mobile?node-id=159-6028&m=dev

@ulisesmac
Copy link
Contributor

Steps to test

Open any community and check the header (The issue was random, so better to check with different communities & multiple times)

Hi @ajayesivan

Did you find the root reason for this bug to happen?
If so, could you please explain it?

From what can I see and since I'm not familiar with this component:
I guess the community header should only appear when you scroll, if so, then maybe the problem is flat-list reporting the scroll position (via the on-scroll event), so please make sure we are using the reanimated/flat-list version instead of the rn/flat-list.

Another cause might be that it takes some time to render or fetch the content of the community, and the flat list is shorter at the beginning so we display the header.

@ajayesivan
Copy link
Contributor Author

Hi @ulisesmac, in this component, we were using the center-opacity prop passed down from the parent component (scroll-page) for animation. We were using center-opacity directly in the style despite it being a shared value. In this PR, I have updated the code to use the 'use-shared-styles' hook instead.

@ajayesivan ajayesivan force-pushed the 19635-community-logo-and-title-animation-fix branch 2 times, most recently from 2fd04c5 to d871bef Compare May 14, 2024 09:02
@ajayesivan ajayesivan moved this from REVIEW to E2E Tests in Pipeline for QA May 15, 2024
@status-im-auto
Copy link
Member

85% of end-end tests have passed

Total executed tests: 52
Failed tests: 6
Expected to fail tests: 2
Passed tests: 44
IDs of failed tests: 727230,704613,702851,727229,702807,702775 
IDs of expected to fail tests: 703495,703503 

Failed tests (6)

Click to expand
  • Rerun failed tests

  • Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807

    Device 2: Find `Text` by `xpath`: `//*[starts-with(@text,'Hey, admin!')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']//*[@content-desc='message-status']/android.widget.TextView`
    Device 2: `Text` is `Sent`

    critical/chats/test_group_chat.py:95: in test_group_chat_join_send_text_messages_push
        self.chats[1].chat_element_by_text(message_to_admin).wait_for_status_to_be('Delivered', timeout=120)
    ../views/chat_view.py:225: in wait_for_status_to_be
        raise TimeoutException("Message status was not changed to %s, it's %s" % (expected_status, current_status))
     Message status was not changed to Delivered, it's Sent
    



    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    # STEP: Getting ETH amount in the wallet of the sender before transaction
    Device 1: Find WalletTab by accessibility id: wallet-stack-tab

    critical/test_wallet.py:117: in test_wallet_send_asset_from_drawer
        sender_balance, receiver_balance, eth_amount_sender, eth_amount_receiver = self._get_balances_before_tx()
    critical/test_wallet.py:39: in _get_balances_before_tx
        self.wallet_1.wallet_tab.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: WalletTab by accessibility id: `wallet-stack-tab` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Swiping right on element SlideButton
    Device 1: Find SlideButton by xpath: //*[@resource-id='slide-button-track']

    critical/test_wallet.py:109: in test_wallet_send_eth
        self.wallet_1.send_asset(address=self.receiver['address'], asset_name='Ether', amount=amount_to_send)
    ../views/wallet_view.py:99: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:86: in confirm_transaction
        self.slide_and_confirm_with_password()
    ../views/wallet_view.py:80: in slide_and_confirm_with_password
        self.slide_button_track.slide()
    ../views/base_view.py:257: in slide
        self.swipe_right_on_element(width_percentage=1.3, start_x=100)
    ../views/base_element.py:308: in swipe_right_on_element
        location, size = self.get_element_coordinates()
    ../views/base_element.py:294: in get_element_coordinates
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: SlideButton by xpath: `//*[@resource-id='slide-button-track']` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613

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

    critical/test_deep_and_universal_links.py:70: in test_links_open_universal_links_from_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))]))
     Community 'Open community for e2e' was not requested to join by the url https://status.app/c/G1AAAGR0G-IRb2YJD4lRXwLusAFnGrDHGNl6Wt55MIARwVYvarnO873011-fdVSz1kHSan-qq0G96vOaMqyTRhJnQV74KCUr#zQ3shb9irJR66rhG1E8sQZX8pDU3dpGm4daYSmPVDd2e73ewE
    



    Device sessions

    2. test_links_deep_links, id: 702775

    Device 1: Find BrowserTab by accessibility id: browser-stack-tab
    Device 1: Tap on found: BrowserTab

    critical/test_deep_and_universal_links.py:114: in test_links_deep_links
        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))]))
     Community 'Open community for e2e' was not requested to join by the deep link status.app://c/G1AAAGR0G-IRb2YJD4lRXwLusAFnGrDHGNl6Wt55MIARwVYvarnO873011-fdVSz1kHSan-qq0G96vOaMqyTRhJnQV74KCUr#zQ3shb9irJR66rhG1E8sQZX8pDU3dpGm4daYSmPVDd2e73ewE
    



    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851

    Device 1: Tap on found: Button
    # STEP: Device1 check that contact appeared in contact list mutually

    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:703: in urlopen
        httplib_response = self._make_request(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:449: in _make_request
        six.raise_from(e, None)
    <string>:3: in raise_from
        ???
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:444: in _make_request
        httplib_response = conn.getresponse()
    /usr/lib/python3.10/http/client.py:1375: in getresponse
        response.begin()
    /usr/lib/python3.10/http/client.py:318: in begin
        version, status, reason = self._read_status()
    /usr/lib/python3.10/http/client.py:287: in _read_status
        raise RemoteDisconnected("Remote end closed connection without"
    E   http.client.RemoteDisconnected: Remote end closed connection without response
    
    During handling of the above exception, another exception occurred:
    activity_center/test_activity_center.py:141: in test_activity_center_contact_request_accept_swipe_mark_all_as_read
        self.device_2.just_fyi('Device1 check that contact appeared in contact list mutually')
    ../views/base_view.py:410: in just_fyi
        self.driver.execute_script("sauce:context=STEP: %s" % some_str)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:405: in execute_script
        return self.execute(command, {"script": script, "args": converted_args})["value"]
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:343: in execute
        response = self.command_executor.execute(driver_command, params)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py:291: in execute
        return self._request(command_info[0], url, body=data)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py:312: in _request
        response = self._conn.request(method, url, body=body, headers=headers)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/request.py:78: in request
        return self.request_encode_body(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/request.py:170: in request_encode_body
        return self.urlopen(method, url, **extra_kw)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/poolmanager.py:376: in urlopen
        response = conn.urlopen(method, u.request_uri, **kw)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:787: in urlopen
        retries = retries.increment(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/util/retry.py:550: in increment
        raise six.reraise(type(error), error, _stacktrace)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/packages/six.py:769: in reraise
        raise value.with_traceback(tb)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:703: in urlopen
        httplib_response = self._make_request(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:449: in _make_request
        six.raise_from(e, None)
    <string>:3: in raise_from
        ???
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:444: in _make_request
        httplib_response = conn.getresponse()
    /usr/lib/python3.10/http/client.py:1375: in getresponse
        response.begin()
    /usr/lib/python3.10/http/client.py:318: in begin
        version, status, reason = self._read_status()
    /usr/lib/python3.10/http/client.py:287: in _read_status
        raise RemoteDisconnected("Remote end closed connection without"
     ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
    



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

    Click to expand

    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 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 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 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_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 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 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_decline, id: 702850
    Device sessions

    @ajayesivan ajayesivan force-pushed the 19635-community-logo-and-title-animation-fix branch from d871bef to 2cc3d20 Compare May 16, 2024 06:07
    @mariia-skrypnyk mariia-skrypnyk moved this from E2E Tests to IN TESTING in Pipeline for QA May 16, 2024
    @mariia-skrypnyk mariia-skrypnyk self-assigned this May 16, 2024
    @mariia-skrypnyk
    Copy link

    Hi @ajayesivan !

    Thanks for your fix.
    Looks good on both plaforms.

    E2E are known and not related.
    Please, merge your PR!

    @mariia-skrypnyk mariia-skrypnyk moved this from IN TESTING to MERGE in Pipeline for QA May 16, 2024
    @ajayesivan ajayesivan force-pushed the 19635-community-logo-and-title-animation-fix branch from 2cc3d20 to edb5b40 Compare May 16, 2024 12:58
    @ajayesivan ajayesivan merged commit bd5fb0d into develop May 16, 2024
    6 checks passed
    Pipeline for QA automation moved this from MERGE to DONE May 16, 2024
    @ajayesivan ajayesivan deleted the 19635-community-logo-and-title-animation-fix branch May 16, 2024 13:08
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Development

    Successfully merging this pull request may close these issues.

    Community logo and title stucks within banner
    6 participants