diff --git a/Gemfile.lock b/Gemfile.lock
index beb2c176293..e1b4fc2ec7e 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -3,11 +3,12 @@ GEM
specs:
CFPropertyList (3.0.6)
rexml
- activesupport (7.0.8)
+ activesupport (6.1.7.7)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
+ zeitwerk (~> 2.3)
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
algoliasearch (1.27.5)
@@ -80,7 +81,8 @@ GEM
declarative (0.0.20)
digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0)
- domain_name (0.6.20240107)
+ domain_name (0.5.20190701)
+ unf (>= 0.0.5, < 1.0.0)
dotenv (2.8.1)
emoji_regex (3.2.3)
escape (0.0.4)
@@ -187,11 +189,11 @@ GEM
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.3.1)
- google-cloud-storage (1.47.0)
+ google-cloud-storage (1.37.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
- google-apis-storage_v1 (~> 0.31.0)
+ google-apis-storage_v1 (~> 0.1)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
@@ -260,6 +262,9 @@ GEM
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
uber (0.1.0)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.9.1)
unicode-display_width (2.5.0)
word_wrap (1.0.0)
xcodeproj (1.23.0)
@@ -273,6 +278,7 @@ GEM
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
+ zeitwerk (2.6.13)
PLATFORMS
arm64-darwin-21
@@ -292,4 +298,4 @@ RUBY VERSION
ruby 2.6.10p210
BUNDLED WITH
- 2.4.19
+ 2.3.22
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 539ef47066e..0ceafe37dc4 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -98,8 +98,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
- versionCode 1001046002
- versionName "1.4.60-2"
+ versionCode 1001046008
+ versionName "1.4.60-8"
}
flavorDimensions "default"
diff --git a/assets/images/simple-illustrations/simple-illustration__abacus.svg b/assets/images/simple-illustrations/simple-illustration__abacus.svg
new file mode 100644
index 00000000000..df94ab65398
--- /dev/null
+++ b/assets/images/simple-illustrations/simple-illustration__abacus.svg
@@ -0,0 +1,43 @@
+
+
+
diff --git a/assets/images/simple-illustrations/simple-illustration__binoculars.svg b/assets/images/simple-illustrations/simple-illustration__binoculars.svg
new file mode 100644
index 00000000000..381be898887
--- /dev/null
+++ b/assets/images/simple-illustrations/simple-illustration__binoculars.svg
@@ -0,0 +1,50 @@
+
+
+
diff --git a/assets/images/simple-illustrations/simple-illustration__company-card.svg b/assets/images/simple-illustrations/simple-illustration__company-card.svg
new file mode 100644
index 00000000000..4121bbeeb20
--- /dev/null
+++ b/assets/images/simple-illustrations/simple-illustration__company-card.svg
@@ -0,0 +1,38 @@
+
+
+
diff --git a/assets/images/simple-illustrations/simple-illustration__piggybank.svg b/assets/images/simple-illustrations/simple-illustration__piggybank.svg
new file mode 100644
index 00000000000..a9cf2b02c5d
--- /dev/null
+++ b/assets/images/simple-illustrations/simple-illustration__piggybank.svg
@@ -0,0 +1,50 @@
+
diff --git a/assets/images/simple-illustrations/simple-illustration__receiptupload.svg b/assets/images/simple-illustrations/simple-illustration__receiptupload.svg
new file mode 100644
index 00000000000..b8fe5101715
--- /dev/null
+++ b/assets/images/simple-illustrations/simple-illustration__receiptupload.svg
@@ -0,0 +1,22 @@
+
+
+
diff --git a/assets/images/simple-illustrations/simple-illustration__splitbill.svg b/assets/images/simple-illustrations/simple-illustration__splitbill.svg
new file mode 100644
index 00000000000..dfed7535ee9
--- /dev/null
+++ b/assets/images/simple-illustrations/simple-illustration__splitbill.svg
@@ -0,0 +1,55 @@
+
+
+
diff --git a/docs/_data/_routes.yml b/docs/_data/_routes.yml
index b608e9cd02b..20de9415bcd 100644
--- a/docs/_data/_routes.yml
+++ b/docs/_data/_routes.yml
@@ -17,73 +17,74 @@ platforms:
- href: getting-started
title: Getting Started
icon: /assets/images/accounting.svg
- description: From setting up your account to ensuring you get the most out of Expensify’s suite of features, click here to get started on streamlining your expense management journey.
-
- - href: settings
- title: Settings
- icon: /assets/images/gears.svg
- description: Discover how to personalize your profile, add secondary logins, and grant delegated access to employees with our comprehensive guide on Account Settings.
+ description: Set up your account to optimize Expensify's features.
- - href: bank-accounts-and-credit-cards
- title: Bank Accounts & Credit Cards
- icon: /assets/images/bank-card.svg
- description: Find out how to connect Expensify to your financial institutions, track credit card transactions, and best practices for reconciling company cards.
+ - href: workspaces
+ title: Workspaces
+ icon: /assets/images/shield.svg
+ description: Configure rules, settings, and limits for your company’s spending.
- - href: expensify-billing
- title: Expensify Billing
- icon: /assets/images/subscription-annual.svg
- description: Review Expensify's subscription options, plan types, and payment methods.
+ - href: expenses
+ title: Expenses
+ icon: /assets/images/money-into-wallet.svg
+ description: Learn more about expense tracking and submission.
- href: reports
title: Reports
icon: /assets/images/money-receipt.svg
description: Set approval workflows and use Expensify’s automated report features.
+ - href: domains
+ title: Domains
+ icon: /assets/images/domains.svg
+ description: Claim and verify your company’s domain to access additional management and security features.
+
+ - href: bank-accounts-and-payments
+ title: Bank Accounts & Payments
+ icon: /assets/images/send-money.svg
+ description: Send direct reimbursements, pay invoices, and receive payment.
+
+ - href: connect-credit-cards
+ title: Connect Credit Cards
+ icon: /assets/images/bank-card.svg
+ description: Track credit card transactions and reconcile company cards.
+
- href: expensify-card
title: Expensify Card
icon: /assets/images/hand-card.svg
- description: Explore how the Expensify Card combines convenience and security to enhance everyday business transactions. Discover how to apply for, oversee, and maximize your card perks here.
+ description: Explore the perks and benefits of the Expensify Card.
+
+ - href: copilots-and-delegates
+ title: Copilots & Delegates
+ icon: /assets/images/envelope-receipt.svg
+ description: Assign Copilots and delegate report approvals.
- href: expensify-partner-program
title: Expensify Partner Program
icon: /assets/images/handshake.svg
- description: Discover how to get the most out of Expensify as an ExpensifyApproved! accountant partner. Learn how to set up your clients, receive CPE credits, and take advantage of your partner discount.
-
- - href: expenses
- title: Expenses
- icon: /assets/images/money-into-wallet.svg
- description: Learn more about expense tracking and submission.
-
- - href: insights-and-custom-reporting
- title: Insights & Custom Reporting
- icon: /assets/images/monitor.svg
- description: From exporting reports to creating custom templates, here is where you can learn more about Expensify's versatile export options.
+ description: Discover the benefits of becoming an Expensify Partner.
- href: integrations
title: Integrations
icon: /assets/images/workflow.svg
- description: Enhance Expensify’s capabilities by integrating it with your accounting or HR software. Here is where you can learn more about creating a synchronized financial management ecosystem.
+ description: Integrate with accounting or HR software to streamline expense approvals.
- - href: copilots-and-delegates
- title: Copilots & Delegates
- icon: /assets/images/envelope-receipt.svg
- description: Assign Copilots and delegate report approvals.
-
- - href: send-payments
- title: Send Payments
- icon: /assets/images/send-money.svg
- description: Uncover step-by-step guidance on sending direct reimbursements to employees, paying an invoice to a vendor, and utilizing third-party payment options.
-
- - href: workspaces
- title: Workspaces
- icon: /assets/images/shield.svg
- description: Configure rules, settings, and limits for your company’s spending.
+ - href: spending-insights
+ title: Spending Insights
+ icon: /assets/images/monitor.svg
+ description: Create custom export templates to understand spending insights.
- - href: domains
- title: Domains
- icon: /assets/images/domains.svg
- description: Claim and verify your company’s domain to access additional management and security features.
-
+ - href: settings
+ title: Settings
+ icon: /assets/images/gears.svg
+ description: Manage profile settings and notifications.
+
+ - href: expensify-billing
+ title: Expensify Billing
+ icon: /assets/images/subscription-annual.svg
+ description: Review Expensify's subscription options, plan types, and payment methods.
+
+
- href: new-expensify
title: New Expensify
hub-title: New Expensify - Help & Resources
diff --git a/docs/articles/expensify-classic/send-payments/Pay-Bills.md b/docs/articles/expensify-classic/bank-accounts-and-payments/Pay-Bills.md
similarity index 100%
rename from docs/articles/expensify-classic/send-payments/Pay-Bills.md
rename to docs/articles/expensify-classic/bank-accounts-and-payments/Pay-Bills.md
diff --git a/docs/articles/expensify-classic/send-payments/Reimbursing-Reports.md b/docs/articles/expensify-classic/bank-accounts-and-payments/Reimbursing-Reports.md
similarity index 100%
rename from docs/articles/expensify-classic/send-payments/Reimbursing-Reports.md
rename to docs/articles/expensify-classic/bank-accounts-and-payments/Reimbursing-Reports.md
diff --git a/docs/articles/expensify-classic/send-payments/Third-Party-Payments.md b/docs/articles/expensify-classic/bank-accounts-and-payments/Third-Party-Payments.md
similarity index 100%
rename from docs/articles/expensify-classic/send-payments/Third-Party-Payments.md
rename to docs/articles/expensify-classic/bank-accounts-and-payments/Third-Party-Payments.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/Global-Reimbursements.md b/docs/articles/expensify-classic/connect-credit-cards/Global-Reimbursements.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/Global-Reimbursements.md
rename to docs/articles/expensify-classic/connect-credit-cards/Global-Reimbursements.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/Personal-Credit-Cards.md b/docs/articles/expensify-classic/connect-credit-cards/Personal-Credit-Cards.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/Personal-Credit-Cards.md
rename to docs/articles/expensify-classic/connect-credit-cards/Personal-Credit-Cards.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/business-bank-accounts/Business-Bank-Accounts-AUD.md b/docs/articles/expensify-classic/connect-credit-cards/business-bank-accounts/Business-Bank-Accounts-AUD.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/business-bank-accounts/Business-Bank-Accounts-AUD.md
rename to docs/articles/expensify-classic/connect-credit-cards/business-bank-accounts/Business-Bank-Accounts-AUD.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/business-bank-accounts/Business-Bank-Accounts-USD.md b/docs/articles/expensify-classic/connect-credit-cards/business-bank-accounts/Business-Bank-Accounts-USD.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/business-bank-accounts/Business-Bank-Accounts-USD.md
rename to docs/articles/expensify-classic/connect-credit-cards/business-bank-accounts/Business-Bank-Accounts-USD.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/CSV-Import.md b/docs/articles/expensify-classic/connect-credit-cards/company-cards/CSV-Import.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/CSV-Import.md
rename to docs/articles/expensify-classic/connect-credit-cards/company-cards/CSV-Import.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Commercial-Card-Feeds.md b/docs/articles/expensify-classic/connect-credit-cards/company-cards/Commercial-Card-Feeds.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Commercial-Card-Feeds.md
rename to docs/articles/expensify-classic/connect-credit-cards/company-cards/Commercial-Card-Feeds.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Company-Card-Settings.md b/docs/articles/expensify-classic/connect-credit-cards/company-cards/Company-Card-Settings.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Company-Card-Settings.md
rename to docs/articles/expensify-classic/connect-credit-cards/company-cards/Company-Card-Settings.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Connect-ANZ.md b/docs/articles/expensify-classic/connect-credit-cards/company-cards/Connect-ANZ.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Connect-ANZ.md
rename to docs/articles/expensify-classic/connect-credit-cards/company-cards/Connect-ANZ.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Direct-Bank-Connections.md b/docs/articles/expensify-classic/connect-credit-cards/company-cards/Direct-Bank-Connections.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Direct-Bank-Connections.md
rename to docs/articles/expensify-classic/connect-credit-cards/company-cards/Direct-Bank-Connections.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Reconciliation.md b/docs/articles/expensify-classic/connect-credit-cards/company-cards/Reconciliation.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Reconciliation.md
rename to docs/articles/expensify-classic/connect-credit-cards/company-cards/Reconciliation.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Troubleshooting.md b/docs/articles/expensify-classic/connect-credit-cards/company-cards/Troubleshooting.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/company-cards/Troubleshooting.md
rename to docs/articles/expensify-classic/connect-credit-cards/company-cards/Troubleshooting.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/deposit-accounts/Deposit-Accounts-AUD.md b/docs/articles/expensify-classic/connect-credit-cards/deposit-accounts/Deposit-Accounts-AUD.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/deposit-accounts/Deposit-Accounts-AUD.md
rename to docs/articles/expensify-classic/connect-credit-cards/deposit-accounts/Deposit-Accounts-AUD.md
diff --git a/docs/articles/expensify-classic/bank-accounts-and-credit-cards/deposit-accounts/Deposit-Accounts-USD.md b/docs/articles/expensify-classic/connect-credit-cards/deposit-accounts/Deposit-Accounts-USD.md
similarity index 100%
rename from docs/articles/expensify-classic/bank-accounts-and-credit-cards/deposit-accounts/Deposit-Accounts-USD.md
rename to docs/articles/expensify-classic/connect-credit-cards/deposit-accounts/Deposit-Accounts-USD.md
diff --git a/docs/articles/expensify-classic/insights-and-custom-reporting/Custom-Templates.md b/docs/articles/expensify-classic/spending-insights/Custom-Templates.md
similarity index 100%
rename from docs/articles/expensify-classic/insights-and-custom-reporting/Custom-Templates.md
rename to docs/articles/expensify-classic/spending-insights/Custom-Templates.md
diff --git a/docs/articles/expensify-classic/insights-and-custom-reporting/Default-Export-Templates.md b/docs/articles/expensify-classic/spending-insights/Default-Export-Templates.md
similarity index 100%
rename from docs/articles/expensify-classic/insights-and-custom-reporting/Default-Export-Templates.md
rename to docs/articles/expensify-classic/spending-insights/Default-Export-Templates.md
diff --git a/docs/articles/expensify-classic/insights-and-custom-reporting/Fringe-Benefits.md b/docs/articles/expensify-classic/spending-insights/Fringe-Benefits.md
similarity index 100%
rename from docs/articles/expensify-classic/insights-and-custom-reporting/Fringe-Benefits.md
rename to docs/articles/expensify-classic/spending-insights/Fringe-Benefits.md
diff --git a/docs/articles/expensify-classic/insights-and-custom-reporting/Insights.md b/docs/articles/expensify-classic/spending-insights/Insights.md
similarity index 100%
rename from docs/articles/expensify-classic/insights-and-custom-reporting/Insights.md
rename to docs/articles/expensify-classic/spending-insights/Insights.md
diff --git a/docs/articles/expensify-classic/insights-and-custom-reporting/Other-Export-Options.md b/docs/articles/expensify-classic/spending-insights/Other-Export-Options.md
similarity index 100%
rename from docs/articles/expensify-classic/insights-and-custom-reporting/Other-Export-Options.md
rename to docs/articles/expensify-classic/spending-insights/Other-Export-Options.md
diff --git a/docs/expensify-classic/hubs/bank-accounts-and-credit-cards/index.html b/docs/expensify-classic/hubs/bank-accounts-and-payments/index.html
similarity index 56%
rename from docs/expensify-classic/hubs/bank-accounts-and-credit-cards/index.html
rename to docs/expensify-classic/hubs/bank-accounts-and-payments/index.html
index 2f91f0913d6..22e39250aea 100644
--- a/docs/expensify-classic/hubs/bank-accounts-and-credit-cards/index.html
+++ b/docs/expensify-classic/hubs/bank-accounts-and-payments/index.html
@@ -1,6 +1,6 @@
---
layout: default
-title: Bank Accounts & Credit Cards
+title: Bank accounts & payments
---
{% include hub.html %}
\ No newline at end of file
diff --git a/docs/expensify-classic/hubs/bank-accounts-and-credit-cards/business-bank-accounts.html b/docs/expensify-classic/hubs/connect-credit-cards/business-bank-accounts.html
similarity index 100%
rename from docs/expensify-classic/hubs/bank-accounts-and-credit-cards/business-bank-accounts.html
rename to docs/expensify-classic/hubs/connect-credit-cards/business-bank-accounts.html
diff --git a/docs/expensify-classic/hubs/bank-accounts-and-credit-cards/company-cards.html b/docs/expensify-classic/hubs/connect-credit-cards/company-cards.html
similarity index 100%
rename from docs/expensify-classic/hubs/bank-accounts-and-credit-cards/company-cards.html
rename to docs/expensify-classic/hubs/connect-credit-cards/company-cards.html
diff --git a/docs/expensify-classic/hubs/bank-accounts-and-credit-cards/deposit-accounts.html b/docs/expensify-classic/hubs/connect-credit-cards/deposit-accounts.html
similarity index 100%
rename from docs/expensify-classic/hubs/bank-accounts-and-credit-cards/deposit-accounts.html
rename to docs/expensify-classic/hubs/connect-credit-cards/deposit-accounts.html
diff --git a/docs/expensify-classic/hubs/send-payments/index.html b/docs/expensify-classic/hubs/connect-credit-cards/index.html
similarity index 62%
rename from docs/expensify-classic/hubs/send-payments/index.html
rename to docs/expensify-classic/hubs/connect-credit-cards/index.html
index c8275af5c35..e21df799a13 100644
--- a/docs/expensify-classic/hubs/send-payments/index.html
+++ b/docs/expensify-classic/hubs/connect-credit-cards/index.html
@@ -1,6 +1,6 @@
---
layout: default
-title: Send Payments
+title: Connect Credit Cards
---
{% include hub.html %}
\ No newline at end of file
diff --git a/docs/expensify-classic/hubs/insights-and-custom-reporting/index.html b/docs/expensify-classic/hubs/spending-insights/index.html
similarity index 65%
rename from docs/expensify-classic/hubs/insights-and-custom-reporting/index.html
rename to docs/expensify-classic/hubs/spending-insights/index.html
index 16c96cb51d0..68b302394ff 100644
--- a/docs/expensify-classic/hubs/insights-and-custom-reporting/index.html
+++ b/docs/expensify-classic/hubs/spending-insights/index.html
@@ -1,6 +1,6 @@
---
layout: default
-title: Exports
+title: Spending Insights
---
{% include hub.html %}
\ No newline at end of file
diff --git a/ios/NewExpensify/Info.plist b/ios/NewExpensify/Info.plist
index 6f40065bf95..f956b21669c 100644
--- a/ios/NewExpensify/Info.plist
+++ b/ios/NewExpensify/Info.plist
@@ -40,7 +40,7 @@
CFBundleVersion
- 1.4.60.2
+ 1.4.60.8
ITSAppUsesNonExemptEncryption
LSApplicationQueriesSchemes
diff --git a/ios/NewExpensifyTests/Info.plist b/ios/NewExpensifyTests/Info.plist
index e1025716812..57f4b843936 100644
--- a/ios/NewExpensifyTests/Info.plist
+++ b/ios/NewExpensifyTests/Info.plist
@@ -19,6 +19,6 @@
CFBundleSignature
????
CFBundleVersion
- 1.4.60.2
+ 1.4.60.8
diff --git a/ios/NotificationServiceExtension/Info.plist b/ios/NotificationServiceExtension/Info.plist
index dccdf08f3b9..dd6b04f6eb2 100644
--- a/ios/NotificationServiceExtension/Info.plist
+++ b/ios/NotificationServiceExtension/Info.plist
@@ -13,7 +13,7 @@
CFBundleShortVersionString
1.4.60
CFBundleVersion
- 1.4.60.2
+ 1.4.60.8
NSExtension
NSExtensionPointIdentifier
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 333842e5b36..32a8bca75bc 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -1363,7 +1363,7 @@ PODS:
- RNGoogleSignin (10.0.1):
- GoogleSignIn (~> 7.0)
- React-Core
- - RNLiveMarkdown (0.1.36):
+ - RNLiveMarkdown (0.1.38):
- glog
- RCT-Folly (= 2022.05.16.00)
- React-Core
@@ -1415,7 +1415,7 @@ PODS:
- SDWebImage/Core (~> 5.17)
- SocketRocket (0.6.1)
- Turf (2.7.0)
- - VisionCamera (4.0.0-beta.11):
+ - VisionCamera (4.0.0-beta.13):
- React
- React-callinvoker
- React-Core
@@ -1904,7 +1904,7 @@ SPEC CHECKSUMS:
RNFS: 4ac0f0ea233904cb798630b3c077808c06931688
RNGestureHandler: 25b969a1ffc806b9f9ad2e170d4a3b049c6af85e
RNGoogleSignin: ccaa4a81582cf713eea562c5dd9dc1961a715fd0
- RNLiveMarkdown: e6312e556c522dd178728b28e132b16354789cb8
+ RNLiveMarkdown: 0f7819903c63a786bbb80fd620baba10d43dfe18
RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81
rnmapbox-maps: fcf7f1cbdc8bd7569c267d07284e8a5c7bee06ed
RNPermissions: 9b086c8f05b2e2faa587fdc31f4c5ab4509728aa
@@ -1920,7 +1920,7 @@ SPEC CHECKSUMS:
SDWebImageWebPCoder: af09429398d99d524cae2fe00f6f0f6e491ed102
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
Turf: 13d1a92d969ca0311bbc26e8356cca178ce95da2
- VisionCamera: b6b6f46949eae83b71429c971162af337ef34fa3
+ VisionCamera: 9f26224fce1233ffdad9fa4e56863e3de2190dc0
Yoga: e64aa65de36c0832d04e8c7bd614396c77a80047
PODFILE CHECKSUM: a431c146e1501391834a2f299a74093bac53b530
diff --git a/package-lock.json b/package-lock.json
index 7a972eb95f4..57855001279 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,17 +1,17 @@
{
"name": "new.expensify",
- "version": "1.4.60-2",
+ "version": "1.4.60-8",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "new.expensify",
- "version": "1.4.60-2",
+ "version": "1.4.60-8",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"@dotlottie/react-player": "^1.6.3",
- "@expensify/react-native-live-markdown": "0.1.36",
+ "@expensify/react-native-live-markdown": "0.1.38",
"@expo/metro-runtime": "~3.1.1",
"@formatjs/intl-datetimeformat": "^6.10.0",
"@formatjs/intl-listformat": "^7.2.2",
@@ -50,7 +50,7 @@
"date-fns-tz": "^2.0.0",
"dom-serializer": "^0.2.2",
"domhandler": "^4.3.0",
- "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#8dd2cb43ee29a369ccc459e6ad59bcdeaf579e6f",
+ "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#13de5b0606662df33fa1392ad82cc11daadff52e",
"expo": "^50.0.3",
"expo-av": "~13.10.4",
"expo-image": "1.11.0",
@@ -114,7 +114,7 @@
"react-native-tab-view": "^3.5.2",
"react-native-url-polyfill": "^2.0.0",
"react-native-view-shot": "3.8.0",
- "react-native-vision-camera": "^4.0.0-beta.11",
+ "react-native-vision-camera": "^4.0.0-beta.13",
"react-native-web": "^0.19.9",
"react-native-web-linear-gradient": "^1.1.2",
"react-native-web-sound": "^0.1.3",
@@ -3097,9 +3097,9 @@
}
},
"node_modules/@expensify/react-native-live-markdown": {
- "version": "0.1.36",
- "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.36.tgz",
- "integrity": "sha512-dJ8V873DW7wP+OFU50XEIgR/cavfmVKXIUI4bN/oI3SbGiGVXrOVcBbg6THx0HrclupVxg/qsHxaDAXsYLV/iA==",
+ "version": "0.1.38",
+ "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.38.tgz",
+ "integrity": "sha512-0EcXvK/eqeJdesX8DBibJ+V2KX9n5Gbmg0fWTk93mGOUA70h3W6lO68nuch40X+RgQdOgIf50BMfzbBzzVdJwA==",
"engines": {
"node": ">= 18.0.0"
},
@@ -27495,8 +27495,8 @@
},
"node_modules/expensify-common": {
"version": "1.0.0",
- "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#8dd2cb43ee29a369ccc459e6ad59bcdeaf579e6f",
- "integrity": "sha512-ddo/GaZPDmCm6RSSYb3zDU3JLdqfkxWwd3gk1FsJO4NysJcrG7Yum43fO+qn/6I9mDKTYTsxnVt/KdEQRUtN5A==",
+ "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#13de5b0606662df33fa1392ad82cc11daadff52e",
+ "integrity": "sha512-/NAZoAXqeqFWHvC61dueqq9VjRugF69urUtDdDhsfvu1sQE2PCnBoM7a+ACoAEWRYrnP82cyHHhdSA8e7fPuAg==",
"license": "MIT",
"dependencies": {
"classnames": "2.5.0",
@@ -39768,9 +39768,9 @@
}
},
"node_modules/react-native-vision-camera": {
- "version": "4.0.0-beta.11",
- "resolved": "https://registry.npmjs.org/react-native-vision-camera/-/react-native-vision-camera-4.0.0-beta.11.tgz",
- "integrity": "sha512-cKg/nwT0q0H1ivEVG+PQt/QxhFgf/dd7SiMm7bCzlSCmt0T2tXyIdLsuY312iKBB2qasQZOYtzRsoQjipHQkDw==",
+ "version": "4.0.0-beta.13",
+ "resolved": "https://registry.npmjs.org/react-native-vision-camera/-/react-native-vision-camera-4.0.0-beta.13.tgz",
+ "integrity": "sha512-a5ypYsr9XsERfx2UCmL1oSMC/Irra6X0Ixv0/hCgM/2ndt/aK94A6FwONr1kA/GRyU67ekOhk8HwUfxx+hi6dQ==",
"peerDependencies": {
"react": "*",
"react-native": "*",
diff --git a/package.json b/package.json
index 7a63da01b1b..873d901b002 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
- "version": "1.4.60-2",
+ "version": "1.4.60-8",
"author": "Expensify, Inc.",
"homepage": "https://new.expensify.com",
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
@@ -62,7 +62,7 @@
},
"dependencies": {
"@dotlottie/react-player": "^1.6.3",
- "@expensify/react-native-live-markdown": "0.1.36",
+ "@expensify/react-native-live-markdown": "0.1.38",
"@expo/metro-runtime": "~3.1.1",
"@formatjs/intl-datetimeformat": "^6.10.0",
"@formatjs/intl-listformat": "^7.2.2",
@@ -101,7 +101,7 @@
"date-fns-tz": "^2.0.0",
"dom-serializer": "^0.2.2",
"domhandler": "^4.3.0",
- "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#8dd2cb43ee29a369ccc459e6ad59bcdeaf579e6f",
+ "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#13de5b0606662df33fa1392ad82cc11daadff52e",
"expo": "^50.0.3",
"expo-av": "~13.10.4",
"expo-image": "1.11.0",
@@ -165,7 +165,7 @@
"react-native-tab-view": "^3.5.2",
"react-native-url-polyfill": "^2.0.0",
"react-native-view-shot": "3.8.0",
- "react-native-vision-camera": "^4.0.0-beta.11",
+ "react-native-vision-camera": "^4.0.0-beta.13",
"react-native-web": "^0.19.9",
"react-native-web-linear-gradient": "^1.1.2",
"react-native-web-sound": "^0.1.3",
diff --git a/src/CONST.ts b/src/CONST.ts
index d33cf174cf4..6d1195ff5c7 100755
--- a/src/CONST.ts
+++ b/src/CONST.ts
@@ -56,6 +56,15 @@ const chatTypes = {
// Explicit type annotation is required
const cardActiveStates: number[] = [2, 3, 4, 7];
+const onboardingChoices = {
+ TRACK: 'newDotTrack',
+ EMPLOYER: 'newDotEmployer',
+ MANAGE_TEAM: 'newDotManageTeam',
+ PERSONAL_SPEND: 'newDotPersonalSpend',
+ CHAT_SPLIT: 'newDotSplitChat',
+ LOOKING_AROUND: 'newDotLookingAround',
+};
+
const CONST = {
MERGED_ACCOUNT_PREFIX: 'MERGED_',
DEFAULT_POLICY_ROOM_CHAT_TYPES: [chatTypes.POLICY_ADMINS, chatTypes.POLICY_ANNOUNCE, chatTypes.DOMAIN_ALL],
@@ -842,6 +851,7 @@ const CONST = {
BOTTOM_DOCKED: 'bottom_docked',
POPOVER: 'popover',
RIGHT_DOCKED: 'right_docked',
+ ONBOARDING: 'onboarding',
},
ANCHOR_ORIGIN_VERTICAL: {
TOP: 'top',
@@ -3429,6 +3439,11 @@ const CONST = {
HIDE_TIME_TEXT_WIDTH: 250,
MIN_WIDTH: 170,
MIN_HEIGHT: 120,
+ CONTROLS_STATUS: {
+ SHOW: 'show',
+ HIDE: 'hide',
+ VOLUME_ONLY: 'volumeOnly',
+ },
CONTROLS_POSITION: {
NATIVE: 32,
NORMAL: 8,
@@ -3459,6 +3474,73 @@ const CONST = {
MINIMUM_WORKSPACES_TO_SHOW_SEARCH: 8,
},
+ WELCOME_VIDEO_URL: `${CLOUDFRONT_URL}/videos/intro-1280.mp4`,
+
+ ONBOARDING_CHOICES: {...onboardingChoices},
+
+ ONBOARDING_CONCIERGE: {
+ [onboardingChoices.TRACK]:
+ "# Welcome to Expensify, let's start tracking your expenses!\n" +
+ "Hi there, I'm Concierge. Chat with me here for anything you need.\n" +
+ '\n' +
+ "To track your expenses, create a workspace to keep everything in one place. Here's how:\n" +
+ '1. From the home screen, click the green + button > New Workspace\n' +
+ '2. Give your workspace a name (e.g. "My business expenses”).\n' +
+ '\n' +
+ 'Then, add expenses to your workspace:\n' +
+ '1. Find your workspace using the search field.\n' +
+ '2. Click the gray + button next to the message field.\n' +
+ '3. Click Request money, then add your expense type.\n' +
+ '\n' +
+ "We'll store all expenses in your new workspace for easy access. Let me know if you have any questions!",
+ [onboardingChoices.EMPLOYER]:
+ '# Welcome to Expensify, the fastest way to get paid back!\n' +
+ "Hi there, I'm Concierge. Chat with me here for anything you need.\n" +
+ '\n' +
+ 'To submit expenses for reimbursement:\n' +
+ '1. From the home screen, click the green + button > Request money.\n' +
+ "2. Enter an amount or scan a receipt, then input your boss's email.\n" +
+ '\n' +
+ "That'll send a request to get you paid back. Let me know if you have any questions!",
+ [onboardingChoices.MANAGE_TEAM]:
+ "# Welcome to Expensify, let's start managing your team's expenses!\n" +
+ "Hi there, I'm Concierge. Chat with me here for anything you need.\n" +
+ '\n' +
+ "To manage your team's expenses, create a workspace to keep everything in one place. Here's how:\n" +
+ '1. From the home screen, click the green + button > New Workspace\n' +
+ '2. Give your workspace a name (e.g. “Sales team expenses”).\n' +
+ '\n' +
+ 'Then, invite your team to your workspace via the Members pane and connect a business bank account to reimburse them. Let me know if you have any questions!',
+ [onboardingChoices.PERSONAL_SPEND]:
+ "# Welcome to Expensify, let's start tracking your expenses!\n" +
+ "Hi there, I'm Concierge. Chat with me here for anything you need.\n" +
+ '\n' +
+ "To track your expenses, create a workspace to keep everything in one place. Here's how:\n" +
+ '1. From the home screen, click the green + button > New Workspace\n' +
+ '2. Give your workspace a name (e.g. "My expenses”).\n' +
+ '\n' +
+ 'Then, add expenses to your workspace:\n' +
+ '1. Find your workspace using the search field.\n' +
+ '2. Click the gray + button next to the message field.\n' +
+ '3. Click Request money, then add your expense type.\n' +
+ '\n' +
+ "We'll store all expenses in your new workspace for easy access. Let me know if you have any questions!",
+ [onboardingChoices.CHAT_SPLIT]:
+ '# Welcome to Expensify, where splitting the bill is an easy conversation!\n' +
+ "Hi there, I'm Concierge. Chat with me here for anything you need.\n" +
+ '\n' +
+ 'To split an expense:\n' +
+ '1. From the home screen, click the green + button > Request money.\n' +
+ '2. Enter an amount or scan a receipt, then choose who you want to split it with.\n' +
+ '\n' +
+ "We'll send a request to each person so they can pay you back. Let me know if you have any questions!",
+ [onboardingChoices.LOOKING_AROUND]:
+ '# Welcome to Expensify!\n' +
+ "Hi there, I'm Concierge. Chat with me here for anything you need.\n" +
+ '\n' +
+ "Expensify is best known for expense and corporate card management, but we do a lot more than that. Let me know what you're interested in and I'll help get you started.",
+ },
+
REPORT_FIELD_TITLE_FIELD_ID: 'text_title',
MOBILE_PAGINATION_SIZE: 15,
diff --git a/src/NAVIGATORS.ts b/src/NAVIGATORS.ts
index 3bc9c5e57b9..f199d2841ec 100644
--- a/src/NAVIGATORS.ts
+++ b/src/NAVIGATORS.ts
@@ -7,5 +7,7 @@ export default {
BOTTOM_TAB_NAVIGATOR: 'BottomTabNavigator',
LEFT_MODAL_NAVIGATOR: 'LeftModalNavigator',
RIGHT_MODAL_NAVIGATOR: 'RightModalNavigator',
+ ONBOARDING_MODAL_NAVIGATOR: 'OnboardingModalNavigator',
+ WELCOME_VIDEO_MODAL_NAVIGATOR: 'WelcomeVideoModalNavigator',
FULL_SCREEN_NAVIGATOR: 'FullScreenNavigator',
} as const;
diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts
index 0046e076e05..0a21cb17df7 100755
--- a/src/ONYXKEYS.ts
+++ b/src/ONYXKEYS.ts
@@ -276,6 +276,9 @@ const ONYXKEYS = {
// Max height supported for HTML