fix/75255 - migrate icons/illustration communication & socials - money & finance to lazy loading#75510
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
@mollfpr Sorry for the delay, I was busy with local work, it should be ready soon. Thanks |
|
@mollfpr Done ✅ |
|
Thank you @NJ-2020! Could you resolve the conflict one last time? 🙏 |
|
Done |
|
@NJ-2020 You have conflicts, can you take a look? |
Resolved ☑️ |
|
@mollfpr Let's get this merged 🙏 |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/mollfpr in version: 9.2.85-0 🚀
|
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.2.85-7 🚀
|
Explanation of Change
This PR migrate icons & illustration to lazy loading:
Icons:
ChatBubbleChatBubblesChatBubbleCounterChatBubbleReplyChatBubbleUnreadCommentBubblesConciergeEmojiFacebookInstagramLinkedinPodcastTwitterYoutubeMailBankBillCashCoinsCreditCardCreditCardExclamationCreditCardHourglassEReceiptIconInvoiceInvoiceGenericMoneyBagMoneyCircleMoneyHourglassMoneySearchMoneyWavingReceiptReceiptMultipleReceiptPlaceholderPlusReceiptPlusReceiptScanReceiptSlashReceiptBodyReplaceReceiptTransferWalletIllustration:
ChatBubblesFixed Issues
$ #75255
PROPOSAL: #75255 (comment)
Tests
Open the following pages and verify the icon is loaded properly:
AddPaymentMethodMenu: KYC wall payment method selection (appears during Pay flow when selecting payment method)EReceiptThumbnail: Transaction receipt views, Per Diem receiptsEmojiPickerButton: Report composer, Message edit mode (Chat → Emoji button in composer)EmojiPickerButtonDropdown: Custom Status page (Settings → Status → Emoji dropdown)FloatingCameraButton: Bottom navigation bar floating camera button (web only, resize the screen to be narrow layout)FloatingReceiptButton: Left sidebar, above FAB button (wide/web layout only)MigratedUserWelcomeModal: Modal for migrated users (appears after login for users migrated from classic)MoneyReportHeader: Expense Report page header (Expense Report with multiple transactions → Header)MoneyRequestHeader: Single Expense page header (Single transaction IOU report → Header)MoneyRequestReportTransactionList: Expense Report transaction list sectionSearchMoneyRequestReportEmptyState: Expense Report empty state (when no matching transactions)PDFThumbnailError: PDF thumbnail error state (when PDF preview fails to load)PopoverMenu: Various dropdown menus (FAB, ThreeDots, Composer +, Search, Video player)PromotedActionsBar: Report Details or Profile page (action buttons: Join/Message/Share/Pin)ReceiptAlternativeMethods: Scan receipt step (FAB → Create Expense → Scan tab → alternative methods section)ReceiptEmptyState: Expense view without receipt (placeholder with + icon)MoneyRequestReportPreviewContent: Chat message expense report preview (IOU preview card in chat)ReportActionItemImage: Receipt thumbnails in chat and expense viewsSettlementButton: Pay button (Search → Pay, Expense confirmation → Pay, Report header)TabSelector: Tabbed pages (Share page, Create Expense tabs, New Chat page, Receipt Partner invite)ChatBubbleCell: Transaction list rows in Search (comment count indicator)ReceiptCell: Transaction list rows in Search (receipt thumbnail)TypeCell: Transaction list rows in Search (expense type icon: Card/Cash/Distance)useBulkPayOptions: Search page bulk actions (Select transactions → Bulk pay dropdown)usePaymentOptions: MoneyReportHeader Pay button options dropdownuseSearchTypeMenu: Search type popover menu (Search header dropdown, narrow layout)QuickActionUtils(getQuickActionIcon): FAB quick action icon (Home → FAB menu → Quick action contextual icon)ReportUtils(getAddExpenseDropdownOptions): Add Expense dropdowns (Expense Report header/list/preview → + Add)SearchUIUtils(getSuggestedSearches,createTypeMenuSections): Search sidebar menu items/iconsgetIconForAction: Expense action icons (FAB menu, Composer + menu, Quick actions)SetupMethod: Enable Payments Add Bank Account page (Settings → Wallet → Add Bank Account)Finish(NonUSD): Non-USD Bank Account finish step (Workspace → Bank Account → Non-USD flow completion)FinishChatCard: USD Bank Account finish step (Workspace → Bank Account → USD flow completion)VerifiedBankAccountFlowEntryPoint: Bank account setup entry (Reimbursement account flow start)SearchTypeMenu: Search sidebar menu (Search page → Left sidebar, wide layout)ShareCodePage: Share QR code page (Settings → Share Code, or Report Details → Share)AttachmentPickerWithMenuItems: Report composer + menu (Chat → + button in composer)FloatingActionButtonAndPopover: FAB menu (Home → Green + button)SplitBillDetailsPage: Split bill details (Chat → Split transaction → View details)InitialSettingsPage: Main settings page (Bottom nav → Account/Settings tab)CardSection: Subscription card section (Settings → Subscription → Card section)CardSectionActions: Subscription card actions (Settings → Subscription → Card → Actions menu, web only)CardSectionDataEmpty: Subscription no card state (Settings → Subscription → Empty card, native only)SubscriptionSettings: Subscription settings section (Settings → Subscription → Settings options)TaxExemptActions: Tax exemption menu (Settings → Subscription → Tax Exempt → Actions, web only)TransferBalancePage: Transfer balance page (Settings → Wallet → Transfer Balance)Socials: Sign-in page footer (Sign-in page → Social media links at bottom)WorkspaceMemberDetailsPage: Workspace member details (Workspace → Members → Select member)WorkspaceOwnerChangeErrorPage: Owner change error (Workspace → Change Owner flow → Error)WorkspaceReceiptPartnersPage: Receipt partners page (Workspace → Receipt Partners)Verify that no errors appear in the JS console
Offline tests
Same as Tests
QA Steps
Same as Tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop