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

[#21930] Keycard - Back up keycard #21990

Merged
merged 3 commits into from
Jan 31, 2025

Conversation

flexsurfer
Copy link
Member

@flexsurfer flexsurfer commented Jan 27, 2025

fixes: #21930

image

All flows have been implemented

Also Manage card in setting has been implemented
image

@status-im-auto
Copy link
Member

status-im-auto commented Jan 27, 2025

Jenkins Builds

Click to see older builds (13)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 1191c98 #1 2025-01-27 14:44:00 ~4 min tests 📄log
✔️ 1191c98 #1 2025-01-27 14:48:13 ~8 min android-e2e 🤖apk 📲
✔️ 1191c98 #1 2025-01-27 14:49:47 ~10 min android 🤖apk 📲
✔️ 1191c98 #1 2025-01-27 14:52:36 ~13 min ios 📱ipa 📲
✔️ 71657f6 #2 2025-01-28 13:47:01 ~4 min tests 📄log
✔️ 71657f6 #2 2025-01-28 13:50:29 ~8 min android-e2e 🤖apk 📲
✔️ 71657f6 #2 2025-01-28 13:50:47 ~8 min android 🤖apk 📲
✔️ 71657f6 #2 2025-01-28 13:53:53 ~11 min ios 📱ipa 📲
✔️ b81fbef #3 2025-01-28 14:57:46 ~4 min tests 📄log
✔️ b81fbef #3 2025-01-28 15:01:27 ~8 min android-e2e 🤖apk 📲
✔️ b81fbef #3 2025-01-28 15:01:53 ~8 min android 🤖apk 📲
✔️ b81fbef #3 2025-01-28 15:04:11 ~10 min ios 📱ipa 📲
✔️ 9ad3436 #4 2025-01-30 09:06:22 ~5 min tests 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ c09a0d6 #5 2025-01-30 09:12:01 ~4 min tests 📄log
✔️ c09a0d6 #5 2025-01-30 09:14:26 ~6 min android-e2e 🤖apk 📲
✔️ c09a0d6 #5 2025-01-30 09:15:59 ~8 min android 🤖apk 📲
✔️ c09a0d6 #5 2025-01-30 09:17:58 ~10 min ios 📱ipa 📲
5cddf68 #6 2025-01-31 08:21:15 ~3 min ios 📄log
✔️ 5cddf68 #6 2025-01-31 08:22:06 ~4 min tests 📄log
✔️ 5cddf68 #6 2025-01-31 08:24:46 ~7 min android-e2e 🤖apk 📲
✔️ 5cddf68 #6 2025-01-31 08:25:50 ~8 min android 🤖apk 📲
✔️ 5cddf68 #7 2025-01-31 11:15:58 ~11 min ios 📱ipa 📲

@flexsurfer flexsurfer changed the title [WIP] [#21930] Keycard - Back up keycard [#21930] Keycard - Back up keycard Jan 28, 2025
src/status_im/contexts/keycard/events.cljs Outdated Show resolved Hide resolved
src/status_im/contexts/settings/keycard/view.cljs Outdated Show resolved Hide resolved
src/status_im/contexts/keycard/backup/view.cljs Outdated Show resolved Hide resolved
@flexsurfer flexsurfer force-pushed the feature/Keycard---Back-up-keycard-#21930- branch from 71657f6 to b81fbef Compare January 28, 2025 14:53
@flexsurfer
Copy link
Member Author

thank you @Parveshdhull

@VolodLytvynenko VolodLytvynenko self-assigned this Jan 28, 2025
@status-im-auto

This comment was marked as outdated.

@VolodLytvynenko

This comment was marked as resolved.

@status-im-auto

This comment was marked as outdated.

@flexsurfer
Copy link
Member Author

good catch @VolodLytvynenko , thanks, fixed

@flexsurfer flexsurfer force-pushed the feature/Keycard---Back-up-keycard-#21930- branch from 9ad3436 to c09a0d6 Compare January 30, 2025 09:07
@status-im-auto
Copy link
Member

90% of end-end tests have passed

Total executed tests: 58
Failed tests: 5
Expected to fail tests: 1
Passed tests: 52
IDs of failed tests: 702840,741054,702839,702859,702869 
IDs of expected to fail tests: 702844 

Failed tests (5)

Click to expand
  • Rerun failed tests

  • Class TestCommunityOneDeviceMerged:

    1. test_community_undo_delete_message, id: 702869

    Device 1: Tap on found: SendMessageButton
    Device 1: Looking for a message by text: message to delete and undo

    critical/chats/test_public_chat_browsing.py:76: in test_community_undo_delete_message
        self.channel.chat_element_by_text(message_to_delete).wait_for_sent_state()
    ../views/chat_view.py:133: in wait_for_sent_state
        xpath="//*[@content-desc='message-sent']").is_element_displayed(wait_time)
    ../views/base_element.py:206: in is_element_displayed
        return self.wait_for_visibility_of_element(sec, ignored_exceptions=ignored_exceptions)
    ../views/base_element.py:136: in wait_for_visibility_of_element
        .until(expected_conditions.visibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@2@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@2@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:152: in _predicate
        return _element_if_visible(driver.find_element(*locator))
    ../../../../status-app-prs-rerun@2@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@2@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@2@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     Error occurred for request - /wd/hub/session/c668a75a-4653-4b28-9685-aef06a65955d/element, error - read tcp 10.169.22.220:34684->10.100.62.181:40043: read: connection timed out
    



    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_emoji_send_copy_paste_reply, id: 702840

    Device 2: Double tap on: Button
    Device 2: Find Button by xpath: //*[@text="Reply"]

    critical/chats/test_public_chat_browsing.py:562: in test_community_emoji_send_copy_paste_reply
        self.channel_2.quote_message(emoji_unicode)
    ../views/chat_view.py:680: in quote_message
        self.reply_message_button.double_click()
    ../views/base_element.py:113: in double_click
        [self.find_element().click() for _ in range(2)]
    ../views/base_element.py:113: in <listcomp>
        [self.find_element().click() for _ in range(2)]
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: Button by xpath: `//*[@text="Reply"]` 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
    



    Device sessions

    2. test_community_message_delete, id: 702839

    Device 2: Looking for a message by text: delete for me
    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'delete for me')]

    critical/chats/test_public_chat_browsing.py:408: in test_community_message_delete
        self.channel_2.delete_message_in_chat(message_to_delete_for_me, everyone=False)
    ../views/chat_view.py:666: in delete_message_in_chat
        self.chat_element_by_text(message).message_body.long_press_without_release()
    ../views/base_element.py:315: in long_press_without_release
        action.click_and_hold(self.find_element()).perform()
    ../../../../status-app-prs-rerun@2@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/common/action_chains.py:103: in perform
        self.w3c_actions.perform()
    ../../../../status-app-prs-rerun@2@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/common/actions/action_builder.py:96: in perform
        self.driver.execute(Command.W3C_ACTIONS, enc)
    ../../../../status-app-prs-rerun@2@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@2@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: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'delete for me')]' is not linked to the same object 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: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'delete for me')]' is not linked to the same object in DOM anymore
    E   	at io.appium.uiautomator2.model.ElementsCache.restore(ElementsCache.java:122)
    E   	at io.appium.uiautomator2.model.ElementsCache.get(ElementsCache.java:153)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.extractElementCoordinates(ActionsTokenizer.java:214)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.extractCoordinates(ActionsTokenizer.java:307)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.extractCoordinates(ActionsTokenizer.java:260)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.applyPointerActionToEventsMapping(ActionsTokenizer.java:452)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.tokenize(ActionsTokenizer.java:574)
    E   	at io.appium.uiautomator2.handler.W3CActions.safeHandle(W3CActions.java:78)
    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:77)
    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)
    



    Device sessions

    3. test_community_one_image_send_reply, id: 702859

    Device 2: Looking for a message by text: description
    Device 2: Find ChatElementByText by xpath: //*[starts-with(@text,'description')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']

    critical/chats/test_public_chat_browsing.py:524: in test_community_one_image_send_reply
        self.channel_2.set_reaction(message=image_description)
    ../views/chat_view.py:691: in set_reaction
        element.wait_for_element()
    ../views/base_element.py:120: in wait_for_element
        raise TimeoutException(
     Device `2`: `Button` by` accessibility id`: `reaction-thumbs-up` is not found on the screen after wait_for_element
    



    Device sessions

    Class TestFallbackMultipleDevice:

    1. test_fallback_add_key_pair, id: 741054

    Device 1: Swiping left on element Button
    Device 1: Find Button by xpath: //android.view.ViewGroup[contains(@content-desc,'Imported account')]

    critical/test_fallback.py:212: in test_fallback_add_key_pair
        wallet_1.get_account_element(account_name=imported_key_pair_account_name).swipe_left_on_element()
    ../views/base_element.py:281: in swipe_left_on_element
        location, size = self.get_element_coordinates()
    ../views/base_element.py:274: in get_element_coordinates
        element = self.find_element()
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//android.view.ViewGroup[contains(@content-desc,'Imported account')]` 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
    



    Expected to fail tests (1)

    Click to expand

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Device 2: Find EmojisNumber by xpath: //*[starts-with(@text,'https://m.youtube.com/watch?v=Je7yErjEVt4')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-4']/android.widget.TextView[2]
    Device 2: Element EmojisNumber text is equal to 1

    critical/chats/test_public_chat_browsing.py:662: in test_community_links_with_previews_github_youtube_twitter_gif_send_enable
        self.errors.verify_no_errors()
    base_test_case.py:179: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Device 1: No preview image is shown for https://github.com/status-im/status-mobile/pull/11707
    E    Device 1: No preview is loaded for url https://youtu.be/Je7yErjEVt4
    E    Device 1: No preview is loaded for url https://www.youtube.com/watch?v=XN-SVmuJH2g&list=PLbrz7IuP1hrgNtYe9g6YHwHO6F3OqNMao
    E    Device 1: No preview is loaded for url https://m.youtube.com/watch?v=Je7yErjEVt4 
    

    [[Youtube links preview is not loaded on LambdaTest emulators, needs investigation]]

    Device sessions

    Passed tests (52)

    Click to expand

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    2. test_activity_center_mentions, id: 702957
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    2. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    3. test_add_contact_field_validation, id: 702777
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_profile_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

    5. test_community_discovery, id: 703503
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202
    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    3. test_group_chat_offline_pn, id: 702808
    Device sessions

    4. test_group_chat_pin_messages, id: 702732
    Device sessions

    5. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    6. test_group_chat_mute_chat, id: 703495
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links_profile, id: 702775
    Device sessions

    3. test_deep_links_communities, id: 739307
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845
    Device sessions

    2. test_community_mentions_push_notification, id: 702786
    Device sessions

    3. test_community_markdown_support, id: 702809
    Device sessions

    4. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    2. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    3. test_community_unread_messages_badge, id: 702841
    Device sessions

    4. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    5. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    6. test_community_message_edit, id: 702843
    Device sessions

    7. test_community_several_images_send_reply, id: 703194
    Device sessions

    Class TestFallbackMultipleDevice:

    1. test_fallback_sync_with_error, id: 740220
    2. test_fallback_with_correct_seed_phrase, id: 740221
    3. test_fallback_validate_seed_phrase, id: 740222

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    2. test_wallet_swap_flow_mainnet, id: 741555
    3. test_wallet_balance_mainnet, id: 740490
    4. test_wallet_send_flow_mainnet, id: 741554

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_edit_message, id: 702855
    Device sessions

    2. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    5. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    6. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    7. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    8. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestWalletMultipleDevice:

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

    @status-im-auto
    Copy link
    Member

    100% of end-end tests have passed

    Total executed tests: 10
    Failed tests: 0
    Expected to fail tests: 0
    Passed tests: 10
    

    Passed tests (10)

    Click to expand

    Class TestWalletMultipleDevice:

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

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    2. test_wallet_swap_flow_mainnet, id: 741555
    3. test_wallet_balance_mainnet, id: 740490
    4. test_wallet_send_flow_mainnet, id: 741554

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Copy link
    Contributor

    @ilmotta ilmotta 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 @flexsurfer. I did a quick review, no outstanding feedback on my part. PR LGTM, just left two comments. My comment about not calling rf/dispatch directly inside the event handler is the only one I think should be addressed.

    src/status_im/contexts/keycard/backup/events.cljs Outdated Show resolved Hide resolved
    (fn [{:keys [db]} [pin]]
    {:db (assoc-in db [:keycard :backup :pin] pin)}))

    (defn- save-pin-and-navigate-to-phrase
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    A pattern I see in this namespace is that some functions could be actual events. For instance, the :on-success of :keycard/verify-pin could dispatch a new event, let's say named :keycard/save-pin-and-navigate-to-phrase. The small advantage is that you would then be able to use :fx to dispatch all effects instead of a series of imperative rf/dispatch calls, which is more friendly with the re-frame queue.

    Copy link
    Member Author

    @flexsurfer flexsurfer Jan 31, 2025

    Choose a reason for hiding this comment

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

    thanks Icaro, i don't really think there is a difference in re-frame queue, but i really don't like using dispatch inside events, especially when there are only dispatches in the event

    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    Yeah @flexsurfer, the difference for the queue is certainly quite minimal to non-existent. Re-dispatching from event handlers like :on-success is helpful sometimes for devs using the REPL because they can easily re-run and debug the success handler directly and there's a bit more visibility in re-frisk. Both of these advantages are also quite small, but it's worth pointing out.

    @VolodLytvynenko
    Copy link
    Contributor

    Hi @flexsurfer,

    Thank you for the fixes! Issue 1 is resolved.

    I haven’t finished testing yet, as this PR requires some time to cover all flows. Many flows are already completed, and I will finish the rest tomorrow. Just let you know the PR is in test process and everything look ok for now

    @flexsurfer
    Copy link
    Member Author

    flexsurfer commented Jan 31, 2025

    thanks @VolodLytvynenko , i forgot to mention, i haven't implemented The phrase you’ve entered not matching key pair that you want to back up case, i'll create a separate issue

    @VolodLytvynenko
    Copy link
    Contributor

    @flexsurfer Sorry for the testing delay. I had to switch to another PR again. No issues from my side—this PR is ready to be merged.

    @flexsurfer flexsurfer merged commit 3899368 into develop Jan 31, 2025
    5 checks passed
    @VolodLytvynenko
    Copy link
    Contributor

    thanks @VolodLytvynenko , i forgot to mention, i haven't implemented The phrase you’ve entered not matching key pair that you want to back up case, i'll create a separate issue

    hi @flexsurfer Created it as a follow up #22013

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Status: DONE
    Development

    Successfully merging this pull request may close these issues.

    Keycard - Back up keycard
    5 participants